mirror of
https://github.com/blw1138/Zordon.git
synced 2026-06-10 14:09:24 -05:00
refactor: wire all services through ApplicationContext
- 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__
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
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
|
||||
Reference in New Issue
Block a user