| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # -*- coding: utf-8 -*-
- r"""观澜 · 算法 —— **对外公开面**(P0 阶段:接口先立,实现仍在既有路径)。
- 用户令 2026-09-22:按模块重构源代码目录,**每模块只许经 `api.py` 被别的模块调用**。
- 本文件当前把公开名**惰性转发**到既有实现(src/windscada/{taxonomy,audit}.py、src/windscada/perf/*、src/windscada/subsys/*、src/windcms/{report_std,tcm,knowledge,cross_review,audit_rules,pipeline}.py),因此:
- * 调用的行为与重构前完全一致(零行为变化);
- * 后续阶段(见 `docs/重构方案_模块化_v0.1.md`)把实现搬到本模块目录后,**只改这里的目标映射**,
- 调用方一行都不用动;
- * 惰性转发(PEP 562)保证 import 本文件不会连带 import 重依赖。
- """
- from __future__ import annotations
- import importlib
- # 公开名 → 现有实现(P0 转发目标;P1 起改为本模块内的实现模块)
- _TARGETS: dict[str, str] = {
- 'taxonomy': 'src.windscada.taxonomy',
- 'audit': 'src.windscada.audit',
- 'curves': 'src.windscada.perf.curves',
- 'control': 'src.windscada.perf.control',
- 'reliability': 'src.windscada.perf.reliability',
- 'faults': 'src.windscada.perf.faults',
- 'availability': 'src.windscada.perf.availability',
- 'trend': 'src.windscada.perf.trend',
- 'curtail': 'src.windscada.perf.curtail',
- 'powercurve': 'src.windscada.perf.powercurve',
- 'fusion': 'src.windscada.subsys.fusion',
- 'pitch': 'src.windscada.subsys.pitch',
- 'yaw': 'src.windscada.subsys.yaw',
- 'hydraulic': 'src.windscada.subsys.hydraulic',
- 'temp_nbm': 'src.windscada.subsys.temp_nbm',
- 'structure': 'src.windscada.subsys.structure',
- 'thermal_chain': 'src.windscada.subsys.thermal_chain',
- 'workorder': 'src.windscada.subsys.workorder',
- 'cms_report': 'src.windcms.report_std',
- 'cms_tcm': 'src.windcms.tcm',
- 'cms_knowledge': 'src.windcms.knowledge',
- 'cms_review': 'src.windcms.cross_review',
- 'cms_rules': 'src.windcms.audit_rules',
- 'cms_pipeline': 'src.windcms.pipeline',
- }
- __all__ = list(_TARGETS)
- def __getattr__(name: str):
- target = _TARGETS.get(name)
- if target is None:
- raise AttributeError(
- f'{__name__} 未公开 {name!r};公开面见 __all__ —— 模块间调用只许走 api.py'
- )
- mod = importlib.import_module(target)
- globals()[name] = mod
- return mod
|