From 0c023c9888f4ff2c8c71e897a5d5f7a89bace419 Mon Sep 17 00:00:00 2001 From: pixelpaws Date: Wed, 8 Oct 2025 10:10:23 +0800 Subject: [PATCH] fix(settings): lazily resolve module aliases --- py/lora_manager.py | 19 ++++++++++++++++++- py/routes/stats_routes.py | 24 +++++++++++++++++++++--- py/utils/example_images_migration.py | 19 ++++++++++++++++++- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/py/lora_manager.py b/py/lora_manager.py index a38325d2..934e78b8 100644 --- a/py/lora_manager.py +++ b/py/lora_manager.py @@ -23,7 +23,24 @@ logger = logging.getLogger(__name__) # Check if we're in standalone mode STANDALONE_MODE = 'nodes' not in sys.modules -settings = get_settings_manager() + +class _SettingsProxy: + def __init__(self): + self._manager = None + + def _resolve(self): + if self._manager is None: + self._manager = get_settings_manager() + return self._manager + + def get(self, *args, **kwargs): + return self._resolve().get(*args, **kwargs) + + def __getattr__(self, item): + return getattr(self._resolve(), item) + + +settings = _SettingsProxy() class LoraManager: """Main entry point for LoRA Manager plugin""" diff --git a/py/routes/stats_routes.py b/py/routes/stats_routes.py index b5f69ce0..a2a7d15c 100644 --- a/py/routes/stats_routes.py +++ b/py/routes/stats_routes.py @@ -15,7 +15,24 @@ from ..utils.usage_stats import UsageStats logger = logging.getLogger(__name__) -settings = get_settings_manager() + +class _SettingsProxy: + def __init__(self): + self._manager = None + + def _resolve(self): + if self._manager is None: + self._manager = get_settings_manager() + return self._manager + + def get(self, *args, **kwargs): + return self._resolve().get(*args, **kwargs) + + def __getattr__(self, item): + return getattr(self._resolve(), item) + + +settings = _SettingsProxy() class StatsRoutes: """Route handlers for Statistics page and API endpoints""" @@ -68,8 +85,9 @@ class StatsRoutes: is_initializing = lora_initializing or checkpoint_initializing or embedding_initializing # 获取用户语言设置 - settings_manager = settings - user_language = settings_manager.get('language', 'en') + settings_object = settings + user_language = settings_object.get('language', 'en') + settings_manager = settings_object if not isinstance(settings_object, _SettingsProxy) else settings_object._resolve() # 设置服务端i18n语言 server_i18n.set_locale(user_language) diff --git a/py/utils/example_images_migration.py b/py/utils/example_images_migration.py index 390f5e33..9eab2822 100644 --- a/py/utils/example_images_migration.py +++ b/py/utils/example_images_migration.py @@ -14,7 +14,24 @@ logger = logging.getLogger(__name__) CURRENT_NAMING_VERSION = 2 # Increment this when naming conventions change -settings = get_settings_manager() + +class _SettingsProxy: + def __init__(self): + self._manager = None + + def _resolve(self): + if self._manager is None: + self._manager = get_settings_manager() + return self._manager + + def get(self, *args, **kwargs): + return self._resolve().get(*args, **kwargs) + + def __getattr__(self, item): + return getattr(self._resolve(), item) + + +settings = _SettingsProxy() class ExampleImagesMigration: """Handles migrations for example images naming conventions"""