src.driver.exceptions

Custom exception classes for the AMMM driver module.

This module defines domain-specific exceptions for better error handling and more informative error messages throughout the driver workflow.

Module Contents

exception src.driver.exceptions.AMMBaseException(message: str, details: Dict[str, Any] | None = None, suggestions: List[str] | None = None)

Bases: Exception

Base exception class for all AMMM-specific exceptions.

exception src.driver.exceptions.ConfigurationError(message: str, details: Dict[str, Any] | None = None, suggestions: List[str] | None = None)

Bases: AMMBaseException

Raised when there are issues with the configuration file or settings.

This includes: - Invalid configuration format - Missing required configuration fields - Invalid parameter values - Incompatible configuration combinations

exception src.driver.exceptions.DataValidationError(message: str, details: Dict[str, Any] | None = None, suggestions: List[str] | None = None)

Bases: AMMBaseException

Raised when input data fails validation checks.

This includes: - Missing required columns - Invalid data types - Data quality issues (NaN, infinite values) - Insufficient data for modeling

exception src.driver.exceptions.FileNotFoundError(filepath: str, file_type: str = 'file')

Bases: AMMBaseException

Raised when required files are missing or inaccessible.

This includes: - Missing configuration file - Missing input data file - Missing holidays file - Unreadable files due to permissions

exception src.driver.exceptions.InsufficientDataError(required: int, actual: int, context: str = 'observations')

Bases: DataValidationError

Raised when there’s not enough data for model fitting.

This includes: - Too few observations - Not enough data points after train/test split - Insufficient variation in features

exception src.driver.exceptions.ModelFittingError(message: str, details: Dict[str, Any] | None = None, suggestions: List[str] | None = None)

Bases: AMMBaseException

Raised when model fitting fails.

This includes: - Convergence failures - Numerical issues during fitting - Memory errors - Invalid model configuration

exception src.driver.exceptions.ModelNotFittedError(operation: str)

Bases: AMMBaseException

Raised when operations requiring a fitted model are called before fitting.

This includes: - Attempting predictions before fitting - Trying to visualize results before fitting - Accessing model parameters before fitting

exception src.driver.exceptions.DataQualityWarning

Bases: UserWarning

Warning for data quality issues that don’t prevent execution but may affect results.

This includes: - High correlation between features - Low variance in some features - Potential outliers detected - Missing values that were imputed

exception src.driver.exceptions.ColumnMismatchError(expected_columns: List[str], actual_columns: List[str], missing_columns: List[str] | None = None)

Bases: DataValidationError

Raised when expected columns are missing or there’s a mismatch in column structure.

This includes: - Missing media columns specified in config - Missing control columns - Column name mismatches between config and data

exception src.driver.exceptions.DateContinuityError(issue_type: str, problem_dates: List[str] | None = None)

Bases: DataValidationError

Raised when there are gaps or issues in the date sequence.

This includes: - Missing dates in time series - Duplicate dates - Non-sequential dates - Invalid date formats

exception src.driver.exceptions.TensorShapeError(expected_shape: tuple | None = None, actual_shape: tuple | None = None)

Bases: ModelFittingError

Raised when there’s a tensor shape mismatch, often due to configuration changes.

This is a common issue when the PyMC session isn’t properly cleared between runs with different configurations.