Files
Warhammer_DLP_Helper/tools/plan_diff.py
T
Ben_Kosytorz da5f1f7315 sorter: outer file name wins over inner archive names in fuzzy match
Best-pool scoring used to always blend the archive's inner file names
into the fuzzy score (0.95 discount), which dragged clean-named files
into wrong units (e.g. 'Keeper of Secrets & Shalaxi Helbane.7z' ended
in Orks/Boyz). Now the outer name decides when it scores >= threshold;
inner names only vote as fallback (hash-named gofile archives rely on
that). Also: url/failed-list run artifacts are excluded from sorting,
and two plan-inspection helpers under tools/.
2026-10-05 07:34:29 +02:00

27 lines
837 B
Python

#!/usr/bin/env python3
"""Diff old vs new sorter plans by source path -> target."""
import json
import sys
changed = 0
same = 0
examples = []
for n in (1, 2, 3):
old = {p["source"]: p for p in json.load(open(f"/tmp/plan{n}.json"))}
new = {p["source"]: p for p in json.load(open(f"/tmp/plan{n}b.json"))}
for src, np in new.items():
op = old.get(src)
if not op:
continue
if op["target"] != np["target"] or op["kind"] != np["kind"]:
changed += 1
if len(examples) < 40:
examples.append((n, op, np))
else:
same += 1
print(f"same: {same} changed: {changed}")
for n, op, np in examples:
print(f"\n[{n}] {op['name']} (score {op['score']} -> {np['score']})")
print(f" old: {op['target']}")
print(f" new: {np['target']}")