import ModelAPI
-from .tools import get_value, convert_to_underscore
+from model import tools
class Feature(ModelAPI.ModelAPI_Feature):
class Interface():
- """Base class of hight level Python interfaces to features."""
+ """Base class of high level Python interfaces to features."""
def __init__(self, feature):
self._feature = feature
+ self._attribute_white_list = [
+ "getKind", "results", "firstResult", "lastResult",
+ ]
def __getattr__(self, name):
"""Process missing attributes.
Add get*() methods for access feature attributes.
- Redirect missing attributes to the feature.
+ Redirect some missing attributes to the feature.
"""
if name.startswith("get"):
possible_names = [
"_" + name[3:],
- "_" + convert_to_underscore(name[3:]),
+ "_" + tools.convert_to_underscore(name[3:]),
]
for possible_name in possible_names:
if hasattr(self, possible_name):
def getter():
- return get_value(getattr(self, possible_name))
+ return getattr(self, possible_name)
return getter
- return self._feature.__getattribute__(name)
+ if name in self._attribute_white_list:
+ return getattr(self._feature, name)
- def setRealInput (self, inputid, value):
+ raise AttributeError()
+
+ def feature(self):
+ """Return ModelAPI_Feature."""
+ return self._feature
+
+ def _fill_attribute(self, attribute, value):
+ """Fill ModelAPI_Attribute* with value."""
+ tools.fill_attribute(attribute, value)
+
+ def setRealInput(self, inputid, value):
self._feature.data().real(inputid).setValue(value)
- def areInputValid (self):
+ def areInputValid(self):
validators = ModelAPI.ModelAPI_Session.get().validators()
return validators.validate(self._feature)
- def execute (self):
+ def execute(self):
self._feature.execute()