gendesign/tradein-mvp/backend/tests/scripts
Light1YT 1c6d59e3ee feat(tradein): backfill deals.lat/lon из house street-центроидов (#569)
deals (49,791 ДКП-сделок Росреестра) на 100% NULL geom → estimator
_fetch_deals (ST_DWithin) никогда не матчит, actual_deals всегда пустой
(корень #571 «deals disabled»). Добавляет scripts/geocode_deals_from_houses.py:
строит per-street центроиды из ~8.6k геокодированных houses и проставляет
lat/lon каждой сделке по нормализованному ключу улицы (geom авто-заполняется
триггером deals_set_geom_trg). Zero внешних geocoder-вызовов; --dry-run
проецирует coverage и топ-10 unmatched улиц.

Pre-push review поймал data-corruption баг: _APT_SUFFIX_RE без правого якоря
жрал реальные улицы на кв/корп/оф/пом/стр («Строителей»→'ул.' garbage key →
неверный центроид). Fix: требовать цифру после суффикс-токена + регресс-тест.

Tests: 26 (street-key нормализация вкл. regression, centroid AVG, matched UPDATE,
no_street_match, --dry-run no-op, SAVEPOINT isolation, geom-not-manual). Ruff clean.
2026-05-28 14:25:26 +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