Revision f897bea9 pithos/lib/filter.py
b/pithos/lib/filter.py | ||
---|---|---|
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 | 34 |
import re |
35 |
import operator |
|
35 | 36 |
|
37 |
_regexfilter = re.compile('(!?)\s*(\S+?)\s*(?:(=|!=|<=|>=|<|>)\s*(\S*?)\s*)?$', re.UNICODE) |
|
36 | 38 |
|
37 |
_regexfilter = re.compile('(!?)\s*(.+)\s*(=|!=|<=|>=|<|>)?\s*(.*)$', re.UNICODE) |
|
38 |
|
|
39 |
OPERATORS = {'=':operator.eq, |
|
40 |
'!=':operator.ne, |
|
41 |
'<=':operator.le, |
|
42 |
'>=':operator.ge, |
|
43 |
'<':operator.lt, |
|
44 |
'>':operator.gt |
|
45 |
} |
|
39 | 46 |
|
40 | 47 |
def parse_filters(terms): |
41 | 48 |
included = [] |
... | ... | |
49 | 56 |
neg, key, op, value = m.groups() |
50 | 57 |
if neg: |
51 | 58 |
excluded.append(key) |
52 |
elif not value: |
|
53 |
included.append(key) |
|
54 | 59 |
elif op: |
55 | 60 |
opers.append((key, op, value)) |
56 |
|
|
61 |
elif not value: |
|
62 |
included.append(key) |
|
63 |
|
|
57 | 64 |
return included, excluded, opers |
Also available in: Unified diff