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:
|
def fix_lookalikes(text: str, lookalikes: Mapping[str, str]) -> str:
|
||||||
"""Буквы-двойники → цифры только вплотную к цифре, в несколько проходов («2ОО5» → «2005»); `|` — разделитель
|
"""Буквы-двойники → цифры только вплотную к цифре, в несколько проходов («2ОО5» → «2005»); `|` — разделитель
|
||||||
клеток, если первая строка состоит из цифр, пробелов и пунктуации («2|0|2|4|» → «2 0 2 4 »)."""
|
клеток, если первая строка состоит из цифр, пробелов и пунктуации («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]):
|
if _CELL_SEPARATOR_LINE.fullmatch(text.split("\n", 1)[0]):
|
||||||
text = text.replace("|", " ")
|
text = text.replace("|", " ")
|
||||||
if not lookalikes:
|
if not lookalikes:
|
||||||
|
|||||||
@ -51,6 +51,11 @@ class TestFixLookalikes:
|
|||||||
def test_empty_table_keeps_text(self) -> None:
|
def test_empty_table_keeps_text(self) -> None:
|
||||||
assert fix_lookalikes("2ОО5", {}) == "2ОО5"
|
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(
|
@pytest.mark.parametrize(
|
||||||
("raw", "expected"),
|
("raw", "expected"),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user