32 lines
1.5 KiB
Python
32 lines
1.5 KiB
Python
"""Общие seed price-brackets для exhaustive-скрапперов (avito/cian/yandex).
|
||
|
||
EKB-настроенные (анализ прод-распределения вторички ЕКБ). Структура city-dict —
|
||
готова под per-city (multi-city: Москва пик 15-40М, Тюмень — иные; multi-city —
|
||
отдельная фича, см. vault decision). Сейчас единственный город — ekaterinburg.
|
||
"""
|
||
|
||
# (lo, hi) рубли; hi=None — открытый верхний брекет (без потолка). Закрытые
|
||
# брекеты соприкасаются — вызывающий применяет hi-1 (эксклюзивный верх), дедуп
|
||
# по source_id страхует на стыках.
|
||
_EKB_SECONDARY: list[tuple[int, int | None]] = [
|
||
(0, 4_000_000),
|
||
(4_000_000, 5_000_000),
|
||
(5_000_000, 6_000_000),
|
||
(6_000_000, 7_000_000),
|
||
(7_000_000, 8_000_000),
|
||
(8_000_000, 10_000_000),
|
||
(10_000_000, 13_000_000),
|
||
(13_000_000, 17_000_000),
|
||
(17_000_000, 25_000_000),
|
||
(25_000_000, 250_000_000),
|
||
(250_000_000, None), # 250М+ открытый catch-all (без потолка)
|
||
]
|
||
|
||
CITY_PRICE_SEED_BRACKETS: dict[str, list[tuple[int, int | None]]] = {
|
||
"ekaterinburg": _EKB_SECONDARY,
|
||
}
|
||
|
||
|
||
def get_price_seed_brackets(city: str = "ekaterinburg") -> list[tuple[int, int | None]]:
|
||
"""Seed price-brackets для города (fallback на ekaterinburg)."""
|
||
return CITY_PRICE_SEED_BRACKETS.get(city, _EKB_SECONDARY)
|