| .. |
|
__init__.py
|
add interactive parser of наш.дом.рф ЖК+flats with stealth Playwright
|
2026-04-27 17:58:40 +03:00 |
|
cbr_macro_sync.py
|
feat(site-finder): live CBR key-rate scraper → macro_indicator (#945 PR B) (#964)
|
2026-06-02 19:05:57 +00:00 |
|
ekb_krt_sync.py
|
feat(sf): scraper реестра КРТ-площадок ЕКБ → ekb_krt_sites (#1126)
|
2026-06-07 11:24:49 +00:00 |
|
ekburg_permits_sync.py
|
feat(sf): geocode geom для ekburg_construction_permits из МСК-66 (#1124)
|
2026-06-07 11:16:45 +00:00 |
|
forecast.py
|
feat(forecast): forecast_site_finder_report Celery task + schema-filtered run read (3b-i)
|
2026-06-05 09:02:15 +05:00 |
|
gknspecial_harvest.py
|
feat(sf): gknspecial_zone ИРД-harvest → ird_overlays (#1114)
|
2026-06-07 09:54:53 +00:00 |
|
ird_harvest.py
|
fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1107)
|
2026-06-06 21:47:35 +00:00 |
|
noise_sync.py
|
feat(site-finder): v3.2 — noise + air quality + wind analytics
|
2026-05-11 20:42:37 +03:00 |
|
nspd_denorm_backfill.py
|
feat(nspd): denorm nspd_parcels + nspd_buildings tables (#94 PR3 of 4)
|
2026-05-16 20:20:03 +03:00 |
|
nspd_geo.py
|
fix(nspd-geo): coerce geom to MultiPolygon + wide cad_buildings schema in on-demand ingest
|
2026-06-04 13:11:47 +05:00 |
|
nspd_sync.py
|
fix(#231): address re-review blockers — per-instance semaphore + time_limit + test mocks
|
2026-05-17 10:13:34 +03:00 |
|
objective_etl.py
|
fix(worker): port objective_etl from psycopg2 → psycopg v3
|
2026-05-11 12:07:57 +03:00 |
|
opportunity_harvest.py
|
fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1107)
|
2026-06-06 21:47:35 +00:00 |
|
planning_harvest.py
|
feat(sf): ППТ/ПМТ WFS ingest → planning_projects (future-supply, #1104)
|
2026-06-06 20:25:23 +00:00 |
|
poi_sync.py
|
debug(poi-sync): DB breadcrumbs to nspd_geo_log for silent-fail diagnosis
|
2026-05-11 18:37:43 +03:00 |
|
pzz_sync.py
|
feat(site-finder): ПЗЗ territorial zones from Rosreestr PKK6 + zoning in analyze
|
2026-05-11 21:51:51 +03:00 |
|
refresh_analytics.py
|
fix(scrape): SQLAlchemy text() парсил ':00:' regex как named-param
|
2026-04-30 23:16:11 +03:00 |
|
refresh_quarter_price_index.py
|
feat(db): quarter_price_index FDW foreign table + monthly refresh (Refs #762) (#797)
|
2026-05-30 17:16:28 +00:00 |
|
reservation_ingest.py
|
feat(sf): ПАГЕ-парсер изъятия/резервирования → land_reservation (#1118)
|
2026-06-07 10:15:03 +00:00 |
|
scrape_cadastre.py
|
perf(cadastre): freshness skip + grid-walk heartbeat + log noise reduction (#187)
|
2026-05-15 23:02:37 +03:00 |
|
scrape_kn.py
|
fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log
|
2026-04-28 23:17:42 +03:00 |
|
scrape_kn_catalog_objects.py
|
feat(22d): catalog scraper — skip-today filter + force flag (#348)
|
2026-05-17 23:15:22 +00:00 |
|
scrape_objective.py
|
fix(scrape-objective): stream-parse lots_pf via ijson to avoid OOM (#315)
|
2026-05-17 16:37:30 +00:00 |
|
supply_layers_refresh.py
|
fix(supply-layers): thread dev_group_name into L3 upsert key (#970 CRITICAL)
|
2026-06-04 10:06:30 +05:00 |
|
zone_regulation_refresh.py
|
feat(sf): прогрев zone_regulation_cache по терзонам ЕКБ (#1106)
|
2026-06-06 21:04:52 +00:00 |