mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-09 21:53:40 +00:00
Don't rely on exceptions for testing whether a Python attribute names a valid (inverse) IFC attribute
This commit is contained in:
@@ -43,10 +43,11 @@ class entity_instance(object):
|
|||||||
def __init__(self, e):
|
def __init__(self, e):
|
||||||
super(entity_instance, self).__setattr__('wrapped_data', e)
|
super(entity_instance, self).__setattr__('wrapped_data', e)
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
try: return entity_instance.wrap_value(self.wrapped_data.get_argument(self.wrapped_data.get_argument_index(name)))
|
if name in self.wrapped_data.get_attribute_names():
|
||||||
except:
|
return entity_instance.wrap_value(self.wrapped_data.get_argument(self.wrapped_data.get_argument_index(name)))
|
||||||
try: return entity_instance.wrap_value(self.wrapped_data.get_inverse(name))
|
elif name in self.wrapped_data.get_inverse_attribute_names():
|
||||||
except: raise AttributeError("entity instance of type '%s' has no attribute '%s'"%(self.wrapped_data.is_a(), name))
|
return entity_instance.wrap_value(self.wrapped_data.get_inverse(name))
|
||||||
|
else: raise AttributeError("entity instance of type '%s' has no attribute '%s'"%(self.wrapped_data.is_a(), name))
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def map_value(v):
|
def map_value(v):
|
||||||
if isinstance(v, entity_instance): return v.wrapped_data
|
if isinstance(v, entity_instance): return v.wrapped_data
|
||||||
|
|||||||
Reference in New Issue
Block a user