scraper-kit F: перенос pipeline (scrape_pipeline) в пакет #2135

Closed
opened 2026-07-02 13:40:43 +00:00 by lekss361 · 2 comments
Owner

Часть Epic #2126, шаг F. Depends: шаг D (providers-move). Активировать после merge D.

Goal

Переместить scrape_pipeline.py (3294 строки) в scraper_kit.orchestration.pipeline. Enrichment-джобы (house_imv_backfill, house_dedup_merge, yandex_address_backfill) звать через EnrichmentJobs-реестр (шаг B) — сами джобы остаются в продукте. Прокси-ротация/ban-state-machine (3 копии внутри pipeline) — свести при переносе.

Files

  • packages/scraper-kit/src/scraper_kit/orchestration/pipeline.py
  • удаление app/services/scrape_pipeline.py, продуктовые джобы остаются

Acceptance

  • import scraper_kit.orchestration.pipeline без app.*
  • pipeline-тесты зелёные
  • ban/rotation-логика в одном месте (grep)

Risk

Большой файл, nonlocal-замыкания в run_avito_city_sweep (~640 строк). Post-deploy smoke по каждому source обязателен.

Agent: backend-engineer

Часть Epic #2126, шаг F. ⛔ Depends: шаг D (providers-move). Активировать после merge D. ## Goal Переместить `scrape_pipeline.py` (3294 строки) в `scraper_kit.orchestration.pipeline`. Enrichment-джобы (`house_imv_backfill`, `house_dedup_merge`, `yandex_address_backfill`) звать через `EnrichmentJobs`-реестр (шаг B) — сами джобы остаются в продукте. Прокси-ротация/ban-state-machine (3 копии внутри pipeline) — свести при переносе. ## Files - `packages/scraper-kit/src/scraper_kit/orchestration/pipeline.py` - удаление `app/services/scrape_pipeline.py`, продуктовые джобы остаются ## Acceptance - `import scraper_kit.orchestration.pipeline` без `app.*` - pipeline-тесты зелёные - ban/rotation-логика в одном месте (grep) ## Risk Большой файл, nonlocal-замыкания в `run_avito_city_sweep` (~640 строк). Post-deploy smoke по каждому source обязателен. **Agent:** backend-engineer
lekss361 added the
priority/p2
scope/backend
scrapers
tech-debt
tradein
labels 2026-07-02 13:41:56 +00:00
lekss361 added the
status/ready
status/wip
labels 2026-07-02 16:44:37 +00:00
Author
Owner

Частично смержено (PR #2171) — avito-срез: run_avito_city_sweep + runs.py + инфра (contracts +9 полей/EnrichmentJobs, adapter синхронизирован, ban-rotation consolidation), golden-parity 6 сценариев. Боевое не тронуто. Остаток (7 sweep: yandex/cian/domclick city_sweep + 3 full_load + avito_newbuilding) — F2 (следующий срез, тот же механический паттерн). Issue закрою после F2.

Частично смержено (PR #2171) — avito-срез: `run_avito_city_sweep` + `runs.py` + инфра (contracts +9 полей/EnrichmentJobs, adapter синхронизирован, ban-rotation consolidation), golden-parity 6 сценариев. Боевое не тронуто. Остаток (7 sweep: yandex/cian/domclick city_sweep + 3 full_load + avito_newbuilding) — F2 (следующий срез, тот же механический паттерн). Issue закрою после F2.
Author
Owner

Завершено (F1 PR #2171 + F2 PR #2174). Вся pipeline-оркестрация (8 sweep-функций) в scraper_kit/orchestration/pipeline.py + runs.py, развязана через Protocol-инжект, ban-rotation consolidation. Golden-parity 14 тестов (6+8). Contracts расширен (+9 config-полей +4 EnrichmentJobs-метода), adapter синхронизирован (guard зелёный). Боевой scrape_pipeline.py не тронут — инертно.

Завершено (F1 PR #2171 + F2 PR #2174). Вся pipeline-оркестрация (8 sweep-функций) в `scraper_kit/orchestration/pipeline.py` + `runs.py`, развязана через Protocol-инжект, ban-rotation consolidation. Golden-parity 14 тестов (6+8). Contracts расширен (+9 config-полей +4 EnrichmentJobs-метода), adapter синхронизирован (guard зелёный). Боевой `scrape_pipeline.py` не тронут — инертно.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2135
No description provided.