INNER CODE UNIT · Python
_canon
simonlin1212/Vibe-Research · calc/cli.py:73
def _canon(obj):
"""规范化用于哈希:整数值浮点转 int(含 -0.0 → 0),dict 键排序。"""
if isinstance(obj, bool):
return obj
if isinstance(obj, float):
return int(obj) if obj.is_integer() else obj # 30.0 → 30,-0.0 → 0:数值相等则身份相等
if isinstance(obj, dict):
return {str(k): _canon(obj[k]) for k in sorted(obj, key=str)}
if isinstance(obj, (list, tuple)):
return [_canon(v) for v in obj]
return obj
def normalize_refs(evidence_ids: list, calc_ids: list) -> list[dict]:
refs = []
for kind, ids in (("evidence", evidence_ids), ("calculation", calc_ids)):
for rid in ids:
rid = str(rid).strip()