build 053: remove unused legacy market indicators
This commit is contained in:
271
docs/migrations/build_053.md
Normal file
271
docs/migrations/build_053.md
Normal file
@@ -0,0 +1,271 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user