From 9ec50f8ed5b7aa4ef6374778dd44104e97feab06 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 13 Nov 2026 20:57:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor(828-2):=20=ED=8C=90=20=EC=9D=BC?= =?UTF-8?q?=EC=9C=84=20=EC=9E=AC=EB=A3=8C=EB=8A=94=20828-1=20M02=5FSan=5FI?= =?UTF-8?q?lwi.materials=20=ED=95=9C=20=EA=B8=B8=20=E2=80=94=20=EB=82=B4?= =?UTF-8?q?=20=EA=B2=B9=EC=B9=9C=20ilwi=5Ffound=20=EA=B1=B7=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 43e945568 합침에서 census 겹침 = sub3 판(호표 = 코드 숫자) 채택 · test_828_2 판 시험을 그 길로 Co-Authored-By: Claude Opus 5.5 --- M02_MasterTemplete/M02_San_MatFind.py | 21 ------------------- resources/tester/test_828_2_xlsx_ilwi_meta.py | 9 +++++--- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/M02_MasterTemplete/M02_San_MatFind.py b/M02_MasterTemplete/M02_San_MatFind.py index 66e972285..d1d523ed4 100644 --- a/M02_MasterTemplete/M02_San_MatFind.py +++ b/M02_MasterTemplete/M02_San_MatFind.py @@ -73,27 +73,6 @@ def from_book(rows: Any) -> list[dict]: return _uniq(out) -def ilwi_found(saved: dict) -> list[tuple[dict, dict]]: - """둘 꼴 「일위」 구성 줄(828 · 엑셀 일위대가표 숨은 칸 · STC 구성표) 자재 줄 → [(일위 블록, 자원)] · - 단위 % 자원(잡재료비 「재료비의 %」) 뺌 · 자원 `재료찾기` = 산근 줄과 같은 판정(`M02_San_Link.m01` · 단서 = 파일 단서 + 대가 머리).""" - from M02_MasterTemplete.M02_San_Link import m01 - - out = [] - for blk in saved.get("일위") or []: - head = f"{blk.get('이름') or ''} {blk.get('규격') or ''}" - with clues_on(saved.get("단서"), head): - for ln in blk.get("줄") or []: - if ( - ln.get("갈래") != "M" or not ln.get("이름") or "%" in str(ln.get("단위")) - ): # % = 율 자원 - continue - res = {"꼴": saved.get("꼴"), "갈래": "재료", "코드": ln.get("코드") or ""} - res |= {k: ln.get(k) or "" for k in ("이름", "규격", "단위")} - m01("재료", res) - out.append((blk, res)) - return out - - def _uniq(rows: list[dict]) -> list[dict]: seen, out = set(), [] for r in rows: diff --git a/resources/tester/test_828_2_xlsx_ilwi_meta.py b/resources/tester/test_828_2_xlsx_ilwi_meta.py index 79ac6c18a..eef8dad3a 100644 --- a/resources/tester/test_828_2_xlsx_ilwi_meta.py +++ b/resources/tester/test_828_2_xlsx_ilwi_meta.py @@ -141,8 +141,11 @@ def test_one_reader_three_users(): def test_census_ilwi_materials(): + """판 일위 자재 줄 = 828-1 `M02_San_Ilwi.materials`(원파일 · 엑셀 같은 길) — 엑셀 구성 줄도 셈.""" + from M02_MasterTemplete import M02_San_Ilwi as si + path = golden.FILES["영덕계류"] saved = fn.pack(sx.read_sheets(_sheets("영덕계류")), path.name) - got = mf.ilwi_found(saved) - assert len(got) == 4 and all(r["재료찾기"]["판정"] for _, r in got) - assert {b["코드"] for b, _ in got} == {"B01107"} + got = list(si.materials(saved)) + assert len(got) == 4 and all(r["재료찾기"]["판정"] for _, _, r in got) + assert {b["코드"] for b, _, _ in got} == {"B01107"}