Source code for abstract_api.core.mixins.nested_entities_mixin

from typing import TYPE_CHECKING, Any, ClassVar, Protocol, Type


class _ResponseFieldProtocol(Protocol):
    def _init_response_field(self, field: str, value: Any) -> None:
        ...  # pragma: no cover


if TYPE_CHECKING:
    _Base = _ResponseFieldProtocol
else:
    _Base = object


[docs] class NestedEntitiesMixin(_Base): """Nested entities mixin for responses that have nested entities.""" _nested_entities: ClassVar[dict[str, Type]] def _init_response_field(self, field: str, value: Any) -> None: """Sets a response field's value during instance initialization. This should be used in/as a part of __init__ method. Args: field: Field name. value: Value to be set. The value is parsed to a nested entity if the field is a nested entity. """ if field in self._nested_entities: value = self._nested_entities[field](**value) super()._init_response_field(field, value)