gendesign/tradein-mvp/backend/tests/scripts
Light1YT 783a85ad2b feat(tradein): geocode leftover deals via Nominatim fallback (#569 Step 3)
Добавляет scripts/geocode_deals_nominatim.py для ~14% сделок всё ещё
lat IS NULL после house-centroid прохода (Step 2) — улицы без геокодированных
домов, которые centroid-join не покрывает. Переиспользует geocoder.geocode
(cache → Cadastral FDW → Yandex → Nominatim), дедупит по адресу (distinct
улицы определяют число вызовов, не 7k строк), и стампит geocode_tried_at на
КАЖДОЙ попытке (успех И чистый промах) чтобы un-geocodable строки не крутились
по 1 req/s. Resume: lat IS NULL + 30-day staleness, per-address SAVEPOINT,
--limit/--dry-run/--batch/--stale-days.

Pre-push review (code-reviewer):  APPROVE, no critical — проверены SQL-safety,
no-infinite-reloop (mark-tried на miss, no-stamp на raised exc), window-cap,
geom-not-manual, dedup, async. Tests: 17 passed. Ruff clean.
2026-05-28 14:59:24 +05:00
..
__init__.py feat(tradein): backfill 18k existing listings (PR J) (#596) 2026-05-27 10:29:40 +00:00
test_backfill_houses_dadata.py fix(tradein): DaData backfill — Екатеринбург city context (#606 hotfix) 2026-05-27 19:48:37 +05:00
test_backfill_listing_sources.py feat(tradein): backfill 18k existing listings (PR J) (#596) 2026-05-27 10:29:40 +00:00
test_geocode_deals_from_houses.py feat(tradein): backfill deals.lat/lon из house street-центроидов (#569) 2026-05-28 14:25:26 +05:00
test_geocode_deals_nominatim.py feat(tradein): geocode leftover deals via Nominatim fallback (#569 Step 3) 2026-05-28 14:59:24 +05:00