Ejemplo n.º 1
0
 def delete(self) -> None:
     for edge in set(self.edges()):
         edge.delete()
     uid = object.__getattribute__(self, '__uid__')
     for key in revert.match_keys(f'{config.base}/objects/{uid}'):
         revert.delete(key)
     for cls in self.__class__.mro():
         if issubclass(cls, Node):
             # todo: use set
             # todo: don't use raw revert stuff anywhere. Always use bindings
             revert.delete(
                 f'{config.base}/classes/{cls.class_reference()}/objects/{uid}'
             )
     ogm.delete_node(self)
Ejemplo n.º 2
0
 def delete(self) -> None:
     actual_cls = self.__class__.class_reference()
     for cls in self.__class__.mro():
         if issubclass(cls, Edge):
             revert.count_down_or_del(
                 f'{config.base}/child_relations/{encode(self.parent)}/{cls.class_reference()}/{encode(self.child)}'
             )
             revert.count_down_or_del(
                 f'{config.base}/parent_relations/{encode(self.child)}/{cls.class_reference()}/{encode(self.parent)}'
             )
             revert.delete(
                 f'{config.base}/child_edges/{encode(self.parent)}/{encode(self.child)}/{cls.class_reference()}/{actual_cls}'
             )
             revert.delete(
                 f'{config.base}/parent_edges/{encode(self.child)}/{encode(self.parent)}/{cls.class_reference()}/{actual_cls}'
             )
Ejemplo n.º 3
0
 def remove(self, item: TVal) -> None:
     revert.delete(f'{self.__binding__}/{ogm.encode(item)}')
     ogm.update_node(self.__instance__)
Ejemplo n.º 4
0
 def clear(self) -> None:
     for key in revert.match_keys(f'{self.__binding__}'):
         revert.delete(key)
     ogm.update_node(self.__instance__)
Ejemplo n.º 5
0
 def __delitem__(self, key: TKey) -> None:
     revert.delete(f'{self.__binding__}/{ogm.encode(key)}')
     ogm.update_node(self.__instance__)