现状与证据
_as_float 在 apps/** 与 src/cobnet/** 有重复语义实现(整数/浮点数且非 bool 时转 float,否则返回 None),目前分散在不同模块。
重复清单:
apps/client/sdk/task/log/tools.py:196
apps/server/usecase/taskplanner/planner.py:51
src/cobnet/insight/trace/attribution.py:42
src/cobnet/insight/trace/report.py:34
此外另有参数化 default 或先判定 bool 的变体:apps/vcs/service.py:748(_as_float(value, default=0.0)),
src/cobnet/net/analysis/view/governance.py:39(bool 先判定后返回 None)。
建议
- 在
src/cobnet/backplane 侧统一抽取 numeric helper(建议支持策略参数:default, coerce=False/True 等),覆盖主流 _as_float 用例。
- 当前 issue 先聚焦上述 4 个语义一致实现。
验收标准
- 新增通用 helper 并补齐测试:正常数值、bool、非数值、None。
- 上述 4 处全部替换为统一调用。
- 与其它
_as_float 变体保持行为兼容。
现状与证据
_as_float在apps/**与src/cobnet/**有重复语义实现(整数/浮点数且非 bool 时转 float,否则返回 None),目前分散在不同模块。重复清单:
apps/client/sdk/task/log/tools.py:196apps/server/usecase/taskplanner/planner.py:51src/cobnet/insight/trace/attribution.py:42src/cobnet/insight/trace/report.py:34此外另有参数化
default或先判定 bool 的变体:apps/vcs/service.py:748(_as_float(value, default=0.0)),src/cobnet/net/analysis/view/governance.py:39(bool 先判定后返回 None)。建议
src/cobnet/backplane侧统一抽取 numeric helper(建议支持策略参数:default,coerce=False/True等),覆盖主流_as_float用例。验收标准
_as_float变体保持行为兼容。