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