build 052: audit remaining legacy OHLCV dependencies
This commit is contained in:
482
docs/migrations/build_052.md
Normal file
482
docs/migrations/build_052.md
Normal file
@@ -0,0 +1,482 @@
|
||||
# Build 052 — Аудит оставшихся зависимостей legacy OHLCV
|
||||
|
||||
## Статус
|
||||
|
||||
**Completed**
|
||||
|
||||
---
|
||||
|
||||
## Цель Build
|
||||
|
||||
Провести полный аудит оставшихся компонентов legacy OHLCV после завершения миграции активной системы на каноническую модель `Candle`.
|
||||
|
||||
Данный Build **не изменяет production-код**.
|
||||
|
||||
Его задача — документально подтвердить:
|
||||
|
||||
- отсутствие активных потребителей `ExchangeService.get_klines()`;
|
||||
- отсутствие использования `KlineBatch`;
|
||||
- отсутствие использования `Kline` в рабочем коде;
|
||||
- определить оставшийся compatibility-слой;
|
||||
- определить объём безопасного удаления legacy-компонентов.
|
||||
|
||||
---
|
||||
|
||||
# Исходное состояние
|
||||
|
||||
После завершения Build 051 система уже использует единый pipeline:
|
||||
|
||||
```text
|
||||
REST
|
||||
↓
|
||||
Parser
|
||||
↓
|
||||
Mapper
|
||||
↓
|
||||
Validation
|
||||
↓
|
||||
CandlesFeed
|
||||
↓
|
||||
Registry
|
||||
↓
|
||||
CandlesAcquisitionService
|
||||
↓
|
||||
ExchangeService.get_candles()
|
||||
↓
|
||||
Market Analysis
|
||||
```
|
||||
|
||||
Все активные вычислительные компоненты используют:
|
||||
|
||||
```text
|
||||
src.market_data.acquisition.models.candle.Candle
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Выполненный аудит
|
||||
|
||||
Были выполнены глобальные проверки по всему проекту.
|
||||
|
||||
---
|
||||
|
||||
# Проверка production-вызовов get_klines()
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep -RIn \
|
||||
"\.get_klines(" \
|
||||
src tests
|
||||
```
|
||||
|
||||
Получен результат:
|
||||
|
||||
```text
|
||||
tests/unit/integrations/exchange/test_service_klines.py
|
||||
```
|
||||
|
||||
В каталоге:
|
||||
|
||||
```text
|
||||
src/
|
||||
```
|
||||
|
||||
вызовы полностью отсутствуют.
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Production-код больше не использует:
|
||||
|
||||
```text
|
||||
ExchangeService.get_klines()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Проверка Kline и KlineBatch
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep -RIn \
|
||||
"\bKline\b|\bKlineBatch\b" \
|
||||
src tests
|
||||
```
|
||||
|
||||
Получены результаты:
|
||||
|
||||
### integrations/exchange/models.py
|
||||
|
||||
```text
|
||||
class Kline
|
||||
class KlineBatch
|
||||
```
|
||||
|
||||
Это определения моделей.
|
||||
|
||||
---
|
||||
|
||||
### integrations/exchange/service.py
|
||||
|
||||
Используются исключительно внутри compatibility API:
|
||||
|
||||
```text
|
||||
get_klines()
|
||||
_kline_from_candle()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### indicators_legacy.py
|
||||
|
||||
Файл содержит:
|
||||
|
||||
```text
|
||||
list[Kline]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Активных production-потребителей моделей:
|
||||
|
||||
```text
|
||||
Kline
|
||||
KlineBatch
|
||||
```
|
||||
|
||||
не обнаружено.
|
||||
|
||||
---
|
||||
|
||||
# Проверка compatibility bridge
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep \
|
||||
"_kline_from_candle|get_klines"
|
||||
```
|
||||
|
||||
Получено:
|
||||
|
||||
```text
|
||||
ExchangeService.get_klines()
|
||||
ExchangeService._kline_from_candle()
|
||||
```
|
||||
|
||||
Кроме тестов больше никто данные функции не использует.
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Compatibility bridge полностью локализован в одном месте:
|
||||
|
||||
```text
|
||||
src/integrations/exchange/service.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Проверка импортов legacy моделей
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep \
|
||||
from src.integrations.exchange.models
|
||||
```
|
||||
|
||||
Получены импорты различных моделей.
|
||||
|
||||
Из legacy OHLCV обнаружен только:
|
||||
|
||||
```text
|
||||
src/trading/market_analysis/indicators_legacy.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Рабочий код не импортирует:
|
||||
|
||||
```text
|
||||
Kline
|
||||
KlineBatch
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Проверка indicators_legacy.py
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep indicators_legacy
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
пусто
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Файл:
|
||||
|
||||
```text
|
||||
src/trading/market_analysis/indicators_legacy.py
|
||||
```
|
||||
|
||||
не используется.
|
||||
|
||||
Он представляет собой полностью мёртвый legacy-код.
|
||||
|
||||
---
|
||||
|
||||
# Проверка batch.candles
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep \
|
||||
batch.candles
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
пусто
|
||||
```
|
||||
|
||||
Также отсутствуют:
|
||||
|
||||
```text
|
||||
batch.symbol
|
||||
batch.interval
|
||||
batch.source
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Legacy контейнер:
|
||||
|
||||
```text
|
||||
KlineBatch
|
||||
```
|
||||
|
||||
больше нигде не используется.
|
||||
|
||||
---
|
||||
|
||||
# Проверка канонической модели Candle
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
grep \
|
||||
models.candle import Candle
|
||||
```
|
||||
|
||||
Получены результаты:
|
||||
|
||||
```text
|
||||
Market Data Acquisition
|
||||
ExchangeService
|
||||
MarketAnalysis
|
||||
HTF
|
||||
Volatility
|
||||
Structure
|
||||
Quality
|
||||
Unit tests
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Вывод
|
||||
|
||||
Каноническая модель:
|
||||
|
||||
```text
|
||||
Candle
|
||||
```
|
||||
|
||||
используется во всей активной архитектуре.
|
||||
|
||||
---
|
||||
|
||||
# Проверка полного regression
|
||||
|
||||
Выполнена команда:
|
||||
|
||||
```bash
|
||||
python -m pytest -q
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
805 passed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Проверка Git
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
working tree clean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Классификация оставшихся legacy-компонентов
|
||||
|
||||
## Production
|
||||
|
||||
```text
|
||||
нет
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Compatibility
|
||||
|
||||
```text
|
||||
ExchangeService.get_klines()
|
||||
|
||||
ExchangeService._kline_from_candle()
|
||||
|
||||
Kline
|
||||
|
||||
KlineBatch
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test only
|
||||
|
||||
```text
|
||||
tests/unit/integrations/exchange/test_service_klines.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dead code
|
||||
|
||||
```text
|
||||
src/trading/market_analysis/indicators_legacy.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Архитектурное состояние
|
||||
|
||||
Активная система полностью использует:
|
||||
|
||||
```text
|
||||
ExchangeService.get_candles()
|
||||
|
||||
↓
|
||||
|
||||
tuple[Candle, ...]
|
||||
|
||||
↓
|
||||
|
||||
Market Analysis
|
||||
```
|
||||
|
||||
Legacy OHLCV используется исключительно как compatibility-слой.
|
||||
|
||||
---
|
||||
|
||||
# План дальнейшей очистки
|
||||
|
||||
## Build 053
|
||||
|
||||
Удаление:
|
||||
|
||||
```text
|
||||
src/trading/market_analysis/indicators_legacy.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build 054
|
||||
|
||||
Удаление compatibility API:
|
||||
|
||||
```text
|
||||
ExchangeService.get_klines()
|
||||
|
||||
ExchangeService._kline_from_candle()
|
||||
|
||||
tests/unit/integrations/exchange/test_service_klines.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build 055
|
||||
|
||||
Удаление моделей:
|
||||
|
||||
```text
|
||||
Kline
|
||||
|
||||
KlineBatch
|
||||
```
|
||||
|
||||
из:
|
||||
|
||||
```text
|
||||
src/integrations/exchange/models.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build 056
|
||||
|
||||
Финальная архитектурная проверка OHLCV.
|
||||
|
||||
Проверяется отсутствие:
|
||||
|
||||
```text
|
||||
get_klines
|
||||
|
||||
Kline
|
||||
|
||||
KlineBatch
|
||||
|
||||
_kline_from_candle
|
||||
|
||||
indicators_legacy
|
||||
```
|
||||
|
||||
После успешной проверки миграция OHLCV считается полностью завершённой.
|
||||
|
||||
---
|
||||
|
||||
# Итог
|
||||
|
||||
Build 052 подтвердил:
|
||||
|
||||
- активных production-зависимостей от legacy OHLCV больше нет;
|
||||
- compatibility-слой полностью локализован;
|
||||
- dead code выделен отдельно;
|
||||
- проект готов к поэтапному удалению compatibility API без риска нарушения работы системы.
|
||||
Reference in New Issue
Block a user