ODAPI: fix bug + add function 'has_slot'

This commit is contained in:
Joeri Exelmans 2024-10-29 23:48:30 +01:00
parent 51b8469856
commit 43080f88fe

View file

@ -74,7 +74,7 @@ class ODAPI:
if include_subtypes: if include_subtypes:
all_types = self.cd.transitive_sub_types[type_name] all_types = self.cd.transitive_sub_types[type_name]
else: else:
all_types = set(type_name) all_types = set([type_name])
obj_names = [obj_name for type_name in all_types for obj_name in self.type_to_objs[type_name]] obj_names = [obj_name for type_name in all_types for obj_name in self.type_to_objs[type_name]]
return [(obj_name, self.bottom.read_outgoing_elements(self.m, obj_name)[0]) for obj_name in obj_names] return [(obj_name, self.bottom.read_outgoing_elements(self.m, obj_name)[0]) for obj_name in obj_names]
@ -109,6 +109,10 @@ class ODAPI:
self.bottom.delete_element(obj) self.bottom.delete_element(obj)
self.__recompute_mappings() self.__recompute_mappings()
def has_slot(self, obj: UUID, attr_name: str):
class_name = self.get_name(self.get_type(obj))
return self.od.get_attr_link_name(class_name, attr_name) != None
def get_slot_value(self, obj: UUID, attr_name: str): def get_slot_value(self, obj: UUID, attr_name: str):
return self.get_value(self.get_slot(obj, attr_name)) return self.get_value(self.get_slot(obj, attr_name))