|
All checks were successful
CI / changes (pull_request) Successful in 9s
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 2m36s
oblast city-sweep (avito/cian/yandex) ставил ОДИН city на весь batch save_listings без проверки координат — Верхняя Пышма (~15км от ЕКБ, yandex radius_m=25000) получала 97% лотов, физически лежащих в ЕКБ (замер на проде). listings.city теперь читается asking_to_sold_ratio.py как ценовой предиктор — неверная метка искажала выкупные цены. save_listings(..., city_anchor=(lat, lon), city_radius_km=...) режет city per-lot, если у лота ЕСТЬ координаты и они дальше radius_km от anchor'а города-цели (haversine, без ST_DWithin round-trip). Лоты БЕЗ координат (авито — большинство, Серов 142/150) оставлены как есть: нечем сверить, а без city колонка теряет смысл именно для адресов без города в тексте, ради которых её и завели (#2594). Радиус per-city (pipeline.get_city_stamp_radius_km): дефолт 15км (Первоуральск/Каменск-Уральский/Н.Тагил/Серов — 41-307км от ЕКБ, guard никогда ложно не режет их лоты); Верхняя Пышма — 8км (сам город всего ~15.3км от ЕКБ, дефолтный порог не сработал бы). Guard активен только для oblast-городов (city_slug задан) — ЕКБ-развёртка (city_slug=None) не имеет более крупного соседа в регионе и не проверяется. |
||
|---|---|---|
| .. | ||
| scraper-kit | ||