[python-experimental] implement in operator for model classes (#7637)

* implement  operator for model classes

* refresh samples
This commit is contained in:
Maksym Melnychok
2020-10-09 19:38:15 +02:00
committed by GitHub
parent 690be29f4b
commit 8416fff568
6 changed files with 157 additions and 2 deletions

View File

@@ -68,4 +68,20 @@
"at self and self's composed instances. All values must be "
"the same".format(name, type(self).__name__),
path_to_item
)
)
def __contains__(self, name):
"""this allows us to use `in` operator: `'attr' in instance`"""
if name in self.required_properties:
return name in self.__dict__
model_instances = self._var_name_to_model_instances.get(
name, self._additional_properties_model_instances)
if model_instances:
for model_instance in model_instances:
if name in model_instance._data_store:
return True
return False

View File

@@ -22,4 +22,11 @@
"{0} has no attribute '{1}'".format(
type(self).__name__, name),
[name]
)
)
def __contains__(self, name):
"""this allows us to use `in` operator: `'attr' in instance`"""
if name in self.required_properties:
return name in self.__dict__
return name in self.__dict__['_data_store']