Follow-ups from #5 #7

Closed
opened 2026-10-05 19:22:08 +03:00 by aep · 2 comments
Owner

Отложенные находки Среза 2a (PR #6). Полные формулировки — docs/superpowers/plans/2026-10-05-slice-2a-osv-parser-ledger.md. Формат: маркер — суть — откуда.

Платформа / безопасность чтения

  • OQ-108 — граница безопасности чтения xlsx: лимит памяти контейнера и/или подпроцесс с RLIMIT; defusedxml как зависимость; версия expat в образе — финальное ревью I-1, R-23/R-25/№39
  • M-7 / OQ-109 — воркер скачивает объект S3 целиком до проверки PARSE_MAX_BYTES; проверять размер по stat до скачивания — финальное ревью
  • OQ-102 / O-7 — заменить рукописный s13_no_outline_indent.xlsb на xlsb из Excel/LibreOffice; T11.3 BrtRowHdr 16 vs 17 байт — T11
  • остаточные риски предскана: объём ячеек, sharedStrings/стили, entity expansion, память и CPU самого скана, линейный перебор крупных merged в пределах потолка — README «Известные ограничения»

Вопросы к аналитике (OQ в docs)

  • OQ-100 / R-17, T8.6 — ИНН внутри текста строки контрагента и склеенная «ИНН/КПП»
  • OQ-105 / R-21 — сверка «сумма детей = родитель» по нетто при свёрнутом сальдо родителя (слепая зона перестановки сторон)
  • OQ-106 / M-4 — «Итого = корень» при нескольких корнях уровня 0
  • OQ-107 / M-5 — hierarchy=sums делает сверку тавтологичной → needs_check?
  • OQ-101 / T7.3 — числа «+5», «.5», «5.»; OQ-103 — буквенные первые сегменты счетов («МЦ.04»); OQ-104 / T12.1 / O-8 — «Валюта» в строке детализации варианта 2; OQ-98 — коды валют; OQ-99 — несколько ОСВ одного счёта в книге

Парсер

  • M-2 — предупреждение, если после последней «Итого» есть числа в колонках сумм — финальное ревью
  • T3.4 — NFC в normalize_text; T3.5 — «полугодовой»; T3.7 — пустые паттерны в загрузчике — T3
  • T5.6 — двойной _subkonto_items; T5.8 — период: первый кандидат, не строка названия; T5.9 — «Валюта» без «:» — T5
  • T7.5 — INN_LENGTHS не в __all__ — T7
  • T2.2 — xlsb BOOLERR hex vs xls «#N/A»; T2.3 — fake pyxlsb неточен; T2.4 — единицы indent разные; T2.5 — даты xlsb числами; O-4 — размеры xlsb-листа по cells — T2
  • T6.6 — # type: ignore в тестах; алгоритмическая граница для стратегии sums (сейчас только дедлайн) — T6
  • остаточный риск R-15 — телефон в колонке ИНН принимается за ИНН

Тесты, CLI, инфраструктура

  • M-6 / T3.8 — слепые зоны AST-линтера координат (rows[5], range(5, 9), адреса строчными, TDSheet, другие имена листов) — T3, финальное ревью
  • T10.1 — ленивая инициализация app в src/__init__ (CLI без env; шаблон платформы); T10.2 — CLI проверяет лимит после чтения; T10.3 — общие хелперы тестов; T10.4 — очистка ключа в интеграционном тесте; T10.5 — --file-type в нижнем регистре — T10
  • T1.2 — expanduser для ARM_KA_FIXTURES; T1.3 — пустой osv/ даёт generic skip — T1
  • T9.2 — порядок warnings; T9.3 — лишние скобки; T9.4 — get_parser() на каждый файл в тестах — T9
  • T11.4 — формулировка README fixtures; T11.5 — воспроизводимость генератора между OS/zlib; T11.6 — подстрока номера строки в тесте s10; T11.7 — синонимы связывают сценарии; T11.8 — косметика генератора — T11
  • T12.6 — приватные имена из cli; T13.8 — дубли README в CLAUDE.md — T12, T13
  • O-6 — «Нач. остаток» не распознаётся штатным словарём (тест R-8 использует кастомный словарь)
Отложенные находки Среза 2a (PR #6). Полные формулировки — `docs/superpowers/plans/2026-10-05-slice-2a-osv-parser-ledger.md`. Формат: маркер — суть — откуда. **Платформа / безопасность чтения** - OQ-108 — граница безопасности чтения xlsx: лимит памяти контейнера и/или подпроцесс с RLIMIT; `defusedxml` как зависимость; версия expat в образе — финальное ревью I-1, R-23/R-25/№39 - M-7 / OQ-109 — воркер скачивает объект S3 целиком до проверки `PARSE_MAX_BYTES`; проверять размер по stat до скачивания — финальное ревью - OQ-102 / O-7 — заменить рукописный `s13_no_outline_indent.xlsb` на xlsb из Excel/LibreOffice; T11.3 `BrtRowHdr` 16 vs 17 байт — T11 - остаточные риски предскана: объём ячеек, sharedStrings/стили, entity expansion, память и CPU самого скана, линейный перебор крупных merged в пределах потолка — README «Известные ограничения» **Вопросы к аналитике (OQ в docs)** - OQ-100 / R-17, T8.6 — ИНН внутри текста строки контрагента и склеенная «ИНН/КПП» - OQ-105 / R-21 — сверка «сумма детей = родитель» по нетто при свёрнутом сальдо родителя (слепая зона перестановки сторон) - OQ-106 / M-4 — «Итого = корень» при нескольких корнях уровня 0 - OQ-107 / M-5 — `hierarchy=sums` делает сверку тавтологичной → needs_check? - OQ-101 / T7.3 — числа «+5», «.5», «5.»; OQ-103 — буквенные первые сегменты счетов («МЦ.04»); OQ-104 / T12.1 / O-8 — «Валюта» в строке детализации варианта 2; OQ-98 — коды валют; OQ-99 — несколько ОСВ одного счёта в книге **Парсер** - M-2 — предупреждение, если после последней «Итого» есть числа в колонках сумм — финальное ревью - T3.4 — NFC в `normalize_text`; T3.5 — «полугодовой»; T3.7 — пустые паттерны в загрузчике — T3 - T5.6 — двойной `_subkonto_items`; T5.8 — период: первый кандидат, не строка названия; T5.9 — «Валюта» без «:» — T5 - T7.5 — `INN_LENGTHS` не в `__all__` — T7 - T2.2 — xlsb BOOLERR hex vs xls «#N/A»; T2.3 — fake pyxlsb неточен; T2.4 — единицы indent разные; T2.5 — даты xlsb числами; O-4 — размеры xlsb-листа по `cells` — T2 - T6.6 — `# type: ignore` в тестах; алгоритмическая граница для стратегии `sums` (сейчас только дедлайн) — T6 - остаточный риск R-15 — телефон в колонке ИНН принимается за ИНН **Тесты, CLI, инфраструктура** - M-6 / T3.8 — слепые зоны AST-линтера координат (`rows[5]`, `range(5, 9)`, адреса строчными, `TDSheet`, другие имена листов) — T3, финальное ревью - T10.1 — ленивая инициализация `app` в `src/__init__` (CLI без env; шаблон платформы); T10.2 — CLI проверяет лимит после чтения; T10.3 — общие хелперы тестов; T10.4 — очистка ключа в интеграционном тесте; T10.5 — `--file-type` в нижнем регистре — T10 - T1.2 — expanduser для `ARM_KA_FIXTURES`; T1.3 — пустой `osv/` даёт generic skip — T1 - T9.2 — порядок warnings; T9.3 — лишние скобки; T9.4 — `get_parser()` на каждый файл в тестах — T9 - T11.4 — формулировка README fixtures; T11.5 — воспроизводимость генератора между OS/zlib; T11.6 — подстрока номера строки в тесте s10; T11.7 — синонимы связывают сценарии; T11.8 — косметика генератора — T11 - T12.6 — приватные имена из `cli`; T13.8 — дубли README в CLAUDE.md — T12, T13 - O-6 — «Нач. остаток» не распознаётся штатным словарём (тест R-8 использует кастомный словарь)
Author
Owner

M-2 (предупреждение о числах после последней «Итого») закрыт PR #48 (merge 18.10.2026, коммит 195720c): таблица кончается на первой «Итого», числа ниже в колонках таблицы — предупреждение «ниже таблицы (после «Итого») есть числа».

M-2 (предупреждение о числах после последней «Итого») закрыт PR #48 (merge 18.10.2026, коммит 195720c): таблица кончается на первой «Итого», числа ниже в колонках таблицы — предупреждение «ниже таблицы (после «Итого») есть числа».
Author
Owner

Продуктовое из списка закрыто или принято в OQ, парсер с тех пор сильно переписан. Мелкий техдолг тестов и CLI отдельно не держу. Закрываю.

Продуктовое из списка закрыто или принято в OQ, парсер с тех пор сильно переписан. Мелкий техдолг тестов и CLI отдельно не держу. Закрываю.
aep closed this issue 2026-10-25 19:17:11 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-tabular-parser#7
No description provided.