Срез 2a: парсер ОСВ из XLS/XLSX/XLSB — динамическое обнаружение структуры (§1), контракт v1.1, golden на 66 реальных файлах #6

Merged
aep merged 45 commits from feat/5-slice-2a-osv-parser into main 2026-10-05 19:18:07 +03:00
2 changed files with 9 additions and 9 deletions
Showing only changes of commit 777d4aa850 - Show all commits

View File

@ -6,7 +6,7 @@ Stateless-сервис распознавания табличных файло
возвращает структуру файла и ничего не знает про организации, периметры и план счетов — нормализацией занимается
`arm-core`.
Обмен с `arm-core` идёт по контракту **v1.0**: схемы — [`../docs/contracts/`](../docs/contracts/), копия — в
Обмен с `arm-core` идёт по контракту **v1.1**: схемы — [`../docs/contracts/`](../docs/contracts/), копия — в
`api/contracts/` (идентичность с источником проверяется в `make check`).
**Срез 0 — скелет.** Транспорт работает полностью (подписка, ack, чтение S3, публикация результата, ошибки транспорта),
@ -52,7 +52,7 @@ api/ бэкенд (все команды разработки
src/core/ config.py (настройки), clients.py (S3), nats.py (соединение NATS), worker.py (воркер
распознавания), logger.py, exception_handlers.py
src/parser/ интерфейс Parser и заглушка NullParser (разбор — Срез 2)
src/contract/ pydantic-модели контракта v1.0
src/contract/ pydantic-модели контракта v1.1
contracts/ копии JSON-схем контракта и примеры
rules/ словари синонимов *.yaml для парсера (пока только README; словари — Срез 2)
tests/ pytest: unit и integration (маркер `integration`)

View File

@ -71,15 +71,15 @@
},
{
"row_number": 3,
"level": 1,
"level": 2,
"parent_row_number": 2,
"row_value": "ООО Одуванчик, ИНН 7722222222",
"group_type": "COUNTERPARTY",
"group_name": "Контрагенты",
"row_value": "Вал.",
"group_type": "OTHER",
"group_name": null,
"account_code_raw": "60",
"counterparty_name": "ООО Одуванчик",
"counterparty_inn": "7722222222",
"data_type": "NU",
"counterparty_name": "ООО Лютик",
"counterparty_inn": "7711111111",
"data_type": "CURRENCY",
"opening_debit": "0.00",
"opening_credit": "400.00",
"turnover_debit": "100.00",