ekb_ppt_tep: post-фильтры парсера + врезка в analyze + seed-URL (#1133 follow-up) #1136

Closed
opened 2026-06-07 11:55:00 +00:00 by bot-reviewer · 0 comments
Collaborator

Follow-up из PR #1133 (ТЭП-parser MVP смерджен, scaffold инертен — beat нет, seed-URL placeholder). Сделать до/вместе с первым реальным прогоном ingest_ppt_tep.

1. Post-фильтры парсера (ekb_ppt_tep_parser.py) — качество MVP

По образцу ppt2018_22823:

  • Табл.11 (баланс зон): 12 реальных зон + 2 преамбульных артефакта → фильтр zone_name != '' / отброс строк без осмысленного zone_name.
  • Табл.13 (очередность): ~30–40 реальных + continuation-шум от merged-cells (распарсилось 364) → dedup + post-filter пустых/дублей.
  • Структура ППТ разнится между проектами — raw_tables в БД уже есть для отладки; калибровать фильтры на 2-3 разных ППТ.

2. Seed-URL

_SEED_DOCS[0]["url"] = placeholder # VERIFY URL (ingest скипает с WARNING). Уточнить реальный URL пояснительной записки на екатеринбург.рф/ГИСОГД. После — разовый прогон ingest_ppt_tep → проверить {"docs": 1} + непустые zone_balance/tep/phasing.

3. Врезка в analyze

doc_refplanning_projects.source_key/doc_full_name (best-effort, как описано в миграции) → отдавать ТЭП-контент в ИРД-блоке analyze для участков в границах ППТ/ПМТ. graceful, рядом с planning/krt_requisites (DB-секция).

4. Vault

CLAUDE.md rule 6: content-сторона ППТ/ПМТ (ТЭП из PDF) vs geometry-слой planning_projects — решение + grain ekb_ppt_tep.

Acceptance

  • post-фильтры Табл.11/13 + тесты на чистоту; seed-URL уточнён + прогон; analyze-врезка с тестом; vault-запись.

Файлы: backend/app/services/scrapers/ekb_ppt_tep_parser.py, ekb_ppt_tep_sync.py, ird_analyze.py. Refs #1133 #1085 #1067.

Follow-up из PR #1133 (ТЭП-parser MVP смерджен, scaffold инертен — beat нет, seed-URL placeholder). Сделать до/вместе с первым реальным прогоном `ingest_ppt_tep`. ## 1. Post-фильтры парсера (`ekb_ppt_tep_parser.py`) — качество MVP По образцу ppt2018_22823: - **Табл.11** (баланс зон): 12 реальных зон + 2 преамбульных артефакта → фильтр `zone_name != ''` / отброс строк без осмысленного `zone_name`. - **Табл.13** (очередность): ~30–40 реальных + continuation-шум от merged-cells (распарсилось 364) → dedup + post-filter пустых/дублей. - Структура ППТ разнится между проектами — `raw_tables` в БД уже есть для отладки; калибровать фильтры на 2-3 разных ППТ. ## 2. Seed-URL `_SEED_DOCS[0]["url"]` = placeholder `# VERIFY URL` (ingest скипает с WARNING). Уточнить реальный URL пояснительной записки на екатеринбург.рф/ГИСОГД. После — разовый прогон `ingest_ppt_tep` → проверить `{"docs": 1}` + непустые zone_balance/tep/phasing. ## 3. Врезка в analyze `doc_ref` ↔ `planning_projects.source_key`/`doc_full_name` (best-effort, как описано в миграции) → отдавать ТЭП-контент в ИРД-блоке analyze для участков в границах ППТ/ПМТ. graceful, рядом с planning/krt_requisites (DB-секция). ## 4. Vault CLAUDE.md rule 6: content-сторона ППТ/ПМТ (ТЭП из PDF) vs geometry-слой planning_projects — решение + grain `ekb_ppt_tep`. ## Acceptance - post-фильтры Табл.11/13 + тесты на чистоту; seed-URL уточнён + прогон; analyze-врезка с тестом; vault-запись. Файлы: `backend/app/services/scrapers/ekb_ppt_tep_parser.py`, `ekb_ppt_tep_sync.py`, `ird_analyze.py`. Refs #1133 #1085 #1067.
bot-reviewer added the
priority/p3
scope/backend
site-finder
tech-debt
ИРД
labels 2026-06-07 11:55:06 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1136
No description provided.