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#2419
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "chore/tradein-finalE-delete-scrapers-catalog"
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?
Summary
Umbrella #2397 final E — завершает декоммишн. Удаляет весь legacy каталог
app/services/scrapers/(16 файлов, ~7100 строк) + осиротевшие dev-скрипты. Разблокировано Part D (D1-D5 merged, #2410/#2411/#2415/#2414/#2412) — на текущем main 0 external runtime-импортёров любогоapp.services.scrapers.*вapp/(верифицировано grep'ом перед стартом). Прод 100% наscraper_kit.providers.*. Precedent: #2394, #2405 (E1), #2407 (E2).Diff: +221 −19861 (81 файл). Base merge-base =
8030f8ec(D5); свежий main #2417 (a0c609ca) не пересекается по файлам.Удалено
scrapers/{__init__,avito,avito_detail,avito_exceptions,avito_shared,base,browser_fetcher,cian_newbuilding,cian_state_parser,cian_valuation,house_type_normalizer,price_brackets,repair_state_normalizer,snapshot_writer,yandex_helpers,yandex_newbuilding}.py.scripts/{backfill_cian_zhk_url,backfill-house-imv,probe-imv-by-address,sweep-yandex-valuation-ekb,avito-playwright-sweep,probe-avito-1anchor,probe-parser-region-filter}.py.Тест-хирургия (grep-driven, паттерн E1/E2)
scraper_kit.*:test_781_quality_gate.py(P0 регрессии #755/#753/#773/#754/#740),test_avito_newbuilding_sweep.py,test_pipeline_browser_routing.py,test_scraper_proxy.py,test_extval_house_id_write_path.py,test_snapshot_writer.py,test_estimator_cian_integration.py,test_geo_precision.py,test_yandex_price_history.py,test_yandex_scrapers_delay_wiring.py,test_avito_unix_date_tz_consistency.py,test_cian_resolve_zhk_url.py,test_scraped_at_bump_2206.py.test_scraper_kit_{avito,base,bisection,cian,yandex}_golden_parity.py,test_scraper_kit_pricehistory_session_parity.py,tests/scrapers/{test_avito_detail_kit_parity,test_admin_domclick_ingest_kit_parity}.py, + casetest_scraper_kit_group_c_backfill_kit_parity.py::test_avito_fetch_detail_via_browser_fetcher_parity.Non-trivial fixes при retarget (для review)
AvitoScraper.__init__требует mandatoryconfig→RealScraperConfig()на каждом retargeted call-site.save_listingsтребует инжектmatcher: HouseMatcher+region_code(нет прямого патчаmatch_or_create_house) →MagicMock()matcher (паттернtest_scraped_at_bump_2206._kit_matcher).cian_newbuildingAsyncSessionтеперь TYPE_CHECKING-only →patch.object(...AsyncSession)заменён наhasattr-негатив.avito/detail._build_detail_sessionделегирует в_base→ патч-таргеты исправлены (один неверный таргет молча ушёл бы в реальную сеть — пойман до push).Test plan
import app.main; import app.scheduler_main→ OK.ruff checkclean на всех тронутых.grep -rln "app.services.scrapers" app/ scripts/→ пусто. Вpackages/только strangler-mapping докстринги (не импорты).Follow-up
Golden-parity потеряли legacy-оракул → отдельный ticket (kit standalone-покрытие, мирроря #2408): avito/base/bisection/cian/yandex golden-parity + pricehistory_session + avito_detail_kit_parity + admin_domclick_ingest_kit_parity + group_c avito-case.
Refs #2397, #2277