Source code for kpicalculator.exceptions

# src/kpicalculator/exceptions.py
"""Custom exception hierarchy for KPI Calculator."""


[docs] class KpiCalculatorError(Exception): """Base exception for KPI Calculator."""
[docs] class ValidationError(KpiCalculatorError): """Raised when input validation fails."""
[docs] class SecurityError(KpiCalculatorError): """Raised when security validation fails."""
[docs] class DataSourceError(KpiCalculatorError): """Raised when data source loading fails."""
[docs] class CalculationError(KpiCalculatorError): """Raised when KPI calculation fails."""
[docs] class MathematicalError(CalculationError): """Raised when mathematical constraints are violated."""
[docs] class ExportError(KpiCalculatorError): """Raised when result export fails."""
[docs] class ConfigurationError(KpiCalculatorError): """Raised when configuration is invalid."""
[docs] class DatabaseError(DataSourceError): """Raised when database operations fail."""
[docs] class CredentialError(SecurityError): """Raised when credential loading or validation fails."""