diff --git a/telebot/ext/reloader.py b/telebot/ext/reloader.py new file mode 100644 index 0000000..6ec08a5 --- /dev/null +++ b/telebot/ext/reloader.py @@ -0,0 +1,27 @@ + +from watchdog.events import FileSystemEventHandler +from watchdog.events import FileSystemEvent +import psutil +import os +import sys +import logging + +logger = logging.getLogger('TeleBot') + + + +class EventHandler(FileSystemEventHandler): + def on_any_event(self, event: FileSystemEvent): + logger.info('* Detected changes in: %s , reloading', (event.src_path)) + restart_file() + +def restart_file(): + try: + p = psutil.Process(os.getpid()) + for handler in p.open_files() + p.connections(): + os.close(handler.fd) + except Exception as e: + logger.error(e) + + python = sys.executable + os.execl(python, python, *sys.argv)