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) -> DataValidationError

  • create_indicator_calculation_error(indicator_name, message, parameters=None, data_shape=None) -> IndicatorCalculationError

  • create_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