fix(normalizer): замена неразрывного пробела в fix_lookalikes, тест
Исправлена строка 26 в fix_lookalikes: текст.replace("\xa0", " ") для
корректной замены неразрывного пробела (U+00A0) на обычный пробел (U+0020),
как в источнике date_utils._normalize.
Добавлен тест test_nbsp_replacement для проверки замены NBSP с таблицей
двойников и без неё.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
This commit is contained in:
parent
cea8dfe485
commit
746d993077
@ -23,7 +23,7 @@ _CELL_SEPARATOR_LINE = re.compile(r"[\s\d|•·.:,]*")
|
||||
def fix_lookalikes(text: str, lookalikes: Mapping[str, str]) -> str:
|
||||
"""Буквы-двойники → цифры только вплотную к цифре, в несколько проходов («2ОО5» → «2005»); `|` — разделитель
|
||||
клеток, если первая строка состоит из цифр, пробелов и пунктуации («2|0|2|4|» → «2 0 2 4 »)."""
|
||||
text = text.replace(" ", " ")
|
||||
text = text.replace("\xa0", " ")
|
||||
if _CELL_SEPARATOR_LINE.fullmatch(text.split("\n", 1)[0]):
|
||||
text = text.replace("|", " ")
|
||||
if not lookalikes:
|
||||
|
||||
@ -51,6 +51,11 @@ class TestFixLookalikes:
|
||||
def test_empty_table_keeps_text(self) -> None:
|
||||
assert fix_lookalikes("2ОО5", {}) == "2ОО5"
|
||||
|
||||
def test_nbsp_replacement(self) -> None:
|
||||
# неразрывный пробел (U+00A0) → обычный пробел (U+0020)
|
||||
assert fix_lookalikes("31\xa012\xa02024", LOOKALIKES) == "31 12 2024"
|
||||
assert fix_lookalikes("31\xa012\xa02024", {}) == "31 12 2024"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("raw", "expected"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user