Files
dzentra_bot/docs/migrations/build_053.md

5.6 KiB
Raw Permalink Blame History

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.