Files
dzentra_bot/docs/migrations/build_052.md

482 lines
7.0 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 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 без риска нарушения работы системы.