From 55983941180ed47c439b2564440779e49867c86d Mon Sep 17 00:00:00 2001 From: Brian Moe <brian.moe@ligo.org> Date: Wed, 6 Jun 2012 14:35:19 -0500 Subject: [PATCH] attr queries now expressions. --- gracedb/query.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gracedb/query.py b/gracedb/query.py index ff7d702cf..58e401b99 100644 --- a/gracedb/query.py +++ b/gracedb/query.py @@ -180,7 +180,14 @@ attrExprOp.setParseAction(lambda toks: attrExprOperators[toks[0]]) attrExpr = attrExprLhs + attrExprOp + attrExprRhs attrExpr.setParseAction(lambda toks: Q(**{toks[0]+toks[1]: toks[2]})) -attributeQ = Optional(Suppress(Keyword('attr:'))) + attrExpr +attrExprs = operatorPrecedence(attrExpr, + [(minusop, 1, opAssoc.RIGHT, lambda a,b,toks: ~toks[0][0]), + (orop, 2, opAssoc.LEFT, lambda a,b,toks: reduce(Q.__or__, toks[0].asList(), Q())), + (andop, 2, opAssoc.LEFT, lambda a,b,toks: reduce(Q.__and__, toks[0].asList(), Q())), + ]).setParseAction(lambda toks: toks[0]) + + +attributeQ = Optional(Suppress(Keyword('attr:'))) + attrExprs.copy() attributeQ.setParseAction(lambda toks: ("attr", toks[0])) @@ -188,7 +195,8 @@ attributeQ.setParseAction(lambda toks: ("attr", toks[0])) q = (hasfarQ | gidQ | hidQ | tidQ | labelQ | atypeQ | groupQ | gpsQ | createdQ | submitterQ | runQ | attributeQ).setName("query term") -andTheseTags = ["attr"] +#andTheseTags = ["attr"] +andTheseTags = [] def parseQuery(s): d={} -- GitLab