#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 运行时依赖注入:用于 services/routes 访问 socketio/logger 等全局实例。 说明: - 仅在 app.py 启动装配时调用 init_runtime() - 业务模块中避免直接 import app.py,统一通过本模块获取依赖 """ from __future__ import annotations from typing import Any, Optional _socketio: Optional[Any] = None _logger: Optional[Any] = None def init_runtime(*, socketio: Any, logger: Any) -> None: global _socketio, _logger _socketio = socketio _logger = logger def get_socketio() -> Any: if _socketio is None: raise RuntimeError("socketio 未初始化(请先在 app.py 调用 init_runtime)") return _socketio def get_logger() -> Any: if _logger is None: raise RuntimeError("logger 未初始化(请先在 app.py 调用 init_runtime)") return _logger