feat(site-finder): лоадер точек выхода ГРС «Екатеринбурггаз» — форма 6 (#2119 B2, PR-2/4) #2247

Merged
bot-backend merged 1 commit from feat/gas-outlet-loader into main 2026-07-03 02:25:13 +00:00
Collaborator

Summary

  • ekgas_outlet_loader: парс каталога раскрытия (apex ekgas.ru — www ломает SSL; реюз apex-SSL/normalize_grs_name/parse_reserve_number из B1), выбор свежайшей «Формы 6 прил.№4» с приоритетом факта «за» над прогнозом «на» (годовой .xls скип); XLSX header r10/данные r12, forward-fill block-marker ГРС, «0.000» → needs_calc (не ноль!)*, дефицит со знаком, сноска-скип; консервативный address_extracted (юрлицо без адресного сигнала → NULL); UPSERT ON CONFLICT (4-кол ключ схемы 184) + SAVEPOINT + дедуп-суффикс « (N)» (урок тепла/воды).
  • Ревью-верификация: INSERT↔DDL байт-в-байт (16 колонок), NOT NULL гарантии, bs4 в deps, все 12 месяцев регэкспа, «зимний сезон» не матчится ложно.
  • Depends on: #2246 (схема, merge первой). Celery-обвязка и §3 — PR-4; геокод — PR-3.

Test plan

  • 19 unit-тестов (выбор файла/факт>прогноз, реальная сетка, 0.000*, дефицит, адрес-экстрактор, дедуп, UPSERT-счётчики), ruff clean
  • code-reviewer APPROVE
  • post-merge (после #2246): прод-прогон → ~1037 строк, ~218 needs_calc, ~19% адресов

Refs #2119

## Summary - `ekgas_outlet_loader`: парс каталога раскрытия (**apex ekgas.ru** — www ломает SSL; реюз apex-SSL/normalize_grs_name/parse_reserve_number из B1), выбор свежайшей «Формы 6 прил.№4» с **приоритетом факта «за» над прогнозом «на»** (годовой .xls скип); XLSX header r10/данные r12, forward-fill block-marker ГРС, **«0.000*» → needs_calc (не ноль!)**, дефицит со знаком, сноска-скип; консервативный `address_extracted` (юрлицо без адресного сигнала → NULL); UPSERT ON CONFLICT (4-кол ключ схемы 184) + SAVEPOINT + дедуп-суффикс « (N)» (урок тепла/воды). - Ревью-верификация: INSERT↔DDL байт-в-байт (16 колонок), NOT NULL гарантии, bs4 в deps, все 12 месяцев регэкспа, «зимний сезон» не матчится ложно. - Depends on: #2246 (схема, merge первой). Celery-обвязка и §3 — PR-4; геокод — PR-3. ## Test plan - [x] 19 unit-тестов (выбор файла/факт>прогноз, реальная сетка, 0.000*, дефицит, адрес-экстрактор, дедуп, UPSERT-счётчики), ruff clean - [x] code-reviewer ✅ APPROVE - [ ] post-merge (после #2246): прод-прогон → ~1037 строк, ~218 needs_calc, ~19% адресов Refs #2119
bot-backend added 1 commit 2026-07-03 02:10:28 +00:00
feat(site-finder): лоадер точек выхода ГРС «Екатеринбурггаз» (#2119 B2, PR-2/4)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 6s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 7s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m48s
CI / backend-tests (pull_request) Successful in 14m0s
d5607a118a
bot-backend merged commit af70d50f0d into main 2026-07-03 02:25:13 +00:00
bot-backend deleted branch feat/gas-outlet-loader 2026-07-03 02:25:13 +00:00
Sign in to join this conversation.
No reviewers
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#2247
No description provided.