Skip to content

Commit

Permalink
better FQL support for querying by confidence (related to proycon/fla…
Browse files Browse the repository at this point in the history
  • Loading branch information
proycon committed Sep 27, 2016
1 parent 9792477 commit e0741fa
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions formats/fql.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,18 +228,22 @@ def parse(q, i=0):
v = lambda x,y='text': getattr(x,'value') if isinstance(x, (folia.Description, folia.Comment, folia.Content)) else getattr(x,'text')()
else:
v = lambda x,y=q[i]: getattr(x,y)
if q[i] == 'confidence':
cnv = float
else:
cnv = lambda x: x
if operator == '=' or operator == '==':
filters.append( lambda x,y=q[i+2],v=v : v(x) == y )
elif operator == '!=':
filters.append( lambda x,y=q[i+2],v=v : v(x) != y )
elif operator == '>':
filters.append( lambda x,y=q[i+2],v=v : v(x) > y )
filters.append( lambda x,y=cnv(q[i+2]),v=v : False if v(x) is None else v(x) > y )
elif operator == '<':
filters.append( lambda x,y=q[i+2],v=v : v(x) < y )
filters.append( lambda x,y=cnv(q[i+2]),v=v : False if v(x) is None else v(x) < y )
elif operator == '>=':
filters.append( lambda x,y=q[i+2],v=v : v(x) >= y )
filters.append( lambda x,y=cnv(q[i+2]),v=v : False if v(x) is None else v(x) >= y )
elif operator == '<=':
filters.append( lambda x,y=q[i+2],v=v : v(x) <= y )
filters.append( lambda x,y=cnv(q[i+2]),v=v : False if v(x) is None else v(x) <= y )
elif operator == 'CONTAINS':
filters.append( lambda x,y=q[i+2],v=v : v(x).find( y ) != -1 )
elif operator == 'NOTCONTAINS':
Expand Down

0 comments on commit e0741fa

Please sign in to comment.