feat(admin_rules): CLI simulate_admin_rule + fix email avant force_terms
- fix(detect): EMAIL masqué avant _apply_overrides pour éviter que les force_terms (ex: CHCB) ne cassent l'adresse — mh.lafitte@chcb.fr → [EMAIL] - fix(corpus): expected 007 mis à jour ([EMAIL] à la place de mh.[NOM]@[MASK].fr) - feat(tools): tools/simulate_admin_rule.py — CLI de simulation et validation isolée d'une règle admin (--text, --file, --corpus, --all) - fix(admin_rules): required_case_ids corrigés dans admin_rules.default.yml (noms des répertoires du corpus synthétique mis à jour) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1285,15 +1285,15 @@ def _mask_admin_label(line: str, audit: List[PiiHit], page_idx: int) -> str:
|
||||
|
||||
|
||||
def _mask_line_by_regex(line: str, audit: List[PiiHit], page_idx: int, cfg: Dict[str, Any]) -> str:
|
||||
# user overrides & force-masks d'abord
|
||||
line = _apply_overrides(line, audit, page_idx, cfg)
|
||||
|
||||
# EMAIL
|
||||
# EMAIL avant les overrides : les force_terms (ex: CHCB) casseraient sinon l'adresse
|
||||
def _repl_email(m: re.Match) -> str:
|
||||
audit.append(PiiHit(page_idx, "EMAIL", m.group(0), PLACEHOLDERS["EMAIL"]))
|
||||
return PLACEHOLDERS["EMAIL"]
|
||||
line = RE_EMAIL.sub(_repl_email, line)
|
||||
|
||||
# user overrides & force-masks
|
||||
line = _apply_overrides(line, audit, page_idx, cfg)
|
||||
|
||||
# URLs (toutes — peuvent identifier établissements, personnes, services)
|
||||
def _repl_url(m: re.Match) -> str:
|
||||
audit.append(PiiHit(page_idx, "URL", m.group(0), PLACEHOLDERS["MASK"]))
|
||||
|
||||
Reference in New Issue
Block a user