52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from dataclasses import dataclass, field
|
|
|
|
from cli.core.app_builder import CliApplicationBuilder, ProjectRuntimeLocator
|
|
from cli.core.completion_dispatcher import CompletionDispatcher
|
|
from cli.core.context_factory import CliContextFactory, CliRuntimeState
|
|
from cli.core.execution import CliExecutionService
|
|
from cli.output import OutputRenderer
|
|
|
|
|
|
@dataclass
|
|
class CoreServiceContainer:
|
|
"""
|
|
CLI 核心服务容器。
|
|
|
|
该容器负责统一装配输出渲染器、运行期状态、上下文工厂与执行服务,
|
|
作为控制器、向导和 TUI 等编排层的默认依赖入口。
|
|
|
|
:param output_renderer: 输出渲染器
|
|
:param runtime_state: CLI 运行期状态对象
|
|
"""
|
|
|
|
output_renderer: OutputRenderer = field(default_factory=OutputRenderer)
|
|
runtime_state: CliRuntimeState = field(default_factory=CliRuntimeState)
|
|
context_factory: CliContextFactory = field(init=False)
|
|
execution_service: CliExecutionService = field(init=False)
|
|
|
|
def __post_init__(self) -> None:
|
|
"""
|
|
初始化核心服务依赖图。
|
|
|
|
:return: None
|
|
"""
|
|
self.context_factory = CliContextFactory(
|
|
runtime_state=self.runtime_state,
|
|
output_renderer=self.output_renderer,
|
|
)
|
|
self.execution_service = CliExecutionService(output_renderer=self.output_renderer)
|
|
|
|
|
|
DEFAULT_CORE_SERVICES = CoreServiceContainer()
|
|
|
|
__all__ = [
|
|
'DEFAULT_CORE_SERVICES',
|
|
'CliApplicationBuilder',
|
|
'CliContextFactory',
|
|
'CliExecutionService',
|
|
'CliRuntimeState',
|
|
'CompletionDispatcher',
|
|
'CoreServiceContainer',
|
|
'ProjectRuntimeLocator',
|
|
]
|