Files
dzentra_bot/docs/migrations/build_053.md

271 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.