From 94a5d812c9980d4a60cea360c86b33103955e6d2 Mon Sep 17 00:00:00 2001
From: Duncan Macleod <duncan.macleod@ligo.org>
Date: Thu, 25 Apr 2019 20:47:11 +0100
Subject: [PATCH] gracedb: updated dict usage for python3

---
 gracedb/alerts/views.py                     |  6 ++----
 gracedb/api/v1/events/views.py              |  4 ++--
 gracedb/api/v1/superevents/url_templates.py |  6 +++---
 gracedb/events/tests/test_label_search.py   |  2 +-
 gracedb/ligoauth/middleware.py              |  2 +-
 gracedb/search/query/superevents.py         | 10 +++++-----
 gracedb/superevents/mixins.py               |  2 +-
 gracedb/superevents/utils.py                |  6 +++---
 gracedb/templates/gracedb/performance.html  |  4 ++--
 9 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/gracedb/alerts/views.py b/gracedb/alerts/views.py
index 0ea11cce0..df94588a2 100644
--- a/gracedb/alerts/views.py
+++ b/gracedb/alerts/views.py
@@ -65,8 +65,7 @@ class CreateNotificationView(MultipleFormView):
         return kw
 
     def form_valid(self, form):
-        if form.cleaned_data.has_key('key_field'):
-            form.cleaned_data.pop('key_field')
+        form.cleaned_data.pop('key_field', None)
 
         # Add user (from request) and category (stored on form class) to
         # the form instance, then save
@@ -169,8 +168,7 @@ class CreateContactView(MultipleFormView):
     def form_valid(self, form):
 
         # Remove key_field, add user, and save form
-        if form.cleaned_data.has_key('key_field'):
-            form.cleaned_data.pop('key_field')
+        form.cleaned_data.pop('key_field', None)
         form.instance.user = self.request.user
         form.save()
 
diff --git a/gracedb/api/v1/events/views.py b/gracedb/api/v1/events/views.py
index bfbd37e8c..c3a4641c3 100644
--- a/gracedb/api/v1/events/views.py
+++ b/gracedb/api/v1/events/views.py
@@ -489,7 +489,7 @@ class EventList(InheritPermissionsAPIView):
         # TP (21 Nov 2017): Hack to allow basic event submission without
         # labels to function with versions of gracedb-client before 1.26.
         # Should be removed eventually.
-        if (request.data.has_key('labels') and request.data['labels'] == ''):
+        if (request.data.get('labels') == ''):
             request.data.pop('labels', None)
 
         form = CreateEventForm(request.data, request.data)
@@ -746,7 +746,7 @@ class EventNeighbors(InheritPermissionsAPIView):
     # and TSV renderers.
     @event_and_auth_required
     def get(self, request, event):
-        if request.query_params.has_key('neighborhood'):
+        if 'neighborhood' in request.query_params:
             delta = request.query_params['neighborhood']
             try:
                 if delta.find(',') < 0:
diff --git a/gracedb/api/v1/superevents/url_templates.py b/gracedb/api/v1/superevents/url_templates.py
index 49433e0bb..9085b757a 100644
--- a/gracedb/api/v1/superevents/url_templates.py
+++ b/gracedb/api/v1/superevents/url_templates.py
@@ -60,12 +60,12 @@ def construct_url_templates(request=None):
     #  keys are like '{view_name}-template'
     #  values are URLs with placeholder parameters
     templates = {view_name + '-template': sr(view_name, args=args)
-        for view_name, args in views.iteritems()}
+        for view_name, args in views.items()}
 
     # Replace URL placeholder parameters with string formatting placeholders
     #   Ex: replace 'G1234' with '{graceid}'
-    for k,v in templates.iteritems():
-        for pattern,placeholder in PH.iteritems():
+    for k,v in templates.items():
+        for pattern,placeholder in PH.items():
             if placeholder in v:
                 v = v.replace(placeholder, "{{{0}}}".format(pattern))
         templates[k] = v
diff --git a/gracedb/events/tests/test_label_search.py b/gracedb/events/tests/test_label_search.py
index 3219c5653..14063ae50 100644
--- a/gracedb/events/tests/test_label_search.py
+++ b/gracedb/events/tests/test_label_search.py
@@ -53,7 +53,7 @@ class LabelSearchTestCase(TestCase):
                 Labelling.objects.create(event=e, label=label, creator=submitter)
 
     def test_all_queries(self):
-        for key, d in QUERY_CASES.iteritems():
+        for key, d in QUERY_CASES.items():
             print "Checking %s ... " % key
             # Explicitly search for test events
             query = 'Test ' + d['query']
diff --git a/gracedb/ligoauth/middleware.py b/gracedb/ligoauth/middleware.py
index a4b879fbf..e08bd5f64 100644
--- a/gracedb/ligoauth/middleware.py
+++ b/gracedb/ligoauth/middleware.py
@@ -125,7 +125,7 @@ class ControlRoomMiddleware(object):
         user_ip = self.get_client_ip(request)
 
         # Add user to control room group(s)
