def scheduler(self, sleep_time=<NUM_LIT>):
while self.listening:<EOL><INDENT>if self.scheduled_calls:<EOL><INDENT>timestamp = time.time()<EOL>self.scheduled_calls[:] = [item for item in self.scheduled_calls<EOL>if not self.time_reached(timestamp, item)]<EOL><DEDENT>time.sleep(sleep_time)<EOL><DEDENT>logger.info("<STR_LIT>")<EOL>
Starts the scheduler to check for scheduled calls and execute them
        at the correct time.

        Args:
          sleep_time (float): The amount of time to wait in seconds between
            each loop iteration. This prevents the scheduler from consuming
            100% of the host's CPU. Defaults to 0.2 seconds.

        Returns:
          None