chore(tradein): remove dead mock-fallback code from trade_in.py #521
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#521
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "chore/tradein-cleanup-dead-mock-code"
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?
Context
After Wave 1-4 (PRs #502 #504 #505 #508 #513 #507 #517), the real estimator in
services/estimator.pyis the only path used by/estimate. The legacy mock fallback was kept during early development and is now unreachable.Removed
_EKB_STREETS,_PRICE_BANDSconstants_floor_factor,_repair_factor,_confidence,_gen_analogs,_mock_estimatehelpers_estimate_legacy_mockfunctionjson,random,timedelta,uuid4(viaruff --select F401 --fix)Safety
Pre-flight grep confirmed zero external references to any of the removed symbols (only mention outside file is a single comment in
estimator.py). All pre-commit hooks ✅, ruff clean.Stats
tradein-mvp/backend/app/api/v1/trade_in.pyRoadmap
PR 8 of 8 — closes
[[Decision_TradeIn_DataQuality_8PR_Roadmap]]. Full chain:Deep Code Review — PR #521 — APPROVE
Summary
tradein-mvp/backend/app/api/v1/trade_in.py)d97fbcd55b32b9293c2e2445e9ac418e94f60e6f[[Decision_TradeIn_DataQuality_8PR_Roadmap]]— мёртвый mock-fallback изtrade_in.pyCross-file impact (dead-code claim verified)
Просканированы все 97
.pyфайлов вtradein-mvp/backend/на head SHA для каждого удалённого символа:_mock_estimate,_estimate_legacy_mock,_EKB_STREETS,_PRICE_BANDS,_floor_factor,_repair_factor,_gen_analogs,_confidence→ 0 ссылок во всех файлах кроме самогоtrade_in.py.tradein-mvp/backend/tests/**не импортируют ни одного удалённого символа.POST /estimateуже маршрутизирован наapp.services.estimator.estimate_quality(payload, db)(line 46-47); сигнатура совпадает:async def estimate_quality(payload: TradeInEstimateInput, db: Session) -> AggregatedEstimate.Env / config cleanup
Pre-merge сканирование на
USE_MOCK | TRADE_IN_MOCK | ESTIMATE_MOCK | MOCK_ESTIMATE | TRADEIN_FALLBACK | if.*mockво всёмtradein-mvp/backend/→ 0 совпадений. Нет env-var toggle, который полагался бы на mock-путь. Никакой dev/test env не мог незаметно ходить в_estimate_legacy_mock— он не вызывался из роутера (даже в комментарии было# OLD MOCK PATH — оставлен как fallback для отладки; не вызывается из router.).Vault cross-check
decisions/Decision_TradeIn_DataQuality_8PR_Roadmap.mdявно фиксирует PR 8: удалить_estimate_legacy_mock(224-291),_PRICE_BANDS/_EKB_STREETS/_mock_estimate/_gen_analogs/_floor_factor/_repair_factor/_confidence(36-204), почистить импорты. PR делает ровно это.audits/TradeIn_MVP_CodeReview_May23.mdH-9 (Dead code) закрывается этим PR.Findings
Low (non-blocking — docs drift)
Доки всё ещё ссылаются на удалённую функцию
_mock_estimate(). Не блокер, но для чистоты можно подмести в follow-up PR:tradein-mvp/backend/app/services/estimator.py:3— docstring "Заменяет старый_mock_estimate()из api/v1/trade_in.py." Можно перефразировать в "Реальная оценка квартиры (заменила раннюю mock-реализацию)."tradein-mvp/README.md:136,155,157— секция "Что внутри_mock_estimate()" и "TODO TI-1b". Stale.tradein-mvp/docs/ROADMAP.md:110,328— "3.1 Замена_mock_estimate()" и "/estimate (mock)" — done, можно отметить.(Аудит уже зафиксировал Phase 4 — decommission всей директории
tradein-mvp/, так что доки скоро уйдут целиком.)Positive
--select F401 --fixдляjson/random/timedelta/uuid4— соответствует backend rule._confidence*/_floor_*/_repair_*в codebase (все были module-private;parcels.pyиспользует совсем другие функции).Complexity / blast radius
Recommended next steps
_mock_estimate()ссылки вtradein-mvp/README.md/docs/ROADMAP.md/services/estimator.pydocstring (одна PR на 3-4 строки).