Source code for mimesis.exceptions

"""Custom exceptions which are used in Mimesis."""

import typing as t

from mimesis.enums import Locale


[docs]class LocaleError(ValueError): """Raised when a locale isn't supported.""" def __init__(self, locale: t.Union[Locale, str]) -> None: """Initialize attributes for informative output. :param locale: Locale. """ self.locale = locale def __str__(self) -> str: return f"Invalid locale «{self.locale}»"
[docs]class SchemaError(ValueError): """Raised when a schema is unsupported.""" def __str__(self) -> str: return "The schema must be a callable object."
[docs]class NonEnumerableError(TypeError): """Raised when object is not instance of Enum.""" message = "You should use one item of: «{}» of the object mimesis.enums.{}" def __init__(self, enum_obj: t.Any) -> None: """Initialize attributes for informative output. :param enum_obj: Enum object. """ if enum_obj: self.name = enum_obj self.items = ", ".join(map(str, enum_obj)) else: self.items = "" def __str__(self) -> str: return self.message.format(self.items, self.name.__name__)
[docs]class FieldError(ValueError): def __init__(self, name: t.Optional[str] = None) -> None: """Initialize attributes for more informative output. :param name: Name of the field. """ self.name = name self.message = "Field «{}» is not supported." self.message_none = "The field cannot have the value None." def __str__(self) -> str: if self.name is None: return self.message_none return self.message.format(self.name)
[docs]class FieldsetError(ValueError): """Raised when a resulting fieldset is empty.""" def __str__(self) -> str: return "The «iterations» parameter must be greater than 1."
[docs]class FieldArityError(ValueError): def __str__(self) -> str: return "The custom handler must accept at least two arguments: 'random' and '**kwargs'"