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