Source code for save_to_db.exceptions.item_config
""" This module contains exceptions for
:py:class:`~save_to_db.core.item.Item` class configuration. These
exceptions are only raised when an item configuration is correct in its
structure but cannot be used, for example, when a nonexistent relation is used.
If, for example, a boolean value was used instead of a list, general exception
will be raise when trying to deal with a boolean as with a list.
"""
[docs]class ItemConfigError(Exception):
"""General exception for configuration of
:py:class:`~save_to_db.core.item.Item` class.
"""
[docs]class InvalidFieldName(ItemConfigError):
"""Raised when configuration uses model field name that has double
underscores in it.
"""
[docs]class ItemAdapterNotFound(ItemConfigError):
"""Raised when an adapter for a particular item class was not found
during class setup.
"""
[docs]class NonExistentRelationDefined(ItemConfigError):
"""Raised when relation is set for a field that does not exist or is not
a foreign key field in corresponding model.
"""
[docs]class NonExistentFieldUsed(ItemConfigError):
"""Raised when `getters`, `creators`, or `nullables` or any other
configuration value contains field name that `model_cls` does not have.
"""
[docs]class FieldsFromRelationNotAllowed(ItemConfigError):
"""Raised when configuration variable contains
fields referencing fields of a relations.
"""
[docs]class NorewriteRelationException(ItemConfigError):
"""Raised when no-rewrite for a relationship set on both sides with
different values.
"""
[docs]class NorewriteKeyUsedTwice(ItemConfigError):
"""Raised when same no-rewrite key used twice (trough tuples)."""
# --- ModelDeleter -------------------------------------------------------------
[docs]class DeleterSelectorsOrKeepersEmpty(ItemConfigError):
"""Raised when trying to use ModelDelete with either `selector_fields`
or `keeper_fields` empty.
"""
[docs]class DeleterXToManyRelationUsed(ItemConfigError):
"""Raised when trying to use x-to-many relationship as selector or
keeper field.
"""
[docs]class UnrefNonXToManyFieldUsed(ItemConfigError):
"""Raise when trying to use not x-to-many field as a key of
`unref_x_to_many` dictionary of item configuration.
"""