6.4 KiB
Build 055 — Удаление legacy-моделей Kline и KlineBatch
Статус
Завершён
Цель Build
Удалить больше не используемые legacy-модели OHLCV:
Kline
KlineBatch
из файла:
src/integrations/exchange/models.py
Build 055 завершает удаление legacy-моделей свечей после предварительного удаления всех их production-потребителей, compatibility API и test-only зависимостей.
Исходное состояние
До Build 055 было подтверждено:
ExchangeService.get_klines()удалён в Build 054;ExchangeService._kline_from_candle()удалён;tests/unit/integrations/exchange/test_service_klines.pyудалён;src/trading/market_analysis/indicators_legacy.pyудалён в Build 053;- глобальный grep показывал
KlineиKlineBatchтолько как определения вsrc/integrations/exchange/models.py; - активный production-код полностью использует каноническую модель
Candle.
Объём изменений
В Build 055 изменён только:
src/integrations/exchange/models.py
Удалены определения:
Kline
KlineBatch
Добавлена документация:
docs/migrations/build_055.md
Build 055 не изменяет:
src/integrations/exchange/service.py
src/market_data/acquisition/
src/trading/market_analysis/
tests/
Предварительная проверка зависимостей
Перед удалением выполнена команда:
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]
Это подтвердило, что модели больше нигде не используются.
Удалённый блок
Из src/integrations/exchange/models.py удалены:
# Одна свеча OHLCV.
@dataclass(slots=True)
class Kline:
symbol: str
interval: str
open_time: int
open_price: float
high_price: float
low_price: float
close_price: float
volume: float
source: str
# Пакет свечей.
@dataclass(slots=True)
class KlineBatch:
symbol: str
interval: str
candles: list[Kline]
source: str
Остальные модели файла сохранены без изменений.
Проверка компиляции
Выполнена команда:
python -m compileall \
src/integrations/exchange/models.py
Результат:
успешно
Полный regression suite
Выполнена команда:
python -m pytest -q
Результат:
779 passed in 2.46s
Регрессий не обнаружено.
Контроль отсутствия Kline и KlineBatch
Выполнена команда:
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
-E "\bKlineBatch\b|\bKline\b" \
src tests
Результат:
пусто
Это подтверждает полное удаление legacy-моделей OHLCV из исходного кода и тестов.
Контроль отсутствия legacy compatibility-компонентов
Выполнена команда:
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
"get_klines\|_kline_from_candle\|indicators_legacy" \
src tests
Результат:
пусто
Проверка форматирования
Выполнена команда:
git diff --check
Вывод отсутствует.
Whitespace-ошибок не обнаружено.
Фактический diff
Перед добавлением документации:
app/src/integrations/exchange/models.py | 26 --------------------------
1 file changed, 26 deletions(-)
Архитектурный результат
После Build 055 legacy OHLCV полностью удалён из моделей Exchange Integration.
Активная архитектура использует только каноническую модель:
src.market_data.acquisition.models.candle.Candle
Текущий путь:
Dzengi REST API
↓
CandlesDocumentSource
↓
schema validation
↓
parser
↓
value validation
↓
mapper
↓
Candle
↓
CandlesFeed
↓
CandlesFeedRegistry
↓
CandlesAcquisitionService
↓
ExchangeService.get_candles()
↓
Market Analysis
Что намеренно не выполнено
Build 055 намеренно не включает:
- изменение канонической модели
Candle; - изменение
ExchangeService.get_candles(); - изменение Market Data Acquisition;
- изменение Market Analysis;
- изменение торговой логики;
- изменение структуры каталогов;
- дополнительную cleanup-перестройку unrelated-моделей.
Критерии завершения
Build 055 считается завершённым, поскольку:
Klineне используется до удаления;KlineBatchне используется до удаления;- оба определения удалены;
- полный test suite проходит;
- grep по
KlineиKlineBatchпустой; - grep по
get_klines,_kline_from_candleиindicators_legacyпустой; git diff --checkчистый.
Итог
Build 055 завершён успешно.
Текущее состояние:
Kline — удалён
KlineBatch — удалён
get_klines — отсутствует
_kline_from_candle — отсутствует
indicators_legacy — отсутствует
Full test suite — 779 passed
Следующий этап — финальная архитектурная верификация всей миграции OHLCV Feed.