"""Step 3 check for the drawing review report: required chapters, source on every finding row, version token vs change history, finding counts, cross-reference to OPEN items.""" import re import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[2] rep = ROOT / "DOC" / "06_보고서" / sys.argv[1] s = rep.read_text(encoding="utf-8") need = ["## 2. 도면 오류", "## 3. 개선방안", "## 4. 추가되어야 할 사항", "## 5. 누락사항", "## 6. 철근재료표", "## 7. 철근상세"] for h in need: print("chapter", h, "OK" if h in s else "MISSING") rows = [l for l in s.splitlines() if re.match(r"\| (E|M)-\d\d ", l)] nosrc = [l[:12] for l in rows if not re.search(r"D[123]", l)] print("finding rows", len(rows), "E", sum(l.startswith("| E-") for l in rows), "M", sum(l.startswith("| M-") for l in rows), "without D1/D2/D3 source", nosrc) ver = re.search(r"_v(\d+\.\d+\.\d+)\.md$", rep.name).group(1) hist = [l for l in s.splitlines() if l.startswith("| v")] print("version", ver, "history latest", hist[-1].split("|")[1].strip(), "OK" if hist[-1].split("|")[1].strip() == "v" + ver else "MISMATCH") judg = re.findall(r"\| (오류|불일치|누락|확인 필요) \|", s) print("judgement vocabulary used", sorted(set(judg)), len(judg)) openrefs = re.findall(r"^\| (\d+(?:, \d+)?) \|", s, re.M) print("OPEN refs in appendix", openrefs)