refactor(scraper-kit): unify price bisection engine across providers + dedup (#2134) #2168
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2168
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/scraper-kit-consolidate-bisection"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Закрывает #2134 (Epic #2126, шаг E). Консолидация внутри пакета, боевые
app/services/scrapers/*НЕ тронуты, инертно.Главное: единый движок бисекции
scraper_kit/pricing/bisection.py(walk_price_range+BisectionConfig+ProbeFailPolicy) — 4 независимые копии рекурсии комнатность×цена заменены вызовом общего движка (провайдер даётprobe/on_leaf/on_degraded+ конфиг). Арифметика деления в одном месте (grepmid = (в providers пуст).Различия 4 реализаций закодированы в конфиг (ничего не потеряно)
(yandex
min_bracket= 500k — старый_YANDEX_MIN_BRACKET50k был мёртвым дублем)Заодно
house_typeдедуп: yandex/shared.py → re-export из core (карта сверена идентична)BrowserFetcherбезendpoint— пофикшен вavito/serp.py,cian/serp.py,yandex/serp.py(все class-instance)Golden-parity ✅ (8 тестов, все 4 провайдера)
Старый боевой
app.services.scrapers.<provider>≡ новый движок на детерминированном оракуле счётчиков — точная последовательность probe/leaf/split/zero/degrade событий. 53 passed total.Follow-up (не в этом PR)
BrowserFetcherendpoint вcian/newbuilding.py,yandex/newbuilding.py— те же латентные баги, требуют протаскивания endpoint через сигнатурыVerify
from appв kit пусто; ruff/mypy чисто