From f734fd23aa569e5aa503e18f193043d4fbab6f82 Mon Sep 17 00:00:00 2001
From: Brian Moe <brian.moe@ligo.org>
Date: Tue, 24 Jan 2012 17:03:23 -0600
Subject: [PATCH] added runid: to search options

---
 gracedb/query.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gracedb/query.py b/gracedb/query.py
index 838ffffac..ec40a21b6 100644
--- a/gracedb/query.py
+++ b/gracedb/query.py
@@ -60,6 +60,21 @@ gpstimeRange = (gpstime + Suppress("..") + gpstime).setName("GPS time range")
 gpsQ = Optional(Suppress(Keyword("gpstime:"))) + (gpstime^gpstimeRange)
 gpsQ = gpsQ.setParseAction(maybeRange("gpstime"))
 
+# run ids
+runmap = {
+    "ER1" : (1011100000, 1020000000),
+    "S6"  : (931035296, 971622087),
+    "S6A" : (931035296, 935798487),
+    "S6B" : (937800015, 947260815),
+    "S6C" : (949449543, 961545687),
+    "S6D" : (956707143, 971622087),
+}
+runid = Or(map(CaselessLiteral, runmap.keys())).setName("run id")
+#runidList = OneOrMore(runid).setName("run id list")
+runQ = (Optional(Suppress(Keyword("runid:"))) + runid)
+runQ = runQ.setParseAction(lambda toks: ("gpstime", Q(gpstime__range=runmap[toks[0]])))
+                          #lambda toks: ("gpstime", Q("gpstime__range": runmap[toks[0]])) )
+
 # Analysis Groups
 groupNames = [group.name for group in models.Group.objects.all()]
 group = Or(map(CaselessLiteral, groupNames)).setName("analysis group name")
@@ -142,7 +157,7 @@ labelQ = (Optional(Suppress(Keyword("label:"))) + labelQ_.copy())
 labelQ.setParseAction(lambda toks: ("label", toks[0]))
 
 
-q = (hasfarQ | gidQ | hidQ | tidQ | labelQ | atypeQ | groupQ | gpsQ | createdQ | submitterQ).setName("query term")
+q = (hasfarQ | gidQ | hidQ | tidQ | labelQ | atypeQ | groupQ | gpsQ | createdQ | submitterQ | runQ).setName("query term")
 
 def parseQuery(s):
     d={}
-- 
GitLab