Source code for valify.exceptions

"""
valify.exceptions
~~~~~~~~~~~~~~~~~

Custom exception hierarchy for the valify library.
"""

from __future__ import annotations
from typing import Any

[docs] class ValifyError(Exception): """ Base class for all valify exceptions """
[docs] class ValidationError(ValifyError): """ Raised when a value fails a validation rule. Attributes ---------- message : str Human-readable description of what failed. field : str The field name that failed. None if used outside a schema. value : object The actual value that was rejected. """ def __init__( self, message: str, *, field: str | None = None, value: Any = None ) -> None: self.message: str = message self.field: str | None = field self.value: Any = value full_message = f"[{field}] {message}" if field else message super().__init__(full_message)
[docs] class RequiredFieldError(ValidationError): """ Raised when a required field is missing from validation data. """ def __init__(self, field: str) -> None: super().__init__( message="Required field is missing", field =field, value=None, )
[docs] class SchemaError(ValifyError): """ Raised when the schema definition itself is inavlid. """ def __init__(self, message: str) -> None: self.message: str = message super().__init__(message)