#!/usr/bin/env python from __future__ import annotations import argparse import sys from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parents[1] if str(PROJECT_ROOT) not in sys.path: sys.path.insert(0, str(PROJECT_ROOT)) from scripts.eval_metrics import main as eval_metrics_main # noqa: E402 def main(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser( description=( "Evaluate CTT generated candidates after they have been rolled out. " "This wrapper intentionally accepts measured candidate rows only; " "use scripts/eval_ctt_proxy.py for distance-only support geometry." ) ) parser.add_argument("--measured-candidates", type=Path, required=True) parser.add_argument("--out-dir", type=Path, required=True) parser.add_argument("--k", type=int, default=16) parser.add_argument("--epsilon", type=float, default=0.0) parser.add_argument("--bootstrap-samples", type=int, default=1000) parser.add_argument( "--no-markdown-report", action="store_true", help="Do not write report.md in the metric output directory.", ) args = parser.parse_args(argv) forwarded = [ "--input", str(args.measured_candidates), "--out-dir", str(args.out_dir), "--mode", "measured", "--k", str(args.k), "--epsilon", str(args.epsilon), "--bootstrap-samples", str(args.bootstrap_samples), ] if args.no_markdown_report: forwarded.append("--no-markdown-report") return eval_metrics_main(forwarded) if __name__ == "__main__": raise SystemExit(main())