diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aa420589a79406c7544f5edcea3874ba29475e7f..d44dd00060d68ca69050f0a9f804c3b49e5d4c65 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,15 +33,15 @@ Python 2.7 POCL:
     reports:
       junit: test/pytest.xml
 
-Python 3.6 POCL:
+Python 3 POCL:
   script:
-  - export PY_EXE=python3.6
+  - export PY_EXE=python3
   - export PYOPENCL_TEST=portable
   - export EXTRA_INSTALL="pybind11 numpy mako"
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
-  - python3.6
+  - python3
   - pocl
   except:
   - tags
@@ -49,31 +49,15 @@ Python 3.6 POCL:
     reports:
       junit: test/pytest.xml
 
-Python 3.7 POCL:
+Python 3 Titan X:
   script:
-  - export PY_EXE=python3.7
-  - export PYOPENCL_TEST=portable
-  - export EXTRA_INSTALL="pybind11 numpy mako"
-  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
-  - ". ./build-and-test-py-project.sh"
-  tags:
-  - python3.7
-  - pocl
-  except:
-  - tags
-  artifacts:
-    reports:
-      junit: test/pytest.xml
-
-Python 3.7 Titan X:
-  script:
-  - py_version=3.7
+  - py_version=3
   - export PYOPENCL_TEST=nvi:titan
   - EXTRA_INSTALL="pybind11 numpy mako"
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
-  - python3.7
+  - python3
   - nvidia-titan-x
   except:
   - tags
@@ -82,7 +66,7 @@ Python 3.7 Titan X:
     reports:
       junit: test/pytest.xml
 
-Python 3.5 Conda:
+Python 3.6 Conda:
   script:
   # Disable caching to ensure SymEngine code generation is exercised.
   - export SUMPY_NO_CACHE=1
@@ -105,7 +89,7 @@ Documentation:
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-docs.sh
   - ". ./build-docs.sh"
   tags:
-  - python3.5
+  - python3
   only:
   - master
 
@@ -114,7 +98,7 @@ Flake8:
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/prepare-and-run-flake8.sh
   - ". ./prepare-and-run-flake8.sh sumpy test"
   tags:
-  - python3.5
+  - python3
   except:
   - tags
 
diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml
index b2b8b1b47c08a0c809a666abce034ade305e1278..a696dc8de72fdf5d00e90ea9a326efdc3c2d019b 100644
--- a/.test-conda-env-py3.yml
+++ b/.test-conda-env-py3.yml
@@ -10,7 +10,7 @@ dependencies:
 - pocl
 - islpy
 - pyopencl
-- python=3.5
+- python=3.6
 - symengine=0.3.0
 - python-symengine=0.3.0
 # things not in here: loopy boxtree pymbolic pyfmmlib
diff --git a/sumpy/visualization.py b/sumpy/visualization.py
index 3a4dc8df66512fdf1da8e5e3c40fa1794e0bcfad..bf5f016b4c089be7723a2ff92c91530c998603c2 100644
--- a/sumpy/visualization.py
+++ b/sumpy/visualization.py
@@ -64,35 +64,35 @@ def separate_by_real_and_imag(data, real_only):
 
 
 def make_field_plotter_from_bbox(bbox, h, extend_factor=0):
-        """
-        :arg bbox: a tuple (low, high) of points represented as 1D numpy arrays
-            indicating the low and high ends of the extent of a bounding box.
-        :arg h: Either a number or a sequence of numbers indicating the desired
-            (approximate) grid spacing in all or each of the dimensions. If a
-            sequence, the length must match the number of dimensions.
-        :arg extend_factor: A floating point number indicating by what percentage
-            the plot area should be grown compared to *bbox*.
-        """
-        low, high = bbox
-
-        extent = (high-low) * (1 + extend_factor)
-        center = 0.5*(high+low)
-
-        dimensions = len(center)
-        from numbers import Number
-        if isinstance(h, Number):
-            h = (h,)*dimensions
-        else:
-            if len(h) != dimensions:
-                raise ValueError("length of 'h' must match number of dimensions")
+    """
+    :arg bbox: a tuple (low, high) of points represented as 1D numpy arrays
+        indicating the low and high ends of the extent of a bounding box.
+    :arg h: Either a number or a sequence of numbers indicating the desired
+        (approximate) grid spacing in all or each of the dimensions. If a
+        sequence, the length must match the number of dimensions.
+    :arg extend_factor: A floating point number indicating by what percentage
+        the plot area should be grown compared to *bbox*.
+    """
+    low, high = bbox
+
+    extent = (high-low) * (1 + extend_factor)
+    center = 0.5*(high+low)
+
+    dimensions = len(center)
+    from numbers import Number
+    if isinstance(h, Number):
+        h = (h,)*dimensions
+    else:
+        if len(h) != dimensions:
+            raise ValueError("length of 'h' must match number of dimensions")
 
-        from math import ceil
+    from math import ceil
 
-        npoints = tuple(
-                int(ceil(extent[i] / h[i]))
-                for i in range(dimensions))
+    npoints = tuple(
+            int(ceil(extent[i] / h[i]))
+            for i in range(dimensions))
 
-        return FieldPlotter(center, extent, npoints)
+    return FieldPlotter(center, extent, npoints)
 
 
 class FieldPlotter(object):