7.1 KiB
Build 054 — Удаление legacy API get_klines и compatibility bridge
Статус
Завершён
Цель Build
Удалить больше не используемый compatibility API legacy OHLCV:
ExchangeService.get_klines()
а также внутренний bridge:
ExchangeService._kline_from_candle()
и связанный test-only файл:
tests/unit/integrations/exchange/test_service_klines.py
Build 054 не удаляет сами модели:
Kline
KlineBatch
Они сохраняются до отдельного Build после повторной глобальной проверки зависимостей.
Исходное состояние
По результатам Build 052 было подтверждено:
- production-вызовы
ExchangeService.get_klines()отсутствуют; get_klines()используется только тестами;_kline_from_candle()используется только внутриget_klines()и его тестов;KlineиKlineBatchостаются только внутри compatibility-слоя;- активный Market Analysis полностью использует
ExchangeService.get_candles().
После Build 053 также был удалён последний неиспользуемый production-файл:
src/trading/market_analysis/indicators_legacy.py
Таким образом compatibility API больше не обслуживал ни одного рабочего потребителя.
Объём изменений
В Build 054 изменён:
src/integrations/exchange/service.py
Удалён:
tests/unit/integrations/exchange/test_service_klines.py
Добавлена документация:
docs/migrations/build_054.md
Build 054 не изменяет:
src/integrations/exchange/models.py
src/market_data/acquisition/
src/trading/market_analysis/
Build также не удаляет:
Kline
KlineBatch
Изменения в ExchangeService
Из файла:
src/integrations/exchange/service.py
удалены импорты:
Kline
KlineBatch
Удалён публичный legacy-метод:
ExchangeService.get_klines()
Удалён внутренний compatibility helper:
ExchangeService._kline_from_candle()
Остальной код ExchangeService сохранён без изменений.
Удаление test-only compatibility coverage
Удалён файл:
tests/unit/integrations/exchange/test_service_klines.py
Он полностью покрывал уже удалённые компоненты:
get_klines()
_kline_from_candle()
Candle → Kline
KlineBatch
Новый канонический API продолжает покрываться файлом:
tests/unit/integrations/exchange/test_service_candles.py
Архитектурный результат
До Build 054:
ExchangeService.get_klines()
↓
ExchangeService.get_candles()
↓
Candle
↓
_kline_from_candle()
↓
Kline
↓
KlineBatch
После Build 054:
ExchangeService.get_candles()
↓
tuple[Candle, ...]
Compatibility bridge полностью удалён.
Полный regression suite
После удаления выполнена команда:
python -m pytest -q
Результат:
779 passed in 2.66s
Снижение количества тестов связано с удалением test-only файла:
tests/unit/integrations/exchange/test_service_klines.py
Регрессий не обнаружено.
Контроль отсутствия get_klines
Выполнена команда:
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
"\.get_klines(" \
src tests
Результат:
пусто
Контроль отсутствия _kline_from_candle
Выполнена команда:
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
"_kline_from_candle" \
src tests
Результат:
пусто
Контроль оставшихся Kline и KlineBatch
Выполнена команда:
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
-E "\bKlineBatch\b|\bKline\b" \
src tests
Результат:
src/integrations/exchange/models.py:93:class Kline:
src/integrations/exchange/models.py:110:class KlineBatch:
src/integrations/exchange/models.py:113: candles: list[Kline]
Следовательно, после Build 054 Kline и KlineBatch существуют только как неиспользуемые определения моделей.
Проверка форматирования
Выполнена команда:
git diff --check
Вывод отсутствует.
Whitespace-ошибок не обнаружено.
Фактический diff
Перед добавлением документации:
app/src/integrations/exchange/service.py | 69 ------------------
app/tests/unit/integrations/exchange/test_service_klines.py | 551 -----------------------------------------------------------------------------------------------------------------------------------------------
2 files changed, 620 deletions(-)
Что намеренно не выполнено
Build 054 намеренно не включает:
- удаление
Kline; - удаление
KlineBatch; - изменение
src/integrations/exchange/models.py; - изменение
ExchangeService.get_candles(); - изменение Market Data Acquisition;
- изменение Market Analysis;
- изменение торговой логики;
- изменение структуры каталогов.
Критерии завершения
Build 054 считается завершённым, поскольку:
- production-потребители
get_klines()отсутствовали до удаления; get_klines()удалён;_kline_from_candle()удалён;- test-only compatibility coverage удалено;
- полный suite проходит;
- grep по
get_klines()пустой; - grep по
_kline_from_candle()пустой; KlineиKlineBatchостались только вmodels.py;git diff --checkчистый.
Итог
Build 054 завершён успешно.
Текущее состояние:
get_klines — удалён
_kline_from_candle — удалён
test_service_klines.py — удалён
Full test suite — 779 passed
Kline/KlineBatch — только неиспользуемые определения в models.py
Следующий этап — удалить модели:
Kline
KlineBatch
из:
src/integrations/exchange/models.py
после повторной глобальной проверки.