| |
| 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 dovla_cil.experiments.reports import generate_dataset_report |
|
|
|
|
| def main(argv: list[str] | None = None) -> int: |
| parser = argparse.ArgumentParser(description="Create analysis reports for a CIL dataset.") |
| parser.add_argument("--dataset", type=Path, required=True, help="CIL dataset directory.") |
| parser.add_argument("--out", type=Path, required=True, help="Report output directory.") |
| parser.add_argument("--sample-groups", type=int, default=3) |
| parser.add_argument("--seed", type=int, default=0) |
| args = parser.parse_args(argv) |
|
|
| summary = generate_dataset_report( |
| args.dataset, |
| args.out, |
| sample_groups=args.sample_groups, |
| seed=args.seed, |
| ) |
| print(f"report: {args.out}") |
| print(f"num records: {summary['num_records']}") |
| print(f"num groups: {summary['num_groups']}") |
| print(f"success rate: {summary['success_rate']:.3f}") |
| return 0 |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |
|
|