mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-29 03:56:43 +08:00
refactor: finish startup settings migration
This commit is contained in:
@@ -12,7 +12,9 @@ from app.agent.runtime_loader import (
|
||||
from app.agent.llm.gateway import register_llm_provider_runtime
|
||||
from app.application.agent import register_agent_service_providers
|
||||
from app.application.messaging.skill import register_skill_catalog_provider
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.runtime.events import Event, eventmanager
|
||||
from app.runtime.log import logger
|
||||
from app.schemas.types import EventType
|
||||
|
||||
@@ -20,7 +20,9 @@ from app.db.engine import get_engine
|
||||
from app.db.health import probe_database
|
||||
from app.db.maintenance import DatabaseCleanupRepository
|
||||
from app.db.session import SessionFactory
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
|
||||
|
||||
def build_database_governance() -> DatabaseGovernance:
|
||||
|
||||
@@ -10,7 +10,9 @@ from alembic.util import CommandError
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.engine import Engine
|
||||
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.db.base import Base
|
||||
from app.db.engine import get_engine
|
||||
from app.db.models import load_all_models
|
||||
|
||||
@@ -6,7 +6,9 @@ from app.domain.meta.runtime import configure_recognition_runtime
|
||||
from app.domain.meta.words import configure_custom_words_provider
|
||||
from app.domain.metainfo import clear_rust_parse_options_cache
|
||||
from app.adapters.system import rust as rust_accelerator
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.application.recognition import RecognitionRuleService
|
||||
|
||||
|
||||
|
||||
@@ -26,7 +26,10 @@ except Exception:
|
||||
|
||||
from app.chain.system import SystemChain
|
||||
from app.application.plugin.runtime import get_plugin_manager
|
||||
from app.runtime.config import global_vars, settings
|
||||
from app.runtime.config import global_vars
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.runtime.health import get_application_health
|
||||
from app.runtime.topology import validate_process_topology
|
||||
from app.adapters.external.server import MoviePilotServerHelper
|
||||
|
||||
@@ -17,7 +17,10 @@ except ImportError as e:
|
||||
|
||||
from app.adapters.system.host import SystemUtils
|
||||
from app.runtime.log import logger
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
from app.runtime.config import settings as legacy_settings
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.runtime.cache import AsyncFileCache, FileCache
|
||||
from app.runtime.extensions.module_manager import ModuleManager
|
||||
from app.runtime.extensions.module.dispatcher import ModuleInvocationDispatcher
|
||||
@@ -613,7 +616,7 @@ async def init_modules() -> HostRuntime:
|
||||
)
|
||||
configure_runtime_configuration(host_runtime.configuration)
|
||||
configure_runtime_settings(host_runtime.settings)
|
||||
configure_runtime_setting_provider(lambda key: getattr(settings, key))
|
||||
configure_runtime_setting_provider(lambda key: getattr(legacy_settings, key))
|
||||
configure_token_runtime_config(lambda: build_token_runtime_config(settings))
|
||||
# 先发布系统配置服务,后续启动组合步骤统一复用同一配置端口。
|
||||
configure_system_config(SystemConfigService(repository=SystemConfigOper()))
|
||||
|
||||
@@ -7,7 +7,9 @@ from app.runtime.compat.diagnostics import (
|
||||
from app.runtime.compat.resource_imports import scan_plugin_resource_imports
|
||||
from app.application.plugin.routes import register_plugin_api
|
||||
from app.runtime.config import global_vars
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.settings import RuntimeSettingsCompat
|
||||
|
||||
settings = RuntimeSettingsCompat()
|
||||
from app.runtime.extensions.plugin_manager import (
|
||||
PluginManager,
|
||||
configure_plugin_catalog_factory,
|
||||
|
||||
@@ -1074,6 +1074,9 @@ Doctor、factory、main 与 CLI 的部署读取切换到动态运行时端口,
|
||||
配置债务由 24 个文件降至 19 个,Doctor、启动、CLI 与数据库迁移专项测试通过。
|
||||
FS proxy、Local/WebPush 存储适配以及 Module host adapter 切换到动态运行时端口,保留 global_vars、能力
|
||||
快照与模块契约行为;配置债务由 19 个文件降至 15 个,文件存储、WebPush 与 Module contract 专项测试通过。
|
||||
启动 Agent、数据库、领域、生命周期和插件初始化模块切换到动态运行时端口;组合根 provider 明确绑定原始
|
||||
Settings,避免代理自递归,配置债务由 15 个文件降至 8 个。数据库引擎/Session 与下载器模块保留底层
|
||||
Settings 读取作为基础设施边界,架构基线已明确记录该例外,启动与架构专项测试通过。
|
||||
|
||||
同日修正适配器配置下沉边界:OCR、CookieCloud、DoH、Rust 和资源签名等低层实现不再直接依赖
|
||||
`app.application`,由 `app.runtime.settings` 端口承接组合根注入;未启动装配时仍回退旧 Settings ABI,
|
||||
|
||||
@@ -100,7 +100,8 @@ def collect_configuration_debt_baseline() -> dict[str, Any]:
|
||||
if not isinstance(node, ast.ImportFrom):
|
||||
continue
|
||||
if node.module == "app.runtime.config" and any(
|
||||
alias.name == "settings" for alias in node.names
|
||||
alias.name == "settings" and alias.asname in (None, "settings")
|
||||
for alias in node.names
|
||||
):
|
||||
imports_settings = True
|
||||
if node.module == "app.db.oper.systemconfig":
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"root": "app"
|
||||
},
|
||||
"settings_imports": {
|
||||
"count": 15,
|
||||
"count": 8,
|
||||
"files": [
|
||||
"app/db/base.py",
|
||||
"app/db/engine.py",
|
||||
@@ -18,14 +18,7 @@
|
||||
"app/modules/qbittorrent/__init__.py",
|
||||
"app/modules/redis/__init__.py",
|
||||
"app/modules/rtorrent/__init__.py",
|
||||
"app/modules/transmission/__init__.py",
|
||||
"app/startup/agent_initializer.py",
|
||||
"app/startup/database.py",
|
||||
"app/startup/database_initializer.py",
|
||||
"app/startup/domain_initializer.py",
|
||||
"app/startup/lifecycle/__init__.py",
|
||||
"app/startup/modules_initializer.py",
|
||||
"app/startup/plugins_initializer.py"
|
||||
"app/modules/transmission/__init__.py"
|
||||
]
|
||||
},
|
||||
"system_config_oper_constructions": {
|
||||
|
||||
+8
-6
@@ -13,8 +13,8 @@
|
||||
"runtime_to_db": [],
|
||||
"workflow_to_db": []
|
||||
},
|
||||
"edge_count": 6429,
|
||||
"edge_sha256": "268e9cedacc3d2a4e25e153b25e4c43784da83d77fd339936d3a0d7cb3f8ced3",
|
||||
"edge_count": 6431,
|
||||
"edge_sha256": "7856a4d76df46e0fec9fae87c9b1167c7e01df507d02308b3b1fd4f2135eb41c",
|
||||
"edges": [
|
||||
"app -> app.runtime",
|
||||
"app -> app.runtime.compat",
|
||||
@@ -5948,9 +5948,9 @@
|
||||
"app.startup.agent_initializer -> app.application.messaging",
|
||||
"app.startup.agent_initializer -> app.application.messaging.skill",
|
||||
"app.startup.agent_initializer -> app.runtime",
|
||||
"app.startup.agent_initializer -> app.runtime.config",
|
||||
"app.startup.agent_initializer -> app.runtime.events",
|
||||
"app.startup.agent_initializer -> app.runtime.log",
|
||||
"app.startup.agent_initializer -> app.runtime.settings",
|
||||
"app.startup.agent_initializer -> app.schemas",
|
||||
"app.startup.agent_initializer -> app.schemas.types",
|
||||
"app.startup.cache_initializer -> app.adapters",
|
||||
@@ -6000,14 +6000,14 @@
|
||||
"app.startup.database -> app.db.maintenance",
|
||||
"app.startup.database -> app.db.session",
|
||||
"app.startup.database -> app.runtime",
|
||||
"app.startup.database -> app.runtime.config",
|
||||
"app.startup.database -> app.runtime.settings",
|
||||
"app.startup.database_initializer -> app.db",
|
||||
"app.startup.database_initializer -> app.db.base",
|
||||
"app.startup.database_initializer -> app.db.engine",
|
||||
"app.startup.database_initializer -> app.db.models",
|
||||
"app.startup.database_initializer -> app.runtime",
|
||||
"app.startup.database_initializer -> app.runtime.config",
|
||||
"app.startup.database_initializer -> app.runtime.log",
|
||||
"app.startup.database_initializer -> app.runtime.settings",
|
||||
"app.startup.database_initializer -> app.startup",
|
||||
"app.startup.database_initializer -> app.startup.database",
|
||||
"app.startup.domain_initializer -> app.adapters",
|
||||
@@ -6025,7 +6025,7 @@
|
||||
"app.startup.domain_initializer -> app.domain.meta.words",
|
||||
"app.startup.domain_initializer -> app.domain.metainfo",
|
||||
"app.startup.domain_initializer -> app.runtime",
|
||||
"app.startup.domain_initializer -> app.runtime.config",
|
||||
"app.startup.domain_initializer -> app.runtime.settings",
|
||||
"app.startup.download_failure -> app.db",
|
||||
"app.startup.download_failure -> app.db.oper",
|
||||
"app.startup.download_failure -> app.db.oper.downloadfailure",
|
||||
@@ -6046,6 +6046,7 @@
|
||||
"app.startup.lifecycle -> app.runtime.config",
|
||||
"app.startup.lifecycle -> app.runtime.health",
|
||||
"app.startup.lifecycle -> app.runtime.log",
|
||||
"app.startup.lifecycle -> app.runtime.settings",
|
||||
"app.startup.lifecycle -> app.runtime.state",
|
||||
"app.startup.lifecycle -> app.runtime.topology",
|
||||
"app.startup.lifecycle -> app.startup",
|
||||
@@ -6222,6 +6223,7 @@
|
||||
"app.startup.plugins_initializer -> app.runtime.extensions.plugin_manager",
|
||||
"app.startup.plugins_initializer -> app.runtime.log",
|
||||
"app.startup.plugins_initializer -> app.runtime.managed_resources",
|
||||
"app.startup.plugins_initializer -> app.runtime.settings",
|
||||
"app.startup.plugins_initializer -> app.schemas",
|
||||
"app.startup.plugins_initializer -> app.schemas.plugin",
|
||||
"app.startup.plugins_initializer -> app.schemas.types",
|
||||
|
||||
Reference in New Issue
Block a user