carepath-api / scribe /training /scripts /baseline_report.py
tranth3truong's picture
Deploy public Scribe-only CarePath Space
cc678b9
Raw
History Blame Contribute Delete
1.7 kB
"""Write or verify the committed GEC frozen-fixture baseline report.
python scribe/training/scripts/baseline_report.py --write
python scribe/training/scripts/baseline_report.py
"""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[3] / "scribe" / "training"))
sys.path.insert(0, str(Path(__file__).resolve().parents[3] / "scribe"))
from gec.baseline import build_baseline_report # noqa: E402
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--config", type=Path, default=Path("scribe/training/configs/frozen-baseline-v1.json"))
parser.add_argument("--output", type=Path, default=Path("scribe/training/reports/gec-frozen-baseline-v1.json"))
parser.add_argument("--write", action="store_true", help="write the deterministic report")
args = parser.parse_args()
expected = build_baseline_report(args.config)
if args.write:
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(json.dumps(expected, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
print(f"Wrote frozen baseline report -> {args.output}")
return
if not args.output.is_file():
raise SystemExit(f"baseline report not found: {args.output}; run with --write")
actual = json.loads(args.output.read_text(encoding="utf-8"))
if actual != expected:
raise SystemExit("baseline report drifted; regenerate with scribe/training/scripts/baseline_report.py --write")
print(f"Frozen baseline report verified -> {args.output}")
if __name__ == "__main__":
main()