Skip to content
Snippets Groups Projects
Commit 9d67b8bb authored by Branson Craig Stephens's avatar Branson Craig Stephens
Browse files

I think I fixed the query parser to use pipeline and search rather than...

I think I fixed the query parser to use pipeline and search rather than analysisType, but I havent' fixed the documentation yet.
parent 66749958
No related branches found
No related tags found
No related merge requests found
......@@ -38,8 +38,8 @@ encodeType = dict(
[(x[0],x[0]) for x in models.Event.ANALYSIS_TYPE_CHOICES]
)
def doType(toks):
return ("type", Q(analysisType__in=[encodeType[tok] for tok in toks]))
#def doType(toks):
# return ("type", Q(analysisType__in=[encodeType[tok] for tok in toks]))
def convertToGps(dateStr):
return 12
......@@ -90,15 +90,28 @@ groupList = OneOrMore(group).setName("analysis group list")
groupQ = (Optional(Suppress(Keyword("group:"))) + groupList)
groupQ = groupQ.setParseAction(lambda toks: ("group", Q(group__name__in=toks.asList())))
# Pipeline
pipelineNames = [pipeline.name for pipeline in models.Pipeline.objects.all()]
pipeline = Or(map(CaselessLiteral, pipelineNames)).setName("pipeline name")
pipelineList = OneOrMore(pipeline).setName("pipeline list")
pipelineQ = (Optional(Suppress(Keyword("pipeline:"))) + pipelineList)
pipelineQ = pipelineQ.setParseAction(lambda toks: ("pipeline", Q(pipeline__name__in=toks.asList())))
# Search
searchNames = [search.name for search in models.Search.objects.all()]
search = Or(map(CaselessLiteral, searchNames)).setName("search name")
searchList = OneOrMore(search).setName("search list")
searchQ = (Optional(Suppress(Keyword("search:"))) + searchList)
searchQ = searchQ.setParseAction(lambda toks: ("search", Q(search__name__in=toks.asList())))
# Analysis Types
atypeNames = encodeType.keys()
atype = Or(map(CaselessLiteral, atypeNames))
atypeList = delimitedList(atype, delim='|').\
setName("analylsis type list").\
setResultsName("atypes")
atypeQ = (Optional(Suppress(Keyword("type:"))) + atypeList).\
setParseAction(doType)
#atypeNames = encodeType.keys()
#atype = Or(map(CaselessLiteral, atypeNames))
#atypeList = delimitedList(atype, delim='|').\
# setName("analylsis type list").\
# setResultsName("atypes")
#atypeQ = (Optional(Suppress(Keyword("type:"))) + atypeList).\
# setParseAction(doType)
# Gracedb ID
gid = Suppress("G")+Word("0123456789")
......@@ -243,7 +256,8 @@ ifoQ = ifoListQ | nifoQ
###########################
q = (ifoQ | hasfarQ | gidQ | hidQ | tidQ | eidQ | labelQ | atypeQ | groupQ | gpsQ | createdQ | submitterQ | runQ | attributeQ).setName("query term")
#q = (ifoQ | hasfarQ | gidQ | hidQ | tidQ | eidQ | labelQ | atypeQ | groupQ | gpsQ | createdQ | submitterQ | runQ | attributeQ).setName("query term")
q = (ifoQ | hasfarQ | gidQ | hidQ | tidQ | eidQ | labelQ | searchQ | pipelineQ | groupQ | gpsQ | createdQ | submitterQ | runQ | attributeQ).setName("query term")
#andTheseTags = ["attr"]
andTheseTags = ["nevents"]
......@@ -267,11 +281,11 @@ def parseQuery(s):
if "tid" in d:
d["tid"] = d["tid"] & Q(group__name="Test")
if "hid" in d:
d["hid"] = d["hid"] & Q(analysisType="HWINJ")
d["hid"] = d["hid"] & Q(pipeline="HardwareInjection")
if "eid" in d:
d["eid"] = d["eid"] & Q(analysisType="GRB")
d["eid"] = d["eid"] & Q(group__name="External")
if "id" in d:
d["id"] = d["id"] & ~Q(analysisType="HWINJ") & ~Q(analysisType="GRB")
d["id"] = d["id"] & ~Q(pipeline="HardwareInjection") & ~Q(group__name="External")
if "id" in d and "hid" in d:
d["id"] = d["id"] | d["hid"]
del d["hid"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment