Build 060.7: implement REST Trade Adapter

This commit is contained in:
2026-07-19 10:56:06 +03:00
parent 6b0d5badce
commit 7eee8ce36c
5 changed files with 2318 additions and 27 deletions

View File

@@ -0,0 +1,41 @@
# src/market_data/acquisition/adapters/dzengi/rest_trade_adapter.py
from __future__ import annotations
from src.market_data.acquisition.adapters.dzengi.mapper import (
map_dzengi_rest_agg_trades_to_trades,
)
from src.market_data.acquisition.adapters.dzengi.parser import (
parse_rest_agg_trades,
)
from src.market_data.acquisition.models.trade import Trade
from src.market_data.acquisition.validation.schema import (
ValidatedRestAggTradesDocument,
)
from src.market_data.acquisition.validation.values import (
validate_rest_agg_trade_values,
)
def adapt_rest_agg_trades_document(
document: ValidatedRestAggTradesDocument,
*,
symbol: str,
) -> tuple[Trade, ...]:
"""
Преобразовать структурно проверенный документ Dzengi aggTrades
в канонический immutable-набор Trade.
Функция последовательно выполняет parsing, value validation
и mapping. Schema validation должна быть выполнена вызывающим слоем.
Исключения отдельных этапов не перехватываются и не оборачиваются.
"""
trades = parse_rest_agg_trades(document)
validate_rest_agg_trade_values(trades)
return map_dzengi_rest_agg_trades_to_trades(
trades,
symbol=symbol,
)