Files
sanguo_vnpy_v2/sanguo_api/__init__.py
T

29 lines
1.0 KiB
Python

"""Sanguo Quant API Module (惰性 re-export)。
子模块(strategy_registry / instance_store 等纯逻辑)可直接 import,不触发
fastapi/pydantic —— 这样数据层 venv 也能单测纯逻辑模块。create_app / schemas 走
PEP 562 `__getattr__`,仅当 `from sanguo_api import create_app` 访问时才加载
(调用方应优先 `from sanguo_api.app import create_app`)。
"""
__version__ = "0.1.0"
_LAZY = {
"create_app": "sanguo_api.app",
"CtaBacktestRequest": "sanguo_api.schemas",
"OptimizeRequest": "sanguo_api.schemas",
"FactorAnalysisRequest": "sanguo_api.schemas",
}
def __getattr__(name: str):
"""惰性加载 re-export 项(首次访问才 import,避免拖入 fastapi/pydantic)。"""
if name in _LAZY:
import importlib
mod = importlib.import_module(_LAZY[name])
return getattr(mod, name)
raise AttributeError(f"module 'sanguo_api' has no attribute {name!r}")
def __dir__() -> list[str]:
return sorted(list(_LAZY) + ["__version__"])