-        for ifo, ip in settings.CONTROL_ROOM_IPS.iteritems():
+        for ifo, ip in settings.CONTROL_ROOM_IPS.items():
             if (ip == user_ip):
                 control_room_group = DjangoGroup.objects.get(name=
                     (ifo.lower() + self.control_room_group_suffix))
diff --git a/gracedb/search/query/superevents.py b/gracedb/search/query/superevents.py
index b6c34aa11..fae5156e7 100644
--- a/gracedb/search/query/superevents.py
+++ b/gracedb/search/query/superevents.py
@@ -227,21 +227,21 @@ parameter_dicts = {
 
 # Compile a list of expressions to try to match
 expr_list = []
-for k,p in parameter_dicts.iteritems():
+for k,p in parameter_dicts.items():
 
     # Define val and set name
     val = p['value']
     val.setName(k)
 
     # Add range with format: parameter .. parameter
-    if p.has_key('doRange') and p['doRange']:
+    if p.get('doRange'):
         range_val = val + Suppress("..") + val
         val ^= range_val
 
     # Add keyword. Format is keyword: value
-    if p.has_key('keyword'):
+    if 'keyword' in p:
         if isinstance(p['keyword'], list):
-            if p.has_key('keywordOptional') and p['keywordOptional']:
+            if p.get('keywordOptional'):
                 keyword_list = [Optional(Suppress(Keyword(k + ":"))) for k in
                     p['keyword']]
             else:
@@ -249,7 +249,7 @@ for k,p in parameter_dicts.iteritems():
             keyword = reduce(lambda x,y: x^y, keyword_list)
         else:
             keyword = Suppress(Keyword(p['keyword'] + ":"))
-            if p.has_key('keywordOptional') and p['keywordOptional']:
+            if p.get('keywordOptional'):
                 keyword = Optional(keyword)
 
         # Combine keyword and value into a single expression
diff --git a/gracedb/superevents/mixins.py b/gracedb/superevents/mixins.py
index 7d62075b3..a7cf26adb 100644
--- a/gracedb/superevents/mixins.py
+++ b/gracedb/superevents/mixins.py
@@ -220,7 +220,7 @@ class ConfirmGwFormMixin(ContextMixin):
             'is_test': 'superevents.confirm_gw_test_superevent',
             'is_mdc': 'superevents.confirm_gw_mdc_superevent',
         }
-        for method_name, perm_name in method_perm_pairs.iteritems():
+        for method_name, perm_name in method_perm_pairs.items():
             is_category = getattr(self.object, method_name)
             if (is_category() and self.request.user.has_perm(perm_name)):
                 context['show_gw_status_form'] = True
diff --git a/gracedb/superevents/utils.py b/gracedb/superevents/utils.py
index cec67f820..6422150ce 100644
--- a/gracedb/superevents/utils.py
+++ b/gracedb/superevents/utils.py
@@ -130,13 +130,13 @@ def update_superevent(superevent, updater, add_log_message=True,
 
     # Extract "updatable" superevent params from kwargs
     param_names = ['t_start', 't_0', 't_end', 'preferred_event']
-    new_params = {k: v for k,v in kwargs.iteritems() if k in param_names}
+    new_params = {k: v for k,v in kwargs.items() if k in param_names}
 
     # Get old parameters
     old_params = {k: getattr(superevent, k) for k in new_params.keys()}
 
     # Update superevent object
-    for k,v in new_params.iteritems():
+    for k,v in new_params.items():
         setattr(superevent, k, v)
     superevent.save()
 
@@ -709,7 +709,7 @@ def update_signoff(signoff, user, status, comment, add_log_message=True,
     superevent = signoff.superevent
 
     # Update signoff values
-    for k,v in updated_attributes.iteritems():
+    for k,v in updated_attributes.items():
         setattr(signoff, k, v)
     signoff.save(update_fields=list(updated_attributes))
 
diff --git a/gracedb/templates/gracedb/performance.html b/gracedb/templates/gracedb/performance.html
index 2cf558bd6..fdaf47909 100644
--- a/gracedb/templates/gracedb/performance.html
+++ b/gracedb/templates/gracedb/performance.html
@@ -25,7 +25,7 @@
     <h4>Details</h4>
     <table style="border-spacing:0px;">
         <tr> <th>Status</th> <th>Number of responses</th> </tr>
-        {% for key, value in totals_by_status.create.iteritems %}
+        {% for key, value in totals_by_status.create.items %}
         <tr> <td> {{ key }} </td> <td> {{ value }} </td> </tr>
         {% endfor %}
     </table>
@@ -45,7 +45,7 @@
     <h4>Details</h4>
     <table style="border-spacing:0px;">
         <tr> <th>Status</th> <th>Number of responses</th> </tr>
-        {% for key, value in totals_by_status.annotate.iteritems %}
+        {% for key, value in totals_by_status.annotate.items %}
         <tr> <td> {{ key }} </td> <td> {{ value }} </td> </tr>
         {% endfor %}
     </table>
-- 
GitLab