Files
dzentra_bot/docs/migrations/build_055.md

317 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Build 055 — Удаление legacy-моделей Kline и KlineBatch
## Статус
**Завершён**
---
## Цель Build
Удалить больше не используемые legacy-модели OHLCV:
```text
Kline
KlineBatch
```
из файла:
```text
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 изменён только:
```text
src/integrations/exchange/models.py
```
Удалены определения:
```text
Kline
KlineBatch
```
Добавлена документация:
```text
docs/migrations/build_055.md
```
Build 055 не изменяет:
```text
src/integrations/exchange/service.py
src/market_data/acquisition/
src/trading/market_analysis/
tests/
```
---
## Предварительная проверка зависимостей
Перед удалением выполнена команда:
```bash
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
-E "\bKlineBatch\b|\bKline\b" \
src tests
```
Результат:
```text
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` удалены:
```python
# Одна свеча 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
```
Остальные модели файла сохранены без изменений.
---
## Проверка компиляции
Выполнена команда:
```bash
python -m compileall \
src/integrations/exchange/models.py
```
Результат:
```text
успешно
```
---
## Полный regression suite
Выполнена команда:
```bash
python -m pytest -q
```
Результат:
```text
779 passed in 2.46s
```
Регрессий не обнаружено.
---
## Контроль отсутствия Kline и KlineBatch
Выполнена команда:
```bash
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
-E "\bKlineBatch\b|\bKline\b" \
src tests
```
Результат:
```text
пусто
```
Это подтверждает полное удаление legacy-моделей OHLCV из исходного кода и тестов.
---
## Контроль отсутствия legacy compatibility-компонентов
Выполнена команда:
```bash
grep -RIn \
--exclude-dir="__pycache__" \
--exclude="*.pyc" \
"get_klines\|_kline_from_candle\|indicators_legacy" \
src tests
```
Результат:
```text
пусто
```
---
## Проверка форматирования
Выполнена команда:
```bash
git diff --check
```
Вывод отсутствует.
Whitespace-ошибок не обнаружено.
---
## Фактический diff
Перед добавлением документации:
```text
app/src/integrations/exchange/models.py | 26 --------------------------
1 file changed, 26 deletions(-)
```
---
## Архитектурный результат
После Build 055 legacy OHLCV полностью удалён из моделей Exchange Integration.
Активная архитектура использует только каноническую модель:
```text
src.market_data.acquisition.models.candle.Candle
```
Текущий путь:
```text
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 завершён успешно.**
Текущее состояние:
```text
Kline — удалён
KlineBatch — удалён
get_klines — отсутствует
_kline_from_candle — отсутствует
indicators_legacy — отсутствует
Full test suite — 779 passed
```
Следующий этап — финальная архитектурная верификация всей миграции OHLCV Feed.