refactor(tradein): normalize repair_state raw→enum at ingest (#621) #629

Merged
Light1YT merged 2 commits from refactor/621-normalize-repair-state into main 2026-05-28 15:18:12 +00:00
Owner

Summary

  • Centralized repair_state_normalizer.py (10 raw values → 4 enum buckets: needs_repair/standard/good/excellent), mapping derived from estimator._IMV_REPAIR_MAP.
  • Normalize at ingest in avito_detail, cian, cian_detail.
  • Migration 073 backfills existing rows (idempotent, BEGIN/COMMIT).
  • 25 tests (15 parametrized).
  • Prereq for data-derived repair coefficients (#7).

Test plan

  • 25 unit tests pass
  • migration 073 applies; SELECT repair_state, count(*) FROM listings GROUP BY 1

Closes #621

## Summary - Centralized repair_state_normalizer.py (10 raw values → 4 enum buckets: needs_repair/standard/good/excellent), mapping derived from estimator._IMV_REPAIR_MAP. - Normalize at ingest in avito_detail, cian, cian_detail. - Migration 073 backfills existing rows (idempotent, BEGIN/COMMIT). - 25 tests (15 parametrized). - Prereq for data-derived repair coefficients (#7). ## Test plan - [x] 25 unit tests pass - [ ] migration 073 applies; SELECT repair_state, count(*) FROM listings GROUP BY 1 Closes #621
Light1YT added 2 commits 2026-05-28 15:17:39 +00:00
listings.repair_state хранил сырые значения парсеров (cosmetic/euro/
designer/required/without/…), не совместимые с ожидаемым estimator-ом
enum needs_repair/standard/good/excellent. Покрытие ~2%, но значения
не совпадали с enum — repair_coef всегда возвращал 1.0 (no-op).

Решение: централизованный helper repair_state_normalizer.py со всеми
10 известными raw-значениями → 4 enum-buckets. Все ingest-пути
нормализуют на входе; миграция 073 бэкфилит существующие строки.
Light1YT merged commit d842811390 into main 2026-05-28 15:18:12 +00:00
Light1YT deleted branch refactor/621-normalize-repair-state 2026-05-28 15:18:12 +00:00
Sign in to join this conversation.
No reviewers
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#629
No description provided.