Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/35-inn-rows-around-counterparty"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #35, closes #34.
ОСВ, где ИНН контрагента выведен отдельной строкой рядом с наименованием, теперь разбирается во всех восьми раскладках: (ИНН над / под наименованием) × (в дереве / не в дереве) × (с суммами / без сумм).
Спека:
openspec/changes/osv-inn-rows-layouts/. План:docs/superpowers/plans/2026-10-13-osv-inn-rows-layouts.md.Мерджить вместе с PR в arm-ka-docs и arm-ka-fixtures (ветка
feat/35-inn-rows-around-counterparty).Что изменилось
api/src/parser/inn_rows.pyработает междуresolve_levelsиclassify_rows. Он находит строки ИНН, сопоставляет каждую со своим контрагентом, убирает склеенную строку из дерева и передаёт классификатору ИНН контрагентов.<группировка>.ИННв шапке строка ИНН принимается, только если контрольная сумма верна. С подсказкой проверки нет, а порядок элементов шапки задаёт направление (оба порядка распознаются).needs_check(s28).needs_check(H-2).needs_check._glue_inn_rows(OQ-130),glue_inn_attributesиInnAttribute(#32).Проверка
origin/main(d0d3c79).make check-full: 2433 unit-теста и 10 интеграционных прошли, ruff и mypy чистые.needs_check → doneесть в s21, s22, s24 и s26, обратных нет. Golden: изменились ровно эти 10 снимков, владелец одобрил.Решения владельца (13.10.2026)
needs_check. fixed17986e5(fixtures7c69f2e, goldend8241c0).needs_check. fixed17986e5.Rulings I made
Номер в скобках — номер решения в
design.md, раздел## Decisions made without discussion. Для каждого указана цена ошибки.needs_checkвместо склейки.needs_check.osv.py: если ИНН отнесён строке, которая не стала контрагентом, появляются предупреждение иneeds_check. Цена ошибки: возможны ложныеneeds_check; на реальных файлах отличий нет._withoutберёт родителя поlevels.parent. Цена ошибки: при пропусках уровней outline возможна неверная иерархия._drop_conflictsпосле_check_sumsоставлен, спека поправлена. Цена ошибки: строка ИНН, отвергнутая по суммам, не участвует в конфликте.__all__в numbers; проверкаisascii() and isdigit(); переименование локальной переменной вclassify.py; направление по номерам строк; s28 остаётся COUNTERPARTY без ИНН; состав golden в CLAUDE.md.Находки ревью
_unrecognised_attributesсрабатывал на любое наименование), I-2, I-3, M-1, M-3…M-8 — fixed6110248, docsfafd96f, fixturesa18a4cf. Пере-ревью fix-волны: всё ADDRESSED.Deferred
Попадут в follow-up issue при закрытии.
_kindи_unrecognised_attributes._block_direction.classify.pyо порядке веток.indentиsumsсо строками ИНН не проверены._depthsдо склейки: возможна ошибка на схеме с двумя смежными COUNTERPARTY.test_roundtrip(уже в #36).После merge
Пересобрать контейнер парсера на стенде. Ядро не меняется, контракт тот же.
🤖 Generated with Claude Code
Парные PR: RSHB/arm-ka-docs#102, RSHB/arm-ka-fixtures#19. Мерджить вместе.