code: def run(sniffer_instance=None, wait_time=0.5, clear=True, args=(),
          debug=False):
      
      if sniffer_instance is None:
          sniffer_instance = ScentSniffer()
  
      if debug:
          scanner = Scanner(
              sniffer_instance.watch_paths,
              scent=sniffer_instance.scent, logger=sys.stdout)
      else:
          scanner = Scanner(
              sniffer_instance.watch_paths, scent=sniffer_instance.scent)
      #sniffer = sniffer_cls(tuple(args), clear, debug)
      sniffer_instance.set_up(tuple(args), clear, debug)
  
      sniffer_instance.observe_scanner(scanner)
      scanner.loop(wait_time)
docs: Runs the auto tester loop. Internally, the runner instanciates the sniffer_cls and
      scanner class.
  
      ``sniffer_instance`` The class to run. Usually this is set to but a subclass of scanner.
                      Defaults to Sniffer. Sniffer class documentation for more information.
      ``wait_time``   The time, in seconds, to wait between polls. This is dependent on
                      the underlying scanner implementation. OS-specific libraries may choose
                      to ignore this parameter. Defaults to 0.5 seconds.
      ``clear``       Boolean. Set to True to clear the terminal before running the sniffer,
                      (alias, the unit tests). Defaults to True.
      ``args``        The arguments to pass to the sniffer/test runner. Defaults to ().
      ``debug``       Boolean. Sets the scanner and sniffer in debug mode, printing more internal
                      information. Defaults to False (and should usually be False).