FOLLOW-UP (Leha: not a bug, follow-up). get_macro_series / get_latest_macro defaulted region='rf', but CBR mortgage_* series live under 'sverdl' in macro_indicator (key_rate under 'rf'). Only caller passes region explicitly so no active leak, but a future caller omitting region would silently get None — latent footgun. region now str|None; when None → _canonical_region (mortgage set sourced from _CBR_SERIES_MAP, single source of truth). Explicit region always wins → existing callers unchanged. Region-binding tests added. 159 tests pass. Documented (NOT code-fixed — upstream data-quality): mortgage_debt / mortgage_overdue stay empty in macro_indicator because cbr_mortgage_series.period holds value-like garbage (e.g. '10054588.0') for the Debt series — corruption from the upstream CBR-XLSX scraper that built domrf.db (imported verbatim by 44_import_anton_db.py), NOT an ingest bug. 123_macro_indicator.sql correctly skips unparseable periods. Needs a separate scraper re-ingest (idempotent backfill once period is valid). Refs #945 |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||