erdantic.exceptions¶
Classes¶
ErdanticException (Exception)
¶
Base class for all exceptions from erdantic library.
Source code in erdantic/exceptions.py
class ErdanticException(Exception):
"""Base class for all exceptions from erdantic library."""
InvalidFieldError (ValueError, ErdanticException)
¶
Raised when an invalid field object is passed to a field adapter.
Source code in erdantic/exceptions.py
class InvalidFieldError(ValueError, ErdanticException):
"""Raised when an invalid field object is passed to a field adapter."""
InvalidModelAdapterError (ValueError, ErdanticException)
¶
Raised when trying to register a model adapter that is not subclassing Model.
Source code in erdantic/exceptions.py
class InvalidModelAdapterError(ValueError, ErdanticException):
"""Raised when trying to register a model adapter that is not subclassing Model."""
InvalidModelError (ValueError, ErdanticException)
¶
Raised when an invalid model object is passed to a model adapter.
Source code in erdantic/exceptions.py
class InvalidModelError(ValueError, ErdanticException):
"""Raised when an invalid model object is passed to a model adapter."""
NotATypeError (ValueError, ErdanticException)
¶
Source code in erdantic/exceptions.py
class NotATypeError(ValueError, ErdanticException):
pass
StringForwardRefError (ErdanticException)
¶
Raised when a field's type declaration is stored as a string literal and not transformed into a typing.ForwardRef object.
Source code in erdantic/exceptions.py
class StringForwardRefError(ErdanticException):
"""Raised when a field's type declaration is stored as a string literal and not transformed
into a typing.ForwardRef object."""
def __init__(self, model: "Model", field: "Field", forward_ref: ForwardRef) -> None:
message = (
f"Forward reference '{forward_ref}' for field '{field.name}' on model '{model.name}' "
"is a string literal and not a typing.ForwardRef object. erdantic is unable to handle "
"forward references that aren't transformed into typing.ForwardRef. Declare "
f"explicitly with 'typing.ForwardRef(\"{forward_ref}\", is_argument=False)'."
)
if sys.version_info[:3] < (3, 7, 4):
message = message.replace("typing.ForwardRef", "typing._ForwardRef")
super().__init__(message)
__init__(self, model: Model, field: Field, forward_ref: ForwardRef) -> None
special
¶
Source code in erdantic/exceptions.py
def __init__(self, model: "Model", field: "Field", forward_ref: ForwardRef) -> None:
message = (
f"Forward reference '{forward_ref}' for field '{field.name}' on model '{model.name}' "
"is a string literal and not a typing.ForwardRef object. erdantic is unable to handle "
"forward references that aren't transformed into typing.ForwardRef. Declare "
f"explicitly with 'typing.ForwardRef(\"{forward_ref}\", is_argument=False)'."
)
if sys.version_info[:3] < (3, 7, 4):
message = message.replace("typing.ForwardRef", "typing._ForwardRef")
super().__init__(message)
UnevaluatedForwardRefError (ErdanticException)
¶
Raised when a field's type declaration has an unevaluated forward reference.
Source code in erdantic/exceptions.py
class UnevaluatedForwardRefError(ErdanticException):
"""Raised when a field's type declaration has an unevaluated forward reference."""
def __init__(self, model: "Model", field: "Field", forward_ref: ForwardRef) -> None:
message = (
f"Unevaluated forward reference '{forward_ref.__forward_arg__}' "
f"for field {field.name} on model {model.name}."
)
if model.forward_ref_help:
message += " " + model.forward_ref_help
super().__init__(message)
__init__(self, model: Model, field: Field, forward_ref: ForwardRef) -> None
special
¶
Source code in erdantic/exceptions.py
def __init__(self, model: "Model", field: "Field", forward_ref: ForwardRef) -> None:
message = (
f"Unevaluated forward reference '{forward_ref.__forward_arg__}' "
f"for field {field.name} on model {model.name}."
)
if model.forward_ref_help:
message += " " + model.forward_ref_help
super().__init__(message)
UnknownFieldError (ValueError, ErdanticException)
¶
Raised when specified field does not match a field on specified model.
Source code in erdantic/exceptions.py
class UnknownFieldError(ValueError, ErdanticException):
"""Raised when specified field does not match a field on specified model."""
UnknownModelTypeError (ValueError, ErdanticException)
¶
Raised when a given model does not match known supported class types.
Source code in erdantic/exceptions.py
class UnknownModelTypeError(ValueError, ErdanticException):
"""Raised when a given model does not match known supported class types."""
def __init__(self, model: type, message: Optional[str] = None):
if message is None:
display = getattr(model, "__mro__", str(model))
message = f"Given model does not match any supported types. Model MRO: {display}"
self.model = model
self.message = message
super().__init__(message)
__init__(self, model: type, message: Optional[str] = None)
special
¶
Source code in erdantic/exceptions.py
def __init__(self, model: type, message: Optional[str] = None):
if message is None:
display = getattr(model, "__mro__", str(model))
message = f"Given model does not match any supported types. Model MRO: {display}"
self.model = model
self.message = message
super().__init__(message)