- master_material.label = 이름 + 지역 칸 · 검색어 지역 낱말 · 자재지역 입력 · 고르는 차례(master_pick)가 이름 글 대신 지역 칸과 맞대짐 - 로직 1,520: 같음 1,517 · 전부터 멈춤 3(GC001199 ~ 1201) — 지역 칸만 고쳤을 때 다르던 11(시멘트 전국 · 포항 모래 · 포항 레미콘)이 원래 줄로 - 계산 줄 품목 칸에 지역 · 상하차 · M01 고르기 창(가격 연결 · 로직 재료 후보) 글에 지역 · 상하차(모름 「-」 뺌) - M01 표 찾기(Store_Find) 낱말이 지역 칸에도 맞음 — 「레미콘 서울」 · 저장 뒤 찾기 기억 지움도 지역 칸 포함 - 새 줄 지역 기본 「-」 · test_m01_pick 합판 서울 기대를 지역 칸으로 - check_master 틀 · 본문 · 로직 · 조합 · 목차 0 · 단위 27 · 배 7(전과 같음) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
799 B
Python
21 lines
799 B
Python
"""찾기 맞춤 — 낱말(띄어 나눔)마다 키 · 원문번호 · 이름 · 옛이름 · 별칭 · 지역(재료 · 830-10) 가운데 하나에 들면 맞음.
|
|
|
|
띄어쓰기 · 대소문자 무시 · 별칭 = 설계자가 로직을 찾는 다른 이름(쉼표로 여럿 · 208-1).
|
|
짝: `ui_template/ui_template_logic_find.ts` `matchLogic`(화면 쪽) ·
|
|
거울 시험 `test_208_1_logic_alias.py`.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
FIELDS = ("키", "원문번호", "이름", "옛이름", "별칭", "지역")
|
|
|
|
|
|
def squash(text) -> str:
|
|
return "".join(str(text or "").lower().split())
|
|
|
|
|
|
def hit(row: dict, q: str) -> bool:
|
|
words = [squash(w) for w in str(q or "").split()]
|
|
fields = [squash(row.get(k)) for k in FIELDS]
|
|
return all(any(w in f for f in fields) for w in words)
|