Skip to content
Snippets Groups Projects
Commit e1bbce4c authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Use a slightly cleaner approach to fix ConditionDict for True/False

parent ff7b045f
No related branches found
No related tags found
No related merge requests found
......@@ -196,19 +196,14 @@ class _ConditionDict(dict):
self.tags = tags
def __getitem__(self, i):
# If we do not add these special cases the dictionary will return False
# when we execute the following code:
#
# eval ("True", _ConditionDict(v.tags)
#
# But in this case we want to return True! A normal dictionary would not attempt
# to replace "True" if "True" is not a key. The _ConditionDict obviously has no
# such concerns ;).
if i == "True":
return True
if i == "False":
return False
return i in self.tags
# We first evaluate the given string with eval. This is necessary
# to ensure that 'True' and 'False' are correctly evaluated. Only
# if this failed with a NameError, we check for the existence of
# of the given string in the tag list.
try:
return eval(i)
except NameError:
return i in self.tags
def _filter_cache_items(condition):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment