| |
| 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 |
|
|
|
|
| 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()) |
|
|