"""mcm_toolkit —— MCM/ICM 竞赛层工具箱。 设计原则见 docs/02-architecture.md: * 薄封装优先:能一行转发 SciPy / sklearn / statsmodels / NetworkX / SALib 的,就不自己写。 * 自己实现是有目的的:只写"库里没有、或自己写才学得会"的算法。 * 统一出口:拟合 / 求解 / 模拟 / 评价类函数一律返回 :class:`Result`。 * 可复现:含随机的函数都接受 `random_state`。 顶层只导出子包与 6 个高频快捷函数,不做 `import *`,避免污染命名空间。 """ from __future__ import annotations # 子包:按 `import mcm_toolkit as mcm` 之后 `mcm.stats.xxx` 使用 from . import ( core, # noqa: F401 data, # noqa: F401 decision, # noqa: F401 models, # noqa: F401 solve, # noqa: F401 stats, # noqa: F401 viz, # noqa: F401 ) from ._version import __version__ # 高频快捷函数:比赛时最常用的几个,允许 `mcm.monte_carlo(...)` 直接用 from .core import Result, get_rng, set_seed # noqa: F401 from .decision import topsis # noqa: F401 from .models import compare_models # noqa: F401 from .solve import monte_carlo, parameter_sweep # noqa: F401 from .stats import bootstrap_ci # noqa: F401 # 公开 API 清单(不是"导出按钮",只列对外承诺稳定的名字) __all__ = [ "__version__", # 子包 "core", "data", "stats", "models", "solve", "decision", "viz", # 快捷函数 "Result", "get_rng", "set_seed", "bootstrap_ci", "compare_models", "monte_carlo", "parameter_sweep", "topsis", ]