mirror of
https://github.com/blw1138/Zordon.git
synced 2026-06-10 05:59:23 -05:00
552c791207
- Created src/application_context.py as DI container with TYPE_CHECKING imports - server.py now instantiates all services in dependency order via ApplicationContext - Fixed infinite recursion bug: 48 instance methods renamed with underscore prefix to avoid shadowing by same-named @classmethod forwarders - ZeroconfServer: instantiate Zeroconf() in __init__, add _sync_class() to configure forwarder, direct _configure/_start calls during wiring - Config, EngineManager, PreviewManager: all forwarders and _sync_class() intact - RenderQueue: load_state and subscribe moved to __init__, threading.Lock retained - DistributedJobManager: subscribe_to_listener moved to __init__
26 lines
1.0 KiB
Python
26 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING, Optional
|
|
|
|
if TYPE_CHECKING:
|
|
from src.api.preview_manager import PreviewManager
|
|
from src.api.serverproxy_manager import ServerProxyManager
|
|
from src.distributed_job_manager import DistributedJobManager
|
|
from src.engines.engine_manager import EngineManager
|
|
from src.render_queue import RenderQueue
|
|
from src.utilities.config import Config
|
|
from src.utilities.zeroconf_server import ZeroconfServer
|
|
|
|
|
|
class ApplicationContext:
|
|
"""Holds all service instances. Single source of truth for wiring."""
|
|
|
|
def __init__(self) -> None:
|
|
self.config: Optional[Config] = None
|
|
self.engine_manager: Optional[EngineManager] = None
|
|
self.preview_manager: Optional[PreviewManager] = None
|
|
self.zeroconf_server: Optional[ZeroconfServer] = None
|
|
self.render_queue: Optional[RenderQueue] = None
|
|
self.distributed_job_manager: Optional[DistributedJobManager] = None
|
|
self.server_proxy_manager: Optional[ServerProxyManager] = None
|