# Build 053 — Удаление неиспользуемого indicators_legacy.py ## Статус **Завершён** --- ## Цель Build Удалить подтверждённый мёртвый legacy-файл: ```text src/trading/market_analysis/indicators_legacy.py ``` Файл больше не импортировался и не использовался ни production-кодом, ни тестами. Build 053 выполняет только удаление этого файла и не затрагивает compatibility API `ExchangeService.get_klines()` или модели `Kline` и `KlineBatch`. --- ## Исходное состояние По результатам Build 052 было подтверждено: ```text grep indicators_legacy → пусто ``` Файл: ```text src/trading/market_analysis/indicators_legacy.py ``` содержал legacy-реализацию ATR и зависел от: ```text src.integrations.exchange.models.Kline ``` При этом активный вычислительный код уже использовал: ```text src/trading/market_analysis/indicators/volatility.py ``` и каноническую модель: ```text src.market_data.acquisition.models.candle.Candle ``` --- ## Объём изменений В Build 053 удалён только: ```text src/trading/market_analysis/indicators_legacy.py ``` Добавлена документация: ```text docs/migrations/build_053.md ``` Build 053 не изменяет: ```text src/integrations/exchange/service.py src/integrations/exchange/models.py tests/unit/integrations/exchange/test_service_klines.py ``` Build также не удаляет: ```text ExchangeService.get_klines() ExchangeService._kline_from_candle() Kline KlineBatch ``` --- ## Предварительная проверка потребителей Перед удалением выполнена команда: ```bash grep -RIn \ --exclude-dir="__pycache__" \ --exclude="*.pyc" \ "indicators_legacy\|from src\.trading\.market_analysis\.indicators_legacy" \ src tests ``` Результат: ```text пусто ``` Это подтвердило отсутствие любых потребителей файла. --- ## Выполненное изменение Удалён файл: ```text src/trading/market_analysis/indicators_legacy.py ``` Объём удаления: ```text 67 строк ``` --- ## Полный regression suite После удаления выполнена команда: ```bash python -m pytest -q ``` Результат: ```text 805 passed in 2.70s ``` Регрессий не обнаружено. --- ## Контроль отсутствия indicators_legacy Выполнена команда: ```bash grep -RIn \ --exclude-dir="__pycache__" \ --exclude="*.pyc" \ "indicators_legacy" \ src tests ``` Результат: ```text пусто ``` --- ## Контроль оставшихся Kline и KlineBatch Выполнена команда: ```bash grep -RIn \ --exclude-dir="__pycache__" \ --exclude="*.pyc" \ -E "\bKlineBatch\b|\bKline\b" \ src tests ``` Результат показывает, что `Kline` и `KlineBatch` остались только в: ```text src/integrations/exchange/service.py src/integrations/exchange/models.py ``` Они используются исключительно для compatibility API: ```text ExchangeService.get_klines() ExchangeService._kline_from_candle() ``` --- ## Проверка форматирования Выполнена команда: ```bash git diff --check ``` Вывод отсутствует. Whitespace-ошибок не обнаружено. --- ## Архитектурный результат После Build 053 в `Market Analysis` больше не существует legacy-файлов, зависящих от `Kline`. Активный вычислительный слой использует только: ```text Candle ``` Оставшийся legacy OHLCV полностью локализован в compatibility-слое `ExchangeService`. --- ## Что намеренно не выполнено Build 053 намеренно не включает: - удаление `ExchangeService.get_klines()`; - удаление `ExchangeService._kline_from_candle()`; - удаление `tests/unit/integrations/exchange/test_service_klines.py`; - удаление `Kline`; - удаление `KlineBatch`; - изменение Market Analysis; - изменение Market Data Acquisition; - изменение торговой логики; - изменение архитектуры каталогов. --- ## Критерии завершения Build 053 считается завершённым, поскольку: - потребители `indicators_legacy.py` отсутствуют; - файл удалён; - полный test suite проходит; - grep по `indicators_legacy` пустой; - `Kline` и `KlineBatch` остались только в compatibility-слое; - `git diff --check` чистый. --- ## Итог **Build 053 завершён успешно.** Текущее состояние: ```text indicators_legacy.py — удалён Full test suite — 805 passed Legacy Kline/KlineBatch — только compatibility-слой ``` Следующий этап — удаление compatibility API: ```text ExchangeService.get_klines() ExchangeService._kline_from_candle() tests/unit/integrations/exchange/test_service_klines.py ``` без одновременного удаления самих моделей `Kline` и `KlineBatch`.