Spaces:
Build error
Build error
| """ | |
| Mapper para casos de uso de Backtesting. | |
| Convierte entre API schemas (Pydantic) y DTOs de aplicación. | |
| """ | |
| from app.schemas.requests.backtest import BacktestRequest | |
| from app.schemas.responses.backtest import BacktestResponse, BacktestMetrics | |
| from app.application.dtos.backtest_dtos import ( | |
| BacktestInputDTO, | |
| BacktestOutputDTO, | |
| BacktestMetricsDTO | |
| ) | |
| class BacktestMapper: | |
| """ | |
| Mapper para convertir entre API schemas y DTOs de backtest. | |
| """ | |
| def to_input_dto(request: BacktestRequest) -> BacktestInputDTO: | |
| """ | |
| Convierte API request a DTO de entrada. | |
| Args: | |
| request: Request de la API | |
| Returns: | |
| BacktestInputDTO: DTO para el caso de uso | |
| """ | |
| return BacktestInputDTO( | |
| values=request.series.values, | |
| test_size=request.test_size, | |
| quantile_levels=request.quantile_levels, | |
| timestamps=request.series.timestamps, | |
| freq=request.freq | |
| ) | |
| def from_output_dto(dto: BacktestOutputDTO) -> BacktestResponse: | |
| """ | |
| Convierte DTO de salida a API response. | |
| Args: | |
| dto: DTO del caso de uso | |
| Returns: | |
| BacktestResponse: Response para la API | |
| """ | |
| # Convertir métricas | |
| metrics = BacktestMetrics( | |
| mae=dto.metrics.mae, | |
| mape=dto.metrics.mape, | |
| rmse=dto.metrics.rmse, | |
| mse=dto.metrics.mse | |
| ) | |
| return BacktestResponse( | |
| forecast_values=dto.forecast_values, | |
| actual_values=dto.actual_values, | |
| errors=dto.errors, | |
| metrics=metrics, | |
| timestamps=dto.timestamps, | |
| quantiles=dto.quantiles | |
| ) | |