Files
Pier_v1/Code/교각모델링앱/tools/report_autocheck.py
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 11:20:18 +09:00

36 lines
1.6 KiB
Python

"""Print the app-check distribution of the real piers (stage B, 2026-10-16) without touching data/: the piers are copied (without runs,
backup and the DWG / DXF files) into 검증/autocheck_report_data and checked there.
usage: python tools/report_autocheck.py [pier ...] -> per pier: counts of required bundles per status and the non-g bundles."""
import json
import os
import shutil
import sys
import time
from pathlib import Path
APP = Path(__file__).resolve().parents[1]
TD = APP / "검증" / "autocheck_report_data"
if TD.exists():
shutil.rmtree(TD)
names = sys.argv[1:] or [d.name for d in sorted((APP / "data").iterdir()) if (d / "params.json").exists() and not d.name.startswith("_")]
for n in names:
shutil.copytree(APP / "data" / n, TD / n, ignore=shutil.ignore_patterns("runs", "backup", "dwg", "dxf"))
shutil.copytree(APP / "data" / "_템플릿", TD / "_템플릿", ignore=shutil.ignore_patterns("_이전"))
os.environ["PIERAPP_DATA"] = str(TD)
sys.path.insert(0, str(APP / "web"))
sys.path.insert(0, str(APP))
import app as webapp # noqa: E402
import store # noqa: E402
from engine import verify # noqa: E402
for n in names:
p = store.Pier(n)
t0 = time.time()
a = p.run_autocheck(force=True)
req = {f"{f}:{k}" for f, k in webapp.required(p)}
c = verify.counts(a["sections"], req)
print(f"== {n}: required {len(req)} -> " + " ".join(f"{verify.ST_NAME[k]} {v}" for k, v in c.items()) + f" ({time.time() - t0:.1f}s)")
for b, r in sorted(a["sections"].items()):
if b in req and r["st"] != "g":
print(f" {verify.ST_NAME[r['st']]:5s} {b:28s} {r['summary'][:110]}")