diff --git a/gracedb/superevents/query.py b/gracedb/superevents/query.py index e2077907541409f98f7eca484cf01e89b9d94258..fdd5bb89fe41835e6a6957af893c83ad89eaf2a1 100644 --- a/gracedb/superevents/query.py +++ b/gracedb/superevents/query.py @@ -1,3 +1,7 @@ +import datetime +import logging +import pytz + from django.db.models import Q from django.db.models.query import QuerySet @@ -8,14 +12,15 @@ from events.nltime import nlTimeExpression as nltime_ from events.query_utils import maybeRange, getLabelQ, RUN_MAP from .models import Superevent -import datetime -import pytz from pyparsing import Word, nums, Literal, CaselessLiteral, delimitedList, \ Suppress, QuotedString, Keyword, Combine, Or, Optional, OneOrMore, \ ZeroOrMore, alphas, alphanums, Regex, opAssoc, operatorPrecedence, \ oneOf, stringStart, stringEnd, FollowedBy, ParseResults, ParseException, \ CaselessKeyword +# Set up logger +logger = logging.getLogger(__name__) + # Function for parsing matched superevent ID tokens def parse_superevent_id(name, toks, filter_prefix=None): # toks = matched superevent id @@ -127,12 +132,12 @@ parameter_dicts = { 'keyword': 'created', 'keywordOptional': True, 'doRange': True, - 'value': Combine(Word(nums, exact=4) + Suppress('-') + \ + 'value': (Word(nums, exact=4) + Suppress('-') + \ Word(nums, exact=2) + Suppress('-') + Word(nums, exact=2) + \ Optional(Word(nums, exact=2) + Suppress(':') + \ Word(nums, exact=2) + Optional(Suppress(':') + \ Word(nums, exact=2)))).setParseAction(lambda toks: - pytz.utc.localize(datetime.datetime(*(map(int, toks))))), + pytz.utc.localize(datetime.datetime(*map(int, toks)))), 'parseAction': maybeRange("created"), }, # test OR category: test @@ -148,6 +153,7 @@ parameter_dicts = { }, } + # Compile a list of expressions to try to match expr_list = [] for k,p in parameter_dicts.iteritems():