[filter2] Possibilité d'utiliser des < ou > dans les filtres humains
This commit is contained in:
parent
72e35bcb32
commit
b522b7aa69
1 changed files with 7 additions and 3 deletions
10
filter2.py
10
filter2.py
|
@ -21,7 +21,7 @@ def prioritize(l):
|
|||
if not isinstance(l, list):
|
||||
return l
|
||||
l=simplify(l)
|
||||
for c in ['!=', '=', '&', '|']:
|
||||
for c in ['!=', '<', '>', '=', '&', '|']:
|
||||
i=0
|
||||
while i<len(l):
|
||||
if l[i] == c:
|
||||
|
@ -51,6 +51,10 @@ def toldapfilter(l):
|
|||
op=l[0]
|
||||
if op == "=":
|
||||
return "%s=%s" % (l[1], l[2])
|
||||
elif op == "<":
|
||||
return "!(%s>=%s)" % (l[1], l[2])
|
||||
elif op == ">":
|
||||
return "!(%s<=%s)" % (l[1], l[2])
|
||||
elif op == "!=":
|
||||
return "!(%s=%s)" % (l[1], l[2])
|
||||
return op + ''.join(['(%s)' % toldapfilter(i) for i in l[1:]])
|
||||
|
@ -63,8 +67,8 @@ def pypexpr():
|
|||
if not expr:
|
||||
import pyparsing
|
||||
unicodePrintables = u''.join(unichr(c) for c in xrange(65536) if not unichr(c).isspace())
|
||||
txt = "".join(c for c in unicodePrintables if c not in '()&|!=')
|
||||
expr = pyparsing.nestedExpr("(", ")", pyparsing.Word(txt) | pyparsing.oneOf("& | != ="))
|
||||
txt = "".join(c for c in unicodePrintables if c not in '()&|<>!=')
|
||||
expr = pyparsing.nestedExpr("(", ")", pyparsing.Word(txt) | pyparsing.oneOf("& | < > != ="))
|
||||
return expr
|
||||
|
||||
def human_to_list(data):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue