| """์ค์ P ์ฐ์ ์์ JSONL์ ํ์ตยทํ๊ฐ ์ ์ fail-closed๋ก ๊ฐ์ฌํ๋ค.""" |
|
|
| from __future__ import annotations |
|
|
| import argparse |
| from datetime import datetime, timezone |
| import json |
| from pathlib import Path |
| import sys |
|
|
| PROJECT_ROOT = Path(__file__).parents[1] |
| SOURCE_ROOT = PROJECT_ROOT / "src" |
| if str(SOURCE_ROOT) not in sys.path: |
| sys.path.insert(0, str(SOURCE_ROOT)) |
|
|
| from math_grid_drawer.research.external_corpus import read_jsonl |
| from math_grid_drawer.research.p_formula_gate06 import audit_p_formula_records06 |
|
|
|
|
| def main() -> None: |
| """ํ์ ๋ณ์: UTF-8 JSONLยท์ต์ source ์ยท์ถ๋ ฅ. ์๋ ์๋ฆฌ: ์ค์ P gate ์ ๊ฒฉ ์ฌ๋ถ์ ๋ชจ๋ ๋์ ์์ธ์ JSON์ผ๋ก ๋จ๊ธด๋ค.""" |
|
|
| parser = argparse.ArgumentParser(description="Preflight real P continuous formula data") |
| parser.add_argument("--data", type=Path, required=True) |
| parser.add_argument("--minimum-independent-sources", type=int, default=2) |
| parser.add_argument("--output", type=Path, required=True) |
| args = parser.parse_args() |
| records = list(read_jsonl(args.data)) |
| report = audit_p_formula_records06( |
| records, minimum_independent_sources=args.minimum_independent_sources, |
| ) |
| report["generated_at"] = datetime.now(timezone.utc).isoformat() |
| report["data"] = str(args.data) |
| args.output.parent.mkdir(parents=True, exist_ok=True) |
| args.output.write_text( |
| json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8", |
| ) |
| print(json.dumps(report, ensure_ascii=False, indent=2)) |
| if not report["eligible_for_product_evaluation"]: |
| raise SystemExit(2) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|