diff --git a/src/easyscience/global_object/map.py b/src/easyscience/global_object/map.py index 33636c68..a9d0b576 100644 --- a/src/easyscience/global_object/map.py +++ b/src/easyscience/global_object/map.py @@ -169,7 +169,7 @@ def add_vertex(self, obj: object, obj_type: str = None): self._store[name] = obj entry_list = _EntryList() - entry_list.finalizer = weakref.finalize(obj, self.prune, name) + entry_list.finalizer = weakref.finalize(obj, self.prune_type_dict, name) entry_list.type = obj_type self.__type_dict[name] = entry_list # Add objects type to the list of types @@ -210,6 +210,10 @@ def prune_vertex_from_edge(self, parent_obj, child_obj): if vertex1 in self.__type_dict and vertex2 in self.__type_dict[vertex1]: del self.__type_dict[vertex1][self.__type_dict[vertex1].index(vertex2)] + def prune_type_dict(self, key: str): + if key in self.__type_dict: + del self.__type_dict[key] + def prune(self, key: str): if key in self.__type_dict: del self.__type_dict[key]