Files
dzentra_bot/docs/migrations/build_052.md

7.0 KiB
Raw Blame History

Build 052 — Аудит оставшихся зависимостей legacy OHLCV

Статус

Completed


Цель Build

Провести полный аудит оставшихся компонентов legacy OHLCV после завершения миграции активной системы на каноническую модель Candle.

Данный Build не изменяет production-код.

Его задача — документально подтвердить:

  • отсутствие активных потребителей ExchangeService.get_klines();
  • отсутствие использования KlineBatch;
  • отсутствие использования Kline в рабочем коде;
  • определить оставшийся compatibility-слой;
  • определить объём безопасного удаления legacy-компонентов.

Исходное состояние

После завершения Build 051 система уже использует единый pipeline:

REST
    ↓
Parser
    ↓
Mapper
    ↓
Validation
    ↓
CandlesFeed
    ↓
Registry
    ↓
CandlesAcquisitionService
    ↓
ExchangeService.get_candles()
    ↓
Market Analysis

Все активные вычислительные компоненты используют:

src.market_data.acquisition.models.candle.Candle

Выполненный аудит

Были выполнены глобальные проверки по всему проекту.


Проверка production-вызовов get_klines()

Выполнена команда:

grep -RIn \
    "\.get_klines(" \
    src tests

Получен результат:

tests/unit/integrations/exchange/test_service_klines.py

В каталоге:

src/

вызовы полностью отсутствуют.


Вывод

Production-код больше не использует:

ExchangeService.get_klines()

Проверка Kline и KlineBatch

Выполнена команда:

grep -RIn \
    "\bKline\b|\bKlineBatch\b" \
    src tests

Получены результаты:

integrations/exchange/models.py

class Kline
class KlineBatch

Это определения моделей.


integrations/exchange/service.py

Используются исключительно внутри compatibility API:

get_klines()
_kline_from_candle()

indicators_legacy.py

Файл содержит:

list[Kline]

Вывод

Активных production-потребителей моделей:

Kline
KlineBatch

не обнаружено.


Проверка compatibility bridge

Выполнена команда:

grep \
    "_kline_from_candle|get_klines"

Получено:

ExchangeService.get_klines()
ExchangeService._kline_from_candle()

Кроме тестов больше никто данные функции не использует.


Вывод

Compatibility bridge полностью локализован в одном месте:

src/integrations/exchange/service.py

Проверка импортов legacy моделей

Выполнена команда:

grep \
from src.integrations.exchange.models

Получены импорты различных моделей.

Из legacy OHLCV обнаружен только:

src/trading/market_analysis/indicators_legacy.py

Вывод

Рабочий код не импортирует:

Kline
KlineBatch

Проверка indicators_legacy.py

Выполнена команда:

grep indicators_legacy

Результат:

пусто

Вывод

Файл:

src/trading/market_analysis/indicators_legacy.py

не используется.

Он представляет собой полностью мёртвый legacy-код.


Проверка batch.candles

Выполнена команда:

grep \
batch.candles

Результат:

пусто

Также отсутствуют:

batch.symbol
batch.interval
batch.source

Вывод

Legacy контейнер:

KlineBatch

больше нигде не используется.


Проверка канонической модели Candle

Выполнена команда:

grep \
models.candle import Candle

Получены результаты:

Market Data Acquisition
ExchangeService
MarketAnalysis
HTF
Volatility
Structure
Quality
Unit tests

Вывод

Каноническая модель:

Candle

используется во всей активной архитектуре.


Проверка полного regression

Выполнена команда:

python -m pytest -q

Результат:

805 passed

Проверка Git

git status

Результат:

working tree clean

Классификация оставшихся legacy-компонентов

Production

нет

Compatibility

ExchangeService.get_klines()

ExchangeService._kline_from_candle()

Kline

KlineBatch

Test only

tests/unit/integrations/exchange/test_service_klines.py

Dead code

src/trading/market_analysis/indicators_legacy.py

Архитектурное состояние

Активная система полностью использует:

ExchangeService.get_candles()

↓

tuple[Candle, ...]

↓

Market Analysis

Legacy OHLCV используется исключительно как compatibility-слой.


План дальнейшей очистки

Build 053

Удаление:

src/trading/market_analysis/indicators_legacy.py

Build 054

Удаление compatibility API:

ExchangeService.get_klines()

ExchangeService._kline_from_candle()

tests/unit/integrations/exchange/test_service_klines.py

Build 055

Удаление моделей:

Kline

KlineBatch

из:

src/integrations/exchange/models.py

Build 056

Финальная архитектурная проверка OHLCV.

Проверяется отсутствие:

get_klines

Kline

KlineBatch

_kline_from_candle

indicators_legacy

После успешной проверки миграция OHLCV считается полностью завершённой.


Итог

Build 052 подтвердил:

  • активных production-зависимостей от legacy OHLCV больше нет;
  • compatibility-слой полностью локализован;
  • dead code выделен отдельно;
  • проект готов к поэтапному удалению compatibility API без риска нарушения работы системы.