diff --git a/gracedb/query.py b/gracedb/query.py index 43f91df22588263cf3a33e82a27c8f5f38f624ad..793613c5a4002762e610a60a3a544ece825579c0 100644 --- a/gracedb/query.py +++ b/gracedb/query.py @@ -15,7 +15,7 @@ import models from django.db.models import Q from pyparsing import \ - Word, nums, Literal, delimitedList, Suppress, \ + Word, nums, Literal, CaselessLiteral, delimitedList, Suppress, \ Keyword, Combine, Or, Optional, OneOrMore, alphas, Regex, \ opAssoc, operatorPrecedence, oneOf, \ stringStart, stringEnd, ParseException @@ -53,7 +53,7 @@ gpsQ = gpsQ.setParseAction(maybeRange("gpstime")) # Analysis Groups groupNames = [group.name for group in models.Group.objects.all()] -group = Or(map(Literal, groupNames)).setName("analysis group name") +group = Or(map(CaselessLiteral, groupNames)).setName("analysis group name") groupList = delimitedList(group, delim='|').setName("analysis group list") groupQ = (Optional(Suppress(Keyword("group:"))) + groupList) groupQ = groupQ.setParseAction(lambda toks: ("group", Q(group__name__in=toks.asList()))) @@ -61,7 +61,7 @@ groupQ = groupQ.setParseAction(lambda toks: ("group", Q(group__name__in=toks.asL # Analysis Types atypeNames = encodeType.keys() -atype = Or(map(Literal, atypeNames)) +atype = Or(map(CaselessLiteral, atypeNames)) atypeList = delimitedList(atype, delim='|').\ setName("analylsis type list").\ setResultsName("atypes") @@ -83,7 +83,7 @@ hidQ = hidQ.setParseAction(maybeRange("hid", dbname="id")) # Labels labelNames = ["DQV", "INJ", "LUMIN_NO", "LUMIN_GO", "SWIFT_NO", "SWIFT_GO"] -label = Or([Literal(n) for n in labelNames]).\ +label = Or([CaselessLiteral(n) for n in labelNames]).\ setParseAction( lambda toks: Q(labels__name=toks[0]) ) andop = oneOf(", &").suppress() @@ -105,7 +105,7 @@ dateQ = (Optional(Suppress(Keyword("date:"))) + dateTime).\ setParseAction(doDate) -q = (gidQ | hidQ | groupQ | atypeQ | gpsQ | labelQ ).setName("query term") +q = (gidQ | hidQ | atypeQ | groupQ | gpsQ | labelQ ).setName("query term") def parseQuery(s): d={}