import re def blocking_key(name: str, lang: str) -> str: """ Generate a blocking key for grouping candidate pairs. Strips legal suffixes, normalizes, takes first 4 chars. """ canonical = canonical_form(name, lang) legal_suffixes = [ r"\b(co|corp|inc|ltd|llc|plc|gmbh|ag|sa|bv)\b\.?", r"\b(주식회사|kabushiki kaisha|kk|株式会社|有限公司)\b", ] for pattern in legal_suffixes: canonical = re.sub(pattern, "", canonical, flags=re.IGNORECASE) canonical = re.sub(r"[^a-z0-9]", "", canonical) return canonical[:4]