feat(macro): Росстат open-data scraper → macro_indicator (#946, partial) #1143
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1143
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/rosstat-emiss-macro-946"
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?
Что
EPIC2 макро-ingest #946: скрейпер Росстата (region 65 / ЕКБ по ОКТМО) в существующую
macro_indicator(м.123). Частичный — приземляет демографию (population_total, §7.11); зеркалит формуcbr_macro.Важное про reachability (проверено на проде)
rosstat.gov.ru/opendataиз прода даёт SSL-cert-ошибку (Russian Trusted CA) при дефолтной проверке → но скрейпер используетverify=False(precedent: 8 скрейперов в репо), и с ним из прода list.csv=200 (491КБ), meta.csv=200 — т.е. на проде таска работает. (Сырой curl без -k давал 000 — это артефакт cert-проверки, не недоступность.)Содержимое
services/scrapers/rosstat_emiss.py— pure-парсеры + тонкий httpx (registry→meta→data CSV, CP1251/UTF-8, comma-decimal, OKTMO-таргетинг).workers/tasks/rosstat_macro_sync.py— Celery upsert (SAVEPOINT-per-row,CASTnot::, ON CONFLICT по PK indicator_type/region/obs_date, source=rosstat).rosstat-macro-sync-monthly; include в celery_app;site_finder/macro.py—population_total→ region-aware (additive, regression-тест не тронут).Качество
code-reviewer: ✅ APPROVE — SQL-upsert gate пройден (SAVEPOINT/CAST/PK-match),verify=Falseна публичных GET без секретов (follow-up: bundled Russian CA fleet-wide), macro.py no-regression, парсер-тесты на реальных значениях, scope-honesty (EMISS-gaps документированы). 181 тест зелёный, ruff чисто, без новых deps/миграций.Follow-up
POST fedstat.ru/indicator/data.do?format=sdmx— работает из прода; парсер dev-тестируется на прод-фикстурах.verify=True.Refs #946 (частично; EMISS-часть остаётся).