feat(core): 实现 Result 的 __repr__ 与 summary

L0 第 1 项落地。

- __repr__:单行紧凑;data 只给类型与规模(ndarray(100000)),
  绝不整数组打印;__repr__ 永不抛异常
- summary():可直接贴进论文的 Markdown 表格,
  行序 success → params.* → metrics.* → extras.*(按插入顺序,不排序),
  float 走 .6g,竖线转义,message 以引用行附在表后
- 新增 5 个模块级私有辅助:_fmt_scalar / _fmt_cell / _fmt_mapping /
  _describe_data / _truncate
- tests/test_core.py:去掉 test_result_repr_is_readable 的 skip,
  并补 3 条行为测试(默认值与失败路径与十万级数组、Markdown 结构、幂等)
- STATUS.md:L0 进度 1/12;新增决策 21(repr 不打印 data 内容)、
  22(summary 行序不排序);CHANGELOG.md 同步
This commit is contained in:
guzhujushi committed 2026-10-01 18:48:43 +08:00
1 parent bcdbdd35a3
commit cb96c847dd
4 files changed
+162 -13

No files matched your search

+5 -1
View File
@@ -20,8 +20,12 @@
- `environment.yml`:需联网时的精确复现方案
- `pyproject.toml`:核心依赖只 4 个,其余走 extras
### Changed
- `core.Result`:补上 `__repr__` 与 `summary()` 实现(L0 第 1 项落地)。
`repr` 紧凑单行且不打印 `data` 内容;`summary()` 输出可直接贴进论文的 Markdown 表格。
### Notes
- 所有函数体**尚未实现**(统一 `raise NotImplementedError` + `TODO(L0/L1/v0.2)` 标记)。
- 除 `core.Result` 外,其余函数体**尚未实现**(统一 `raise NotImplementedError` + `TODO(L0/L1/v0.2)` 标记)。
这是刻意的:先定接口,再按 `docs/03-roadmap.md` 的 L0 → L1 顺序填实现。
- 已知缺口:`SALib`(Sobol/Morris)、`pymoo`、`pyright` 未安装(本机离线)。