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