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