Added the ability to filter by tag-value and refactored the filters to be generic.

This commit is contained in:
Omer Katz 2014-10-01 15:44:54 +03:00
commit 298cf65569
3 changed files with 55 additions and 8 deletions

View file

@ -286,11 +286,19 @@ def is_filter_matching(obj, filter, filter_value):
try:
value = set(value)
return value.issubset(filter_value) or value.issuperset(filter_value)
return (value and value.issubset(filter_value)) or value.issuperset(filter_value)
except TypeError:
return value in filter_value
def generic_filter(filters, objects):
if filters:
for (_filter, _filter_value) in filters.items():
objects = [obj for obj in objects if is_filter_matching(obj, _filter, _filter_value)]
return objects
# not really random ( http://xkcd.com/221/ )
def random_key_pair():
return {