from __future__ import annotations import re from shared.utils import normalize_text from shared.config import config def clean_title(t: str) -> str: t = normalize_text(t) t = re.sub(r":\s*$", "", t) return t def is_blacklisted_heading(title: str) -> bool: """Return True if heading should be skipped based on config blacklist.""" bl = (config().get("blacklist") or {}).get("product-details") or [] low = (title or "").strip().lower() return any(low == (s or "").strip().lower() for s in bl)