bquant.core.exceptions — Исключения
Обзор
Кастомные исключения BQuant для однородной обработки ошибок в данных, анализе, визуализации и конфигурации.
Классы
BQuantError(Exception): базовый класс всех исключений BQuant.DataError(BQuantError): общие ошибки данных.DataValidationError,DataLoadingError,DataProcessingError.
ConfigurationError(BQuantError): ошибки конфигурации.InvalidTimeframeError,InvalidIndicatorParametersError.
AnalysisError(BQuantError): ошибки анализа.IndicatorCalculationError,ZoneAnalysisError,StatisticalAnalysisError.
VisualizationError(BQuantError): ошибки визуализации.MLError(BQuantError): ошибки ML (будущие модули).FeatureExtractionError,ModelTrainingError.
FileOperationError(BQuantError): ошибки файловых операций.NotImplementedError(BQuantError): обращение к ещё не реализованной функциональности.
Фабрики ошибок
create_data_validation_error(message, column=None, expected_type=None, actual_type=None, expected_shape=None, actual_shape=None) -> DataValidationErrorcreate_indicator_calculation_error(indicator_name, message, parameters=None, data_shape=None) -> IndicatorCalculationErrorcreate_configuration_error(parameter_name, message, expected_values=None, actual_value=None) -> ConfigurationError
Контекст и валидаторы
BQuantErrorContext(operation, logger=None): контекстный менеджер обработки исключений (логирует и оборачивает чужие исключения в семейство BQuant).validate_timeframe(timeframe, supported_timeframes): валидирует таймфрейм, бросаетInvalidTimeframeError.validate_indicator_parameters(indicator, parameters, required_params): проверяет обязательные параметры индикатора.validate_ohlcv_data(data, required_columns=None): валидирует структуру OHLCV DataFrame.
Примеры
Использование фабрики и перехват ошибок:
from bquant.core.exceptions import (
create_data_validation_error,
DataValidationError,
BQuantErrorContext,
)
try:
raise create_data_validation_error("Неверный формат", expected_type="DataFrame", actual_type="dict")
except DataValidationError as e:
print(e)
from bquant.core.logging_config import get_logger
logger = get_logger(__name__)
with BQuantErrorContext("load data", logger=logger):
# Любая ошибка внутри будет обернута в BQuantError/ConfigurationError
1 / 0