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