Commit 364313c0 by Toshio Kuratomi

Simplify and speed up _split_role_params() by moving an invariant outside of a loop.

parent 1ae28f60
...@@ -178,10 +178,11 @@ class RoleDefinition(Base, Become, Conditional, Taggable): ...@@ -178,10 +178,11 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
role_def = dict() role_def = dict()
role_params = dict() role_params = dict()
base_attribute_names = frozenset(self._get_base_attributes().keys())
for (key, value) in iteritems(ds): for (key, value) in iteritems(ds):
# use the list of FieldAttribute values to determine what is and is not # use the list of FieldAttribute values to determine what is and is not
# an extra parameter for this role (or sub-class of this role) # an extra parameter for this role (or sub-class of this role)
if key not in [attr_name for (attr_name, attr_value) in iteritems(self._get_base_attributes())]: if key not in base_attribute_names:
# this key does not match a field attribute, so it must be a role param # this key does not match a field attribute, so it must be a role param
role_params[key] = value role_params[key] = value
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment