From 9277d8d8f8d1d0e539411ff0ccfb2ff0765a4c42 Mon Sep 17 00:00:00 2001 From: Will Miao <13051207myq@gmail.com> Date: Sat, 12 Apr 2025 06:47:47 +0800 Subject: [PATCH] refactor: Disable file monitoring functionality with ENABLE_FILE_MONITORING flag --- py/services/file_monitor.py | 41 ++++++++++++++++++++++++++++--------- pyproject.toml | 1 + requirements.txt | 1 + 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/py/services/file_monitor.py b/py/services/file_monitor.py index e702c98d..fc43914d 100644 --- a/py/services/file_monitor.py +++ b/py/services/file_monitor.py @@ -12,6 +12,9 @@ from .service_registry import ServiceRegistry logger = logging.getLogger(__name__) +# Configuration constant to control file monitoring functionality +ENABLE_FILE_MONITORING = False + class BaseFileHandler(FileSystemEventHandler): """Base handler for file system events""" @@ -404,6 +407,10 @@ class BaseFileMonitor: def start(self): """Start file monitoring""" + if not ENABLE_FILE_MONITORING: + logger.info("File monitoring is disabled via ENABLE_FILE_MONITORING setting") + return + for path in self.monitor_paths: try: self.observer.schedule(self.handler, path, recursive=True) @@ -415,11 +422,17 @@ class BaseFileMonitor: def stop(self): """Stop file monitoring""" + if not ENABLE_FILE_MONITORING: + return + self.observer.stop() self.observer.join() def rescan_links(self): """Rescan links when new ones are added""" + if not ENABLE_FILE_MONITORING: + return + # Find new paths not yet being monitored new_paths = set() for path in config._path_mappings.keys(): @@ -502,20 +515,28 @@ class CheckpointFileMonitor(BaseFileMonitor): scanner = await CheckpointScanner.get_instance() monitor_paths = scanner.get_model_roots() - # Update monitor paths + # Update monitor paths - but don't actually monitor them for path in monitor_paths: real_path = os.path.realpath(path).replace(os.sep, '/') cls._instance.monitor_paths.add(real_path) return cls._instance - async def initialize_paths(self): - """Initialize monitor paths from scanner""" - if not self.monitor_paths: - scanner = await ServiceRegistry.get_checkpoint_scanner() - monitor_paths = scanner.get_model_roots() + def start(self): + """Override start to check global enable flag""" + if not ENABLE_FILE_MONITORING: + logger.info("Checkpoint file monitoring is disabled via ENABLE_FILE_MONITORING setting") + return - # Update monitor paths - for path in monitor_paths: - real_path = os.path.realpath(path).replace(os.sep, '/') - self.monitor_paths.add(real_path) \ No newline at end of file + logger.info("Checkpoint file monitoring is temporarily disabled") + # Skip the actual monitoring setup + pass + + async def initialize_paths(self): + """Initialize monitor paths from scanner - currently disabled""" + if not ENABLE_FILE_MONITORING: + logger.info("Checkpoint path initialization skipped (monitoring disabled)") + return + + logger.info("Checkpoint file path initialization skipped (monitoring disabled)") + pass \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index bb4cbc5b..b1dac0b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,7 @@ dependencies = [ "beautifulsoup4", "piexif", "Pillow", + "olefile", # for getting rid of warning message "requests" ] diff --git a/requirements.txt b/requirements.txt index 88799022..c3c5cb67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ watchdog beautifulsoup4 piexif Pillow +olefile requests \ No newline at end of file