File size: 1,664 Bytes
52585d7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | """์ค์ 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()
|