Scheduled maintenance on Saturday, 27 September 2025, from 07:00 AM to 4:00 PM GMT (09:00 AM to 6:00 PM CEST) - some services may be unavailable -

Skip to content
_Entity.py 1.87 KiB
Newer Older
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
from typing import Any, Callable, Dict
from ...engines._DatabaseEngine import _DatabaseEngine
from .EntityAttributes import EntityAttributes
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
    def __init__(self, parent, entity_uuid : str, attributes_key : str,
                 attribute_validators : Dict[str, Callable[[Any], bool]],
                 attribute_transcoders : Dict[str, Dict[Any, Callable[[Any], Any]]]):
        if not isinstance(parent, _Entity):
            raise AttributeError('parent must be an instance of _Entity')
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
        if (not isinstance(entity_uuid, str)) or (len(entity_uuid) == 0):
            raise AttributeError('entity_uuid must be a non-empty instance of str')
        if (not isinstance(attributes_key, str)) or (len(attributes_key) == 0):
            raise AttributeError('attributes_key must be a non-empty instance of str')
        if not isinstance(attribute_validators, dict):
            raise AttributeError('attribute_validators must be an instance of dict')
        if not isinstance(attribute_transcoders, dict):
            raise AttributeError('attribute_transcoders must be an instance of dict')

Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
        self._entity_uuid = entity_uuid
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
        self._attributes = EntityAttributes(self, attributes_key, attribute_validators,
                                            transcoders=attribute_transcoders)
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
    @property
    def parent(self) -> '_Entity': return self._parent

    @property
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
    def database_engine(self) -> _DatabaseEngine: return self._parent.database_engine

    @property
    def attributes(self) -> EntityAttributes: return self._attributes

    def load(self):
        raise NotImplementedError()

    def create(self):
        raise NotImplementedError()

    def delete(self):
        raise NotImplementedError()

Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
    def dump_id(self) -> Dict:
        raise NotImplementedError()

    def dump(self) -> Dict:
        raise NotImplementedError()