Follow-ups from #6 #9
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Отложенные находки Среза 3a (scan-gateway PR #8, change
slice-3a-ocr-normalizer, решения №17–35 вdesign.md). Маркер — одна строка — откуда.Важное (решение владельца)
aep_6.json: по правилу №15 «первая строка» теряется сумма(649)второй строки (остаётся только вraw/); вопрос «первая строка или первая с суммой» — OQ-152 — финальное ревью opus.aep_4.PDF) → «нет пары» без перехода наSCAN_EMULATOR_DEFAULT; «пар: N» считает все не-JSON файлы; одинаковые байты у двух PDF — ревью Task 14.fsbu4в README не проверен — ревью Task 15.Справочники и правила
test_rules:isinstance(Edition, type)бессмысленно;test_settings_defaultsзависит от окружения/.env — ревью Task 1.rules.py:assert isinstance(...)для сужения типов — ревью Task 1.valid_from > valid_until, нормализации ключейlabels— ревью Task 1.Editionfrozen, ноlines— изменяемый dict — ревью Task 1.<<:) ломают загрузку правил (следствие №33, запрет повторяющихся ключей) — повторное финальное ревью.Конвейер нормализации
test_text: не покрыта ветка «|при буквах в первой строке» — ревью Task 2.•/·в строке-разделителе — ревью Task 2.dates.py: лишние# noqa: PLR2004— ревью Task 3.# "30 09 25",# ГГГГ ДД ММпереехал — ревью Task 3.test_amountsне покрывает-,+,(-5),(+5),(), «—» — ревью Task 4.(0)→Decimal("-0"), как в источнике — ревью Task 4.cells_by_index: confidence-строка → 0.0,boolпроходитisinstance— ревью Task 5.column_indexтипаboolпринимается, строковый индекс пропускается; не покрыто тестом — ревью Task 5.column_index,label_idx=None, полностью пустой столбец значений — ревью Task 5.test_second_header_overrides_layout: обе шапки с одинаковымиcode_idx/label_idx— чтение по новой раскладке не доказано — ревью Task 6.test_aep6_balance_with_headerне проверяет, что повторная шапка (строка 72) не попала в строки — ревью Task 6._ordinal(нецелыйrow_index) — ревью Task 6.header.py: «распознано = confidence 100 и сырой текст без мусора» верно только для ИНН — ревью Task 7.bool/nanпринимаются как confidence в шапке — ревью Task 7.\n,inn_confidence = Noneдля aep_6, поле-не-объект — ревью Task 7.edition is None— повторное ревью Task 8.needs_checkбез предупреждения приorganization_name_confidence < 100;table_structureне список →RECOGNITION_FAILEDбез warning — ревью Task 9.metrics.rowsпо нескольким документам; имяtest_needs_check_with_table_warningвводит в заблуждение — ревью Task 9.Golden
header.units= «тыс. руб. год по ОКЕИ 13184» (clean_valueпо спеке) и ~32 КБ мусора вorganization_name— ревью Task 10.420(вероятно 1420) попадает в документ без предупреждения (код нигде не найден → confidence 99) — ревью Task 10.line_code_confidence = 99, имена из OCR, покаfsbu4пуста — ожидаемо — ревью Task 10.golden_update.golden_casesдублирует логику эмулятора; нет проверки «осиротевших» эталонов — ревью Task 10.test_goldenкрасный, если../fixtures/ocrесть, аexpected_normalize/нет; рассмотреть skip — ревью Task 10.aep_8_form4— основной файл в golden против<uuid>_form4.jsonу эмулятора — финальное ревью.Горячие папки, воркер, эмулятор
os.replace; веткаos.replaceне вызывает_drop_part; нет теста падения unlinkInput/<name>— ревью Task 11.cleanup: ENOENT приremove/rmdirпослеscandirпробрасывается; вложенный каталог вOutput/<job_id>/роняетrmdir(в local —rmtree) — ревью Task 12.TestCleanup; учётные данные вcleanupне проверены — ревью Task 12.tests/unit/test_smb_hotfolder.py:529(mypy вmake lintпроверяет толькоsrc) — ревью Task 12..partвTmpобходит проверкуst_nlink(нужен посторонний актор вTmp);O_NOFOLLOW/S_ISREG— повторное финальное ревью..part0o644 вместо0o666 & ~umask— повторное финальное ревью.INVALID_DOCUMENT, исключение нормализатора) и порядка «послеraw/» — ревью Task 13.test_existing_input_waits_for_answerне проверяетputsи остаток.part— ревью Task 13.test_create_app_uses_ocr_normalizerзависит отcwd = api/— ревью Task 13.worker.py: строка-ограничитель «все ошибки файлов — в raw/» устарела (теперь там и предупреждения нормализации) — финальное ревью.test_roundtrip: комментарий надOK_DOC_PDF;FileNotFoundErrorвместо skip безaep_5.json; теоретическая гонка сценария очистки; golden-сверка молча пропускается безexpected_normalize— ревью Task 15.Документы (docs PR #47)
Открытые вопросы владельцу (в
docs/context/07-open-questions.md): OQ-144 права на удаление на SMB, OQ-145 редакция формы в контракте, OQ-148 длинное тире при confidence 100, OQ-149 строки с пустым/мусорным кодом, OQ-151 эмулятор без JSON-набора, OQ-152 повтор кода.Нормализатор Среза 3a вырезан в #46, большая часть списка потеряла смысл; повтор кода 2410 (OQ-152) теперь сохраняет обе строки. Живое по SMB и эмулятору перенёс в #29. Закрываю.