"""Calculation IR and local evaluator errors."""


class CalculationError(ValueError):
    code = "calculation_error"


class CalculationIRError(CalculationError):
    code = "invalid_calculation_ir"


class CalculationCycleError(CalculationIRError):
    code = "calculation_cycle"


class AuthoritativeNotAdmittedError(CalculationError):
    """Compatibility name for attempting authoritative IR in local mode."""

    code = "authoritative_execution_not_admitted"


class CalculationEvalError(CalculationError):
    code = "calculation_eval_error"
