code: def _script_reload(script, input, output):
      
      input = [Path(entry).expand().abspath() for entry in input]
      output = Path(output).expand().abspath()
      cmd = 'python3 {0} {1} {2}'.format(script, ' '.join(input), output)
      event_handler = RunScriptChangeHandler(cmd)
      event_handler.run()  # run always once
      observer = Observer()
      path = script.dirname().expand().abspath()
      click.secho('watch: {0}'.format(path), fg='blue')
      observer.schedule(event_handler, path, recursive=True)
      for entry in input:
          entry = entry.dirname().expand().abspath()
          click.secho('watch: {0}'.format(entry), fg='blue')
          observer.schedule(event_handler, entry, recursive=True)
      path = Path(__file__).parent / 'qface'
      click.secho('watch: {0}'.format(path), fg='blue')
      observer.schedule(event_handler, path, recursive=True)
      observer.start()
  
      try:
          while True:
              time.sleep(1)
      except KeyboardInterrupt:
          observer.stop()
      observer.join()
docs: run the named generator and monitor the input and generator folder