#!/usr/bin/env python3 """分析历史干预文件,归纳设备枚举和 code 到下发 domain 的映射。""" from __future__ import annotations import argparse from pathlib import Path from intervention_common import DEFAULT_EXACT_SOURCE, DEFAULT_REGEX_SOURCE, build_source_summary, json_dumps def main() -> int: parser = argparse.ArgumentParser(description="分析历史干预 TSV") parser.add_argument("--exact-source", default=str(DEFAULT_EXACT_SOURCE), help="单句精确干预 TSV 路径") parser.add_argument("--regex-source", default=str(DEFAULT_REGEX_SOURCE), help="正则干预 TSV 路径") parser.add_argument("--top-mapping", type=int, default=30, help="输出前 N 个 code-domain 映射") args = parser.parse_args() summary = build_source_summary(Path(args.exact_source), Path(args.regex_source)) mapping_items = sorted( summary["code_domain_mapping"].items(), key=lambda item: item[1]["count"], reverse=True, ) summary["code_domain_mapping"] = dict(mapping_items[: args.top_mapping]) print(json_dumps(summary)) return 0 if __name__ == "__main__": raise SystemExit(main())