From f43b212f5d9e168711db84d2c8270cce46402b7a Mon Sep 17 00:00:00 2001 From: Brian Moe <lars@moe.phys.uwm.edu> Date: Fri, 4 Dec 2009 16:37:30 -0600 Subject: [PATCH] one-line searches are now case insensitive. --- gracedb/query.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gracedb/query.py b/gracedb/query.py index 43f91df22..793613c5a 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={} -- GitLab