37 lines
890 B
Python
37 lines
890 B
Python
#!/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
|
||
|