Skip to content

Value Error Mixin

value_error_mixin

Make forging-blocks errors catchable as Python built-in ValueError.

Defines ValueErrorMixin, a mixin class extending Python's built-in
ValueError. When listed before Error[...] in a class's bases, it
adjusts the MRO so that isinstance(error, ValueError) returns True.

Attach ValueErrorMixin to errors representing invalid input, bad
arguments, and precondition failures.

ValueErrorMixin

Bases: ValueError

Mixin — attach before Error[...] in MRO to make errors isinstance(ValueError).

Example
from forging_blocks.foundation.errors import Error, ErrorMessage


class InvalidInputError(ValueErrorMixin, Error[str]):
    pass  # This error represents invalid input


err = InvalidInputError(ErrorMessage("Bad input"))
assert isinstance(err, ValueError)
Source code in src/forging_blocks/foundation/errors/builtin/value_error_mixin.py
class ValueErrorMixin(ValueError):
    """Mixin — attach before ``Error[...]`` in MRO to make errors ``isinstance(ValueError)``.

    Example:
        ```python
        from forging_blocks.foundation.errors import Error, ErrorMessage


        class InvalidInputError(ValueErrorMixin, Error[str]):
            pass  # This error represents invalid input


        err = InvalidInputError(ErrorMessage("Bad input"))
        assert isinstance(err, ValueError)
        ```
    """