From e3b4986dc250686a3ee389f241e76dc9dc4332e1 Mon Sep 17 00:00:00 2001
From: Alexandru Fikl <alexfikl@gmail.com>
Date: Fri, 12 Jul 2024 17:06:08 +0300
Subject: [PATCH] ruff: fix isort issues

---
 examples/from_firedrake.py                    |  7 ++-
 examples/plot-connectivity.py                 |  8 +++-
 examples/simple-dg.py                         | 21 ++++++---
 examples/to_firedrake.py                      | 17 +++++--
 meshmode/array_context.py                     | 11 +++--
 meshmode/discretization/__init__.py           |  8 +++-
 .../discretization/connection/__init__.py     | 31 +++++++++----
 meshmode/discretization/connection/chained.py | 11 +++--
 meshmode/discretization/connection/direct.py  | 18 ++++++--
 meshmode/discretization/connection/face.py    | 12 +++--
 meshmode/discretization/connection/modal.py   |  9 ++--
 .../connection/opposite_face.py               |  8 +++-
 .../discretization/connection/projection.py   | 18 +++++---
 .../discretization/connection/refinement.py   |  4 +-
 .../discretization/connection/same_mesh.py    |  7 ++-
 meshmode/discretization/poly_element.py       | 12 +++--
 meshmode/discretization/visualization.py      | 40 ++++++++++++-----
 meshmode/distributed.py                       |  3 +-
 meshmode/dof_array.py                         | 22 +++++++---
 meshmode/interop/firedrake/__init__.py        | 10 +++--
 meshmode/interop/firedrake/connection.py      | 12 +++--
 meshmode/interop/firedrake/mesh.py            | 18 +++++---
 meshmode/interop/nodal_dg.py                  |  3 +-
 meshmode/mesh/__init__.py                     | 19 ++++++--
 meshmode/mesh/generation.py                   |  6 +--
 meshmode/mesh/io.py                           | 19 ++++++--
 meshmode/mesh/processing.py                   | 26 +++++++++--
 meshmode/mesh/refinement/no_adjacency.py      |  6 ++-
 meshmode/mesh/refinement/utils.py             |  6 ++-
 meshmode/mesh/visualization.py                | 18 ++++++--
 test/test_array.py                            | 10 +++--
 test/test_chained.py                          | 24 +++++-----
 test/test_connection.py                       | 10 +++--
 test/test_discretization.py                   |  3 +-
 test/test_firedrake_interop.py                | 28 +++++++++---
 test/test_mesh.py                             | 20 ++++++---
 test/test_meshmode.py                         | 44 ++++++++++++++-----
 test/test_modal.py                            | 14 ++++--
 test/test_partition.py                        | 15 ++++---
 test/test_refinement.py                       |  7 ++-
 test/test_visualization.py                    |  8 +++-
 41 files changed, 428 insertions(+), 165 deletions(-)

diff --git a/examples/from_firedrake.py b/examples/from_firedrake.py
index 55419b48..e6e39ea1 100644
--- a/examples/from_firedrake.py
+++ b/examples/from_firedrake.py
@@ -39,7 +39,12 @@ def main(visualize=True):
         return 0
 
     from firedrake import (
-        Function, FunctionSpace, SpatialCoordinate, UnitSquareMesh, cos)
+        Function,
+        FunctionSpace,
+        SpatialCoordinate,
+        UnitSquareMesh,
+        cos,
+    )
 
     from meshmode.interop.firedrake import build_connection_from_firedrake
 
diff --git a/examples/plot-connectivity.py b/examples/plot-connectivity.py
index c4a4fc31..ce27d5db 100644
--- a/examples/plot-connectivity.py
+++ b/examples/plot-connectivity.py
@@ -14,7 +14,10 @@ def main():
     actx = PyOpenCLArrayContext(queue)
 
     from meshmode.mesh.generation import (  # noqa: F401
-        generate_icosahedron, generate_sphere, generate_torus)
+        generate_icosahedron,
+        generate_sphere,
+        generate_torus,
+    )
 
     #mesh = generate_sphere(1, order=order)
     mesh = generate_icosahedron(1, order=order)
@@ -22,7 +25,8 @@ def main():
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.poly_element import (
-        PolynomialWarpAndBlend3DRestrictingGroupFactory)
+        PolynomialWarpAndBlend3DRestrictingGroupFactory,
+    )
 
     discr = Discretization(
             actx, mesh, PolynomialWarpAndBlend3DRestrictingGroupFactory(order))
diff --git a/examples/simple-dg.py b/examples/simple-dg.py
index a0eda7a4..42fc87de 100644
--- a/examples/simple-dg.py
+++ b/examples/simple-dg.py
@@ -29,8 +29,11 @@ import numpy.linalg as la  # noqa
 import pyopencl as cl
 import pyopencl.array as cla  # noqa
 from arraycontext import (
-    ArrayContainer, dataclass_array_container, map_array_container,
-    with_container_arithmetic)
+    ArrayContainer,
+    dataclass_array_container,
+    map_array_container,
+    with_container_arithmetic,
+)
 from pytools import log_process, memoize_method
 from pytools.obj_array import flat_obj_array, make_obj_array
 
@@ -71,7 +74,8 @@ class DGDiscretization:
 
         from meshmode.discretization import Discretization
         from meshmode.discretization.poly_element import (
-            PolynomialWarpAndBlend2DRestrictingGroupFactory)
+            PolynomialWarpAndBlend2DRestrictingGroupFactory,
+        )
         self.group_factory = PolynomialWarpAndBlend2DRestrictingGroupFactory(
                 order=order)
         self.volume_discr = Discretization(actx, mesh, self.group_factory)
@@ -100,7 +104,9 @@ class DGDiscretization:
     @memoize_method
     def interior_faces_connection(self):
         from meshmode.discretization.connection import (
-            FACE_RESTR_INTERIOR, make_face_restriction)
+            FACE_RESTR_INTERIOR,
+            make_face_restriction,
+        )
         return make_face_restriction(
                         self.volume_discr._setup_actx,
                         self.volume_discr,
@@ -118,7 +124,9 @@ class DGDiscretization:
     @memoize_method
     def all_faces_connection(self):
         from meshmode.discretization.connection import (
-            FACE_RESTR_ALL, make_face_restriction)
+            FACE_RESTR_ALL,
+            make_face_restriction,
+        )
         return make_face_restriction(
                         self.volume_discr._setup_actx,
                         self.volume_discr,
@@ -128,8 +136,7 @@ class DGDiscretization:
 
     @memoize_method
     def get_to_all_face_embedding(self, where):
-        from meshmode.discretization.connection import (
-            make_face_to_all_faces_embedding)
+        from meshmode.discretization.connection import make_face_to_all_faces_embedding
 
         faces_conn = self.get_connection("vol", where)
         return make_face_to_all_faces_embedding(
diff --git a/examples/to_firedrake.py b/examples/to_firedrake.py
index d8ca8dc3..cb15bccb 100644
--- a/examples/to_firedrake.py
+++ b/examples/to_firedrake.py
@@ -65,7 +65,8 @@ def main():
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.poly_element import (
-        InterpolatoryQuadratureSimplexGroupFactory)
+        InterpolatoryQuadratureSimplexGroupFactory,
+    )
     group_factory = InterpolatoryQuadratureSimplexGroupFactory(order=order)
     discr = Discretization(actx, mesh, group_factory)
 
@@ -92,8 +93,18 @@ def main():
 
     # set up dirichlet laplace problem in fd and solve
     from firedrake import (
-        Constant, DirichletBC, Function, FunctionSpace, TestFunction, TrialFunction,
-        dx, grad, inner, project, solve)
+        Constant,
+        DirichletBC,
+        Function,
+        FunctionSpace,
+        TestFunction,
+        TrialFunction,
+        dx,
+        grad,
+        inner,
+        project,
+        solve,
+    )
 
     # because it's easier to write down the variational problem,
     # we're going to project from our "DG" space
diff --git a/meshmode/array_context.py b/meshmode/array_context.py
index 731fd060..8b749e8d 100644
--- a/meshmode/array_context.py
+++ b/meshmode/array_context.py
@@ -30,10 +30,13 @@ from warnings import warn
 
 from arraycontext import (
     PyOpenCLArrayContext as PyOpenCLArrayContextBase,
-    PytatoPyOpenCLArrayContext as PytatoPyOpenCLArrayContextBase)
+    PytatoPyOpenCLArrayContext as PytatoPyOpenCLArrayContextBase,
+)
 from arraycontext.pytest import (
     _PytestPyOpenCLArrayContextFactoryWithClass,
-    _PytestPytatoPyOpenCLArrayContextFactory, register_pytest_array_context_factory)
+    _PytestPytatoPyOpenCLArrayContextFactory,
+    register_pytest_array_context_factory,
+)
 
 
 def thaw(actx, ary):
@@ -157,7 +160,9 @@ def _transform_loopy_inner(t_unit):
     # {{{ element/dof iname tag
 
     from meshmode.transform_metadata import (
-        ConcurrentDOFInameTag, ConcurrentElementInameTag)
+        ConcurrentDOFInameTag,
+        ConcurrentElementInameTag,
+    )
     el_inames = [iname.name
             for iname in default_ep.inames.values()
             if ConcurrentElementInameTag() in iname.tags]
diff --git a/meshmode/discretization/__init__.py b/meshmode/discretization/__init__.py
index ba8df8dd..db1b8f47 100644
--- a/meshmode/discretization/__init__.py
+++ b/meshmode/discretization/__init__.py
@@ -38,8 +38,12 @@ from pytools.obj_array import make_obj_array
 from meshmode.dof_array import DOFArray as _DOFArray
 from meshmode.mesh import Mesh as _Mesh, MeshElementGroup as _MeshElementGroup
 from meshmode.transform_metadata import (
-    ConcurrentDOFInameTag, ConcurrentElementInameTag, DiscretizationDOFAxisTag,
-    DiscretizationElementAxisTag, FirstAxisIsElementsTag)
+    ConcurrentDOFInameTag,
+    ConcurrentElementInameTag,
+    DiscretizationDOFAxisTag,
+    DiscretizationElementAxisTag,
+    FirstAxisIsElementsTag,
+)
 
 
 __doc__ = """
diff --git a/meshmode/discretization/connection/__init__.py b/meshmode/discretization/connection/__init__.py
index 00fa51ea..2d08e574 100644
--- a/meshmode/discretization/connection/__init__.py
+++ b/meshmode/discretization/connection/__init__.py
@@ -28,20 +28,33 @@ import logging
 from arraycontext import ArrayContext
 
 from meshmode.discretization.connection.chained import (
-    ChainedDiscretizationConnection, flatten_chained_connection)
+    ChainedDiscretizationConnection,
+    flatten_chained_connection,
+)
 from meshmode.discretization.connection.direct import (
-    DirectDiscretizationConnection, DiscretizationConnection,
-    DiscretizationConnectionElementGroup, IdentityDiscretizationConnection,
-    InterpolationBatch)
+    DirectDiscretizationConnection,
+    DiscretizationConnection,
+    DiscretizationConnectionElementGroup,
+    IdentityDiscretizationConnection,
+    InterpolationBatch,
+)
 from meshmode.discretization.connection.face import (
-    FACE_RESTR_ALL, FACE_RESTR_INTERIOR, make_face_restriction,
-    make_face_to_all_faces_embedding)
+    FACE_RESTR_ALL,
+    FACE_RESTR_INTERIOR,
+    make_face_restriction,
+    make_face_to_all_faces_embedding,
+)
 from meshmode.discretization.connection.modal import (
-    ModalToNodalDiscretizationConnection, NodalToModalDiscretizationConnection)
+    ModalToNodalDiscretizationConnection,
+    NodalToModalDiscretizationConnection,
+)
 from meshmode.discretization.connection.opposite_face import (
-    make_opposite_face_connection, make_partition_connection)
+    make_opposite_face_connection,
+    make_partition_connection,
+)
 from meshmode.discretization.connection.projection import (
-    L2ProjectionInverseDiscretizationConnection)
+    L2ProjectionInverseDiscretizationConnection,
+)
 from meshmode.discretization.connection.refinement import make_refinement_connection
 from meshmode.discretization.connection.same_mesh import make_same_mesh_connection
 
diff --git a/meshmode/discretization/connection/chained.py b/meshmode/discretization/connection/chained.py
index 79dea7cb..51ef4f24 100644
--- a/meshmode/discretization/connection/chained.py
+++ b/meshmode/discretization/connection/chained.py
@@ -196,8 +196,11 @@ def flatten_chained_connection(actx, connection):
         :class:`~meshmode.discretization.connection.DirectDiscretizationConnection`.
     """
     from meshmode.discretization.connection import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup,
-        IdentityDiscretizationConnection, make_same_mesh_connection)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+        IdentityDiscretizationConnection,
+        make_same_mesh_connection,
+    )
 
     if not hasattr(connection, "connections"):
         return connection
@@ -283,7 +286,9 @@ def make_full_resample_matrix(actx, connection):
         `(connection.from_discr.ndofs, connection.to_discr.ndofs)`.
     """
     from meshmode.discretization.connection.direct import (
-        DirectDiscretizationConnection, make_direct_full_resample_matrix)
+        DirectDiscretizationConnection,
+        make_direct_full_resample_matrix,
+    )
 
     if isinstance(connection, DirectDiscretizationConnection):
         return make_direct_full_resample_matrix(actx, connection)
diff --git a/meshmode/discretization/connection/direct.py b/meshmode/discretization/connection/direct.py
index d466c0d5..ffc3d153 100644
--- a/meshmode/discretization/connection/direct.py
+++ b/meshmode/discretization/connection/direct.py
@@ -28,16 +28,26 @@ import numpy as np
 
 import loopy as lp
 from arraycontext import (
-    ArrayContext, ArrayOrContainerT, ArrayT, NotAnArrayContainerError,
-    deserialize_container, make_loopy_program, serialize_container, tag_axes)
+    ArrayContext,
+    ArrayOrContainerT,
+    ArrayT,
+    NotAnArrayContainerError,
+    deserialize_container,
+    make_loopy_program,
+    serialize_container,
+    tag_axes,
+)
 from arraycontext.metadata import NameHint
 from pytools import keyed_memoize_method, memoize_in, memoize_method
 
 from meshmode.discretization import Discretization, ElementGroupBase
 from meshmode.dof_array import DOFArray
 from meshmode.transform_metadata import (
-    ConcurrentDOFInameTag, ConcurrentElementInameTag, DiscretizationDOFAxisTag,
-    DiscretizationElementAxisTag)
+    ConcurrentDOFInameTag,
+    ConcurrentElementInameTag,
+    DiscretizationDOFAxisTag,
+    DiscretizationElementAxisTag,
+)
 
 
 def _reshape_and_preserve_tags(
diff --git a/meshmode/discretization/connection/face.py b/meshmode/discretization/connection/face.py
index 875c3d8d..c446e261 100644
--- a/meshmode/discretization/connection/face.py
+++ b/meshmode/discretization/connection/face.py
@@ -67,8 +67,10 @@ class _ConnectionBatchData:
 def _build_boundary_connection(actx, vol_discr, bdry_discr, connection_data,
         per_face_groups):
     from meshmode.discretization.connection.direct import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup,
-        InterpolationBatch)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+        InterpolationBatch,
+    )
 
     ibdry_grp = 0
     batches = []
@@ -408,8 +410,10 @@ def make_face_to_all_faces_embedding(actx, faces_connection, all_faces_discr,
                 "same number of groups")
 
     from meshmode.discretization.connection import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup,
-        InterpolationBatch)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+        InterpolationBatch,
+    )
 
     i_faces_grp = 0
 
diff --git a/meshmode/discretization/connection/modal.py b/meshmode/discretization/connection/modal.py
index 3897f883..3b4f80e3 100644
--- a/meshmode/discretization/connection/modal.py
+++ b/meshmode/discretization/connection/modal.py
@@ -28,14 +28,17 @@ import numpy.linalg as la
 
 import modepy as mp
 from arraycontext import (
-    NotAnArrayContainerError, deserialize_container, serialize_container, tag_axes)
+    NotAnArrayContainerError,
+    deserialize_container,
+    serialize_container,
+    tag_axes,
+)
 from pytools import keyed_memoize_in
 
 from meshmode.discretization import InterpolatoryElementGroupBase
 from meshmode.discretization.connection.direct import DiscretizationConnection
 from meshmode.discretization.poly_element import QuadratureSimplexElementGroup
-from meshmode.transform_metadata import (
-    DiscretizationDOFAxisTag, FirstAxisIsElementsTag)
+from meshmode.transform_metadata import DiscretizationDOFAxisTag, FirstAxisIsElementsTag
 
 
 class NodalToModalDiscretizationConnection(DiscretizationConnection):
diff --git a/meshmode/discretization/connection/opposite_face.py b/meshmode/discretization/connection/opposite_face.py
index 5d248a70..7e4455a3 100644
--- a/meshmode/discretization/connection/opposite_face.py
+++ b/meshmode/discretization/connection/opposite_face.py
@@ -511,7 +511,9 @@ def make_opposite_face_connection(actx, volume_to_bdry_conn):
                     groups[i_tgt_grp].extend(batches)
 
     from meshmode.discretization.connection import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+    )
     return DirectDiscretizationConnection(
             from_discr=bdry_discr,
             to_discr=bdry_discr,
@@ -546,7 +548,9 @@ def make_partition_connection(actx, *, local_bdry_conn,
     """
 
     from meshmode.discretization.connection import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+    )
     from meshmode.mesh.processing import find_group_indices
 
     local_vol_mesh = local_bdry_conn.from_discr.mesh
diff --git a/meshmode/discretization/connection/projection.py b/meshmode/discretization/connection/projection.py
index 5c13d8da..efa143ac 100644
--- a/meshmode/discretization/connection/projection.py
+++ b/meshmode/discretization/connection/projection.py
@@ -24,14 +24,18 @@ import numpy as np
 
 import loopy as lp
 from arraycontext import (
-    NotAnArrayContainerError, deserialize_container, make_loopy_program,
-    serialize_container)
+    NotAnArrayContainerError,
+    deserialize_container,
+    make_loopy_program,
+    serialize_container,
+)
 from pytools import keyed_memoize_in, keyed_memoize_method, memoize_in
 
-from meshmode.discretization.connection.chained import (
-    ChainedDiscretizationConnection)
+from meshmode.discretization.connection.chained import ChainedDiscretizationConnection
 from meshmode.discretization.connection.direct import (
-    DirectDiscretizationConnection, DiscretizationConnection)
+    DirectDiscretizationConnection,
+    DiscretizationConnection,
+)
 from meshmode.transform_metadata import FirstAxisIsElementsTag
 
 
@@ -185,7 +189,9 @@ class L2ProjectionInverseDiscretizationConnection(DiscretizationConnection):
                 name="conn_projection_knl"
             )
             from meshmode.transform_metadata import (
-                ConcurrentDOFInameTag, ConcurrentElementInameTag)
+                ConcurrentDOFInameTag,
+                ConcurrentElementInameTag,
+            )
             return lp.tag_inames(t_unit, {
                     "iel_init": ConcurrentElementInameTag(),
                     "idof_init": ConcurrentDOFInameTag(),
diff --git a/meshmode/discretization/connection/refinement.py b/meshmode/discretization/connection/refinement.py
index f6252e32..f3cf63ce 100644
--- a/meshmode/discretization/connection/refinement.py
+++ b/meshmode/discretization/connection/refinement.py
@@ -129,7 +129,9 @@ def make_refinement_connection(actx, refiner, coarse_discr, group_factory):
         for discretizing the fine mesh.
     """
     from meshmode.discretization.connection import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+    )
 
     coarse_mesh = refiner.get_previous_mesh()
     fine_mesh = refiner.get_current_mesh()
diff --git a/meshmode/discretization/connection/same_mesh.py b/meshmode/discretization/connection/same_mesh.py
index 9cf2b24b..2b88aa4e 100644
--- a/meshmode/discretization/connection/same_mesh.py
+++ b/meshmode/discretization/connection/same_mesh.py
@@ -29,8 +29,11 @@ from meshmode.transform_metadata import DiscretizationElementAxisTag
 
 def make_same_mesh_connection(actx, to_discr, from_discr):
     from meshmode.discretization.connection.direct import (
-        DirectDiscretizationConnection, DiscretizationConnectionElementGroup,
-        IdentityDiscretizationConnection, InterpolationBatch)
+        DirectDiscretizationConnection,
+        DiscretizationConnectionElementGroup,
+        IdentityDiscretizationConnection,
+        InterpolationBatch,
+    )
 
     if from_discr.mesh is not to_discr.mesh:
         raise ValueError("from_discr and to_discr must be based on "
diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py
index 7860de5a..2d020bbb 100644
--- a/meshmode/discretization/poly_element.py
+++ b/meshmode/discretization/poly_element.py
@@ -34,12 +34,18 @@ from modepy import Basis
 from pytools import memoize_method, memoize_on_first_arg
 
 from meshmode.discretization import (
-    ElementGroupBase, ElementGroupFactory, InterpolatoryElementGroupBase,
-    ModalElementGroupBase, NodalElementGroupBase, NoninterpolatoryElementGroupError)
+    ElementGroupBase,
+    ElementGroupFactory,
+    InterpolatoryElementGroupBase,
+    ModalElementGroupBase,
+    NodalElementGroupBase,
+    NoninterpolatoryElementGroupError,
+)
 from meshmode.mesh import (
     MeshElementGroup as _MeshElementGroup,
     SimplexElementGroup as _MeshSimplexElementGroup,
-    TensorProductElementGroup as _MeshTensorProductElementGroup)
+    TensorProductElementGroup as _MeshTensorProductElementGroup,
+)
 
 
 __doc__ = """
diff --git a/meshmode/discretization/visualization.py b/meshmode/discretization/visualization.py
index c446fceb..4d556409 100644
--- a/meshmode/discretization/visualization.py
+++ b/meshmode/discretization/visualization.py
@@ -63,7 +63,10 @@ def separate_by_real_and_imag(names_and_fields, real_only):
         if isinstance(field, np.ndarray) and field.dtype.char == "O":
             assert len(field.shape) == 1
             from pytools.obj_array import (
-                obj_array_imag_copy, obj_array_real_copy, obj_array_vectorize)
+                obj_array_imag_copy,
+                obj_array_real_copy,
+                obj_array_vectorize,
+            )
 
             if field[0].dtype.kind == "c":
                 if real_only:
@@ -430,7 +433,8 @@ class VTKLagrangeConnectivity(VTKConnectivity):
         if isinstance(grp.mesh_el_group, SimplexElementGroup):
             from pyvisfile.vtk.vtk_ordering import (
                 vtk_lagrange_simplex_node_tuples,
-                vtk_lagrange_simplex_node_tuples_to_permutation)
+                vtk_lagrange_simplex_node_tuples_to_permutation,
+            )
 
             node_tuples = vtk_lagrange_simplex_node_tuples(
                     grp.dim, grp.order, vtk_version=vtk_version)
@@ -443,7 +447,8 @@ class VTKLagrangeConnectivity(VTKConnectivity):
         elif isinstance(grp.mesh_el_group, TensorProductElementGroup):
             from pyvisfile.vtk.vtk_ordering import (
                 vtk_lagrange_quad_node_tuples,
-                vtk_lagrange_quad_node_tuples_to_permutation)
+                vtk_lagrange_quad_node_tuples_to_permutation,
+            )
 
             node_tuples = vtk_lagrange_quad_node_tuples(
                     grp.dim, grp.order, vtk_version=vtk_version)
@@ -743,8 +748,12 @@ class Visualizer:
             use_high_order = False
 
         from pyvisfile.vtk import (
-            VF_LIST_OF_COMPONENTS, AppendedDataXMLGenerator, DataArray,
-            ParallelXMLGenerator, UnstructuredGrid)
+            VF_LIST_OF_COMPONENTS,
+            AppendedDataXMLGenerator,
+            DataArray,
+            ParallelXMLGenerator,
+            UnstructuredGrid,
+        )
 
         nodes = self._vis_nodes_numpy()
 
@@ -1123,7 +1132,11 @@ class Visualizer:
         #   Paraview.
 
         from pyvisfile.xdmf import (
-            DataArray, GeometryType, Information, XdmfUnstructuredGrid)
+            DataArray,
+            GeometryType,
+            Information,
+            XdmfUnstructuredGrid,
+        )
 
         if self.vis_discr.ambient_dim == 2:
             geometry_type = GeometryType.XY
@@ -1202,6 +1215,7 @@ class Visualizer:
 
     def show_scalar_in_matplotlib_3d(self, field, **kwargs):
         import matplotlib.pyplot as plt
+
         # This import also registers the 3D projection.
         import mpl_toolkits.mplot3d.art3d as art3d
 
@@ -1294,10 +1308,12 @@ def make_visualizer(actx, discr, vis_order=None,
     else:
         if force_equidistant:
             from meshmode.discretization.poly_element import (
-                InterpolatoryEquidistantGroupFactory as VisGroupFactory)
+                InterpolatoryEquidistantGroupFactory as VisGroupFactory,
+            )
         else:
             from meshmode.discretization.poly_element import (
-                InterpolatoryEdgeClusteredGroupFactory as VisGroupFactory)
+                InterpolatoryEdgeClusteredGroupFactory as VisGroupFactory,
+            )
 
         vis_discr = discr.copy(actx=actx, group_factory=VisGroupFactory(vis_order))
 
@@ -1356,8 +1372,12 @@ def write_nodal_adjacency_vtk_file(file_name, mesh,
                                    compressor=None,
                                    overwrite=False):
     from pyvisfile.vtk import (
-        VF_LIST_OF_COMPONENTS, VTK_LINE, AppendedDataXMLGenerator, DataArray,
-        UnstructuredGrid)
+        VF_LIST_OF_COMPONENTS,
+        VTK_LINE,
+        AppendedDataXMLGenerator,
+        DataArray,
+        UnstructuredGrid,
+    )
 
     centroids = np.empty(
             (mesh.ambient_dim, mesh.nelements),
diff --git a/meshmode/distributed.py b/meshmode/distributed.py
index 18402bf4..df9e1de2 100644
--- a/meshmode/distributed.py
+++ b/meshmode/distributed.py
@@ -45,8 +45,7 @@ from arraycontext import ArrayContext
 
 from meshmode.discretization import ElementGroupFactory
 from meshmode.discretization.connection import DirectDiscretizationConnection
-from meshmode.mesh import (
-    InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, PartID)
+from meshmode.mesh import InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, PartID
 
 
 # This file needs to be importable without mpi4py. So don't be tempted to add
diff --git a/meshmode/dof_array.py b/meshmode/dof_array.py
index f72a4d04..72184e40 100644
--- a/meshmode/dof_array.py
+++ b/meshmode/dof_array.py
@@ -35,15 +35,23 @@ import numpy as np
 
 import loopy as lp
 from arraycontext import (
-    Array, ArrayContext, ArrayOrContainerT, NotAnArrayContainerError,
-    deserialize_container, make_loopy_program, mapped_over_array_containers,
-    multimapped_over_array_containers, rec_map_array_container,
-    rec_multimap_array_container, serialize_container, with_array_context,
-    with_container_arithmetic)
+    Array,
+    ArrayContext,
+    ArrayOrContainerT,
+    NotAnArrayContainerError,
+    deserialize_container,
+    make_loopy_program,
+    mapped_over_array_containers,
+    multimapped_over_array_containers,
+    rec_map_array_container,
+    rec_multimap_array_container,
+    serialize_container,
+    with_array_context,
+    with_container_arithmetic,
+)
 from pytools import MovedFunctionDeprecationWrapper, memoize_in, single_valued
 
-from meshmode.transform_metadata import (
-    ConcurrentDOFInameTag, ConcurrentElementInameTag)
+from meshmode.transform_metadata import ConcurrentDOFInameTag, ConcurrentElementInameTag
 
 
 __doc__ = """
diff --git a/meshmode/interop/firedrake/__init__.py b/meshmode/interop/firedrake/__init__.py
index eaf96581..ab34373a 100644
--- a/meshmode/interop/firedrake/__init__.py
+++ b/meshmode/interop/firedrake/__init__.py
@@ -22,10 +22,14 @@ THE SOFTWARE.
 
 
 from meshmode.interop.firedrake.connection import (
-    FiredrakeConnection, build_connection_from_firedrake,
-    build_connection_to_firedrake)
+    FiredrakeConnection,
+    build_connection_from_firedrake,
+    build_connection_to_firedrake,
+)
 from meshmode.interop.firedrake.mesh import (
-    export_mesh_to_firedrake, import_firedrake_mesh)
+    export_mesh_to_firedrake,
+    import_firedrake_mesh,
+)
 
 
 __all__ = ["build_connection_from_firedrake", "build_connection_to_firedrake",
diff --git a/meshmode/interop/firedrake/connection.py b/meshmode/interop/firedrake/connection.py
index 98b7892f..d11ab07d 100644
--- a/meshmode/interop/firedrake/connection.py
+++ b/meshmode/interop/firedrake/connection.py
@@ -34,11 +34,17 @@ from pytools import memoize_method
 
 from meshmode.discretization import Discretization, InterpolatoryElementGroupBase
 from meshmode.discretization.poly_element import (
-    ElementGroupFactory, default_simplex_group_factory)
+    ElementGroupFactory,
+    default_simplex_group_factory,
+)
 from meshmode.interop.firedrake.mesh import (
-    export_mesh_to_firedrake, import_firedrake_mesh)
+    export_mesh_to_firedrake,
+    import_firedrake_mesh,
+)
 from meshmode.interop.firedrake.reference_cell import (
-    get_affine_reference_simplex_mapping, get_finat_element_unit_nodes)
+    get_affine_reference_simplex_mapping,
+    get_finat_element_unit_nodes,
+)
 from meshmode.mesh.processing import get_simplex_element_flip_matrix
 
 
diff --git a/meshmode/interop/firedrake/mesh.py b/meshmode/interop/firedrake/mesh.py
index 736c30a4..ada0fff5 100644
--- a/meshmode/interop/firedrake/mesh.py
+++ b/meshmode/interop/firedrake/mesh.py
@@ -29,10 +29,19 @@ from modepy import PN, Simplex, basis_for_space, resampling_matrix
 from pytools import ProcessLogger
 
 from meshmode.interop.firedrake.reference_cell import (
-    get_affine_reference_simplex_mapping, get_finat_element_unit_nodes)
+    get_affine_reference_simplex_mapping,
+    get_finat_element_unit_nodes,
+)
 from meshmode.mesh import (
-    BTAG_ALL, BTAG_INDUCED_BOUNDARY, BoundaryAdjacencyGroup, InteriorAdjacencyGroup,
-    Mesh, NodalAdjacency, SimplexElementGroup, make_mesh)
+    BTAG_ALL,
+    BTAG_INDUCED_BOUNDARY,
+    BoundaryAdjacencyGroup,
+    InteriorAdjacencyGroup,
+    Mesh,
+    NodalAdjacency,
+    SimplexElementGroup,
+    make_mesh,
+)
 
 
 __doc__ = """
@@ -435,8 +444,7 @@ def _get_firedrake_orientations(fdrake_mesh, unflipped_group, vertices,
     if gdim == tdim:
         # If the co-dimension is 0, :mod:`meshmode` has a convenient
         # function to compute cell orientations
-        from meshmode.mesh.processing import (
-            find_volume_mesh_element_group_orientation)
+        from meshmode.mesh.processing import find_volume_mesh_element_group_orientation
 
         orient = find_volume_mesh_element_group_orientation(vertices,
                                                             unflipped_group)
diff --git a/meshmode/interop/nodal_dg.py b/meshmode/interop/nodal_dg.py
index 5afc6270..0891443d 100644
--- a/meshmode/interop/nodal_dg.py
+++ b/meshmode/interop/nodal_dg.py
@@ -158,7 +158,8 @@ class NodalDGContext:
 
         from meshmode.discretization import Discretization
         from meshmode.discretization.poly_element import (
-            PolynomialGivenNodesGroupFactory)
+            PolynomialGivenNodesGroupFactory,
+        )
         return Discretization(actx, mesh,
                 PolynomialGivenNodesGroupFactory(order, unit_nodes))
 
diff --git a/meshmode/mesh/__init__.py b/meshmode/mesh/__init__.py
index 3c2d16df..eb4f6e7a 100644
--- a/meshmode/mesh/__init__.py
+++ b/meshmode/mesh/__init__.py
@@ -23,8 +23,17 @@ THE SOFTWARE.
 from abc import ABC, abstractmethod
 from dataclasses import InitVar, dataclass, field, replace
 from typing import (
-    Any, ClassVar, Hashable, Iterable, Literal, Optional, Sequence, Tuple, Type,
-    Union)
+    Any,
+    ClassVar,
+    Hashable,
+    Iterable,
+    Literal,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+)
 from warnings import warn
 
 import numpy as np
@@ -775,8 +784,10 @@ def check_mesh_consistency(
         some fashion.
     """
     from meshmode import (
-        InconsistentAdjacencyError, InconsistentArrayDTypeError,
-        InconsistentMeshError)
+        InconsistentAdjacencyError,
+        InconsistentArrayDTypeError,
+        InconsistentMeshError,
+    )
 
     if node_vertex_consistency_tolerance is not False:
         _test_node_vertex_consistency(mesh, tol=node_vertex_consistency_tolerance)
diff --git a/meshmode/mesh/generation.py b/meshmode/mesh/generation.py
index 82486724..b9e207c4 100644
--- a/meshmode/mesh/generation.py
+++ b/meshmode/mesh/generation.py
@@ -1390,8 +1390,7 @@ def generate_box_mesh(
 
     if any(periodic):
         from meshmode import AffineMap
-        from meshmode.mesh.processing import (
-            BoundaryPairMapping, glue_mesh_boundaries)
+        from meshmode.mesh.processing import BoundaryPairMapping, glue_mesh_boundaries
         bdry_pair_mappings_and_tols = []
         for idim in range(dim):
             if periodic[idim]:
@@ -1591,8 +1590,7 @@ def generate_annular_cylinder_slice_mesh(
         from meshmode.mesh.tools import AffineMap
         aff_map = AffineMap(matrix, center - matrix @ center)
 
-        from meshmode.mesh.processing import (
-            BoundaryPairMapping, glue_mesh_boundaries)
+        from meshmode.mesh.processing import BoundaryPairMapping, glue_mesh_boundaries
         periodic_mesh = glue_mesh_boundaries(
             mesh, bdry_pair_mappings_and_tols=[
                 (BoundaryPairMapping("-theta", "+theta", aff_map), 1e-12)])
diff --git a/meshmode/mesh/io.py b/meshmode/mesh/io.py
index 84c0c863..77dc1836 100644
--- a/meshmode/mesh/io.py
+++ b/meshmode/mesh/io.py
@@ -23,8 +23,14 @@ THE SOFTWARE.
 import numpy as np
 
 from gmsh_interop.reader import (  # noqa: F401
-    FileSource, GmshMeshReceiverBase, GmshSimplexElementBase,
-    GmshTensorProductElementBase, LiteralSource, ScriptSource, ScriptWithFilesSource)
+    FileSource,
+    GmshMeshReceiverBase,
+    GmshSimplexElementBase,
+    GmshTensorProductElementBase,
+    LiteralSource,
+    ScriptSource,
+    ScriptWithFilesSource,
+)
 
 from meshmode.mesh import Mesh
 
@@ -152,7 +158,10 @@ class GmshMeshReceiver(GmshMeshReceiverBase):
         # }}}
 
         from meshmode.mesh import (
-            SimplexElementGroup, TensorProductElementGroup, make_mesh)
+            SimplexElementGroup,
+            TensorProductElementGroup,
+            make_mesh,
+        )
 
         bulk_el_types = set()
 
@@ -404,7 +413,9 @@ def from_vertices_and_simplices(
             raise ValueError("can only fix orientation of volume meshes")
 
         from meshmode.mesh.processing import (
-            find_volume_mesh_element_group_orientation, flip_element_group)
+            find_volume_mesh_element_group_orientation,
+            flip_element_group,
+        )
         orient = find_volume_mesh_element_group_orientation(vertices, grp)
         grp = flip_element_group(vertices, grp, orient < 0)
 
diff --git a/meshmode/mesh/processing.py b/meshmode/mesh/processing.py
index c28877da..45ab7557 100644
--- a/meshmode/mesh/processing.py
+++ b/meshmode/mesh/processing.py
@@ -25,7 +25,16 @@ THE SOFTWARE.
 from dataclasses import dataclass, replace
 from functools import reduce
 from typing import (
-    Callable, Dict, List, Literal, Mapping, Optional, Sequence, Tuple, Union)
+    Callable,
+    Dict,
+    List,
+    Literal,
+    Mapping,
+    Optional,
+    Sequence,
+    Tuple,
+    Union,
+)
 
 import numpy as np
 import numpy.linalg as la
@@ -33,9 +42,18 @@ import numpy.linalg as la
 import modepy as mp
 
 from meshmode.mesh import (
-    BTAG_PARTITION, BoundaryAdjacencyGroup, FacialAdjacencyGroup,
-    InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, MeshElementGroup, PartID,
-    TensorProductElementGroup, _FaceIDs, make_mesh)
+    BTAG_PARTITION,
+    BoundaryAdjacencyGroup,
+    FacialAdjacencyGroup,
+    InteriorAdjacencyGroup,
+    InterPartAdjacencyGroup,
+    Mesh,
+    MeshElementGroup,
+    PartID,
+    TensorProductElementGroup,
+    _FaceIDs,
+    make_mesh,
+)
 from meshmode.mesh.tools import AffineMap, find_point_permutation
 
 
diff --git a/meshmode/mesh/refinement/no_adjacency.py b/meshmode/mesh/refinement/no_adjacency.py
index 537090db..66be8744 100644
--- a/meshmode/mesh/refinement/no_adjacency.py
+++ b/meshmode/mesh/refinement/no_adjacency.py
@@ -88,8 +88,10 @@ class RefinerWithoutAdjacency(Refiner):
             inew_vertex = mesh.nvertices
 
         from meshmode.mesh.refinement.tessellate import (
-            get_group_midpoints, get_group_tessellated_nodes,
-            get_group_tessellation_info)
+            get_group_midpoints,
+            get_group_tessellated_nodes,
+            get_group_tessellation_info,
+        )
 
         for base_element_nr, grp in zip(mesh.base_element_nrs, mesh.groups):
             el_tess_info = get_group_tessellation_info(grp)
diff --git a/meshmode/mesh/refinement/utils.py b/meshmode/mesh/refinement/utils.py
index 9188be45..ce90d9a5 100644
--- a/meshmode/mesh/refinement/utils.py
+++ b/meshmode/mesh/refinement/utils.py
@@ -30,7 +30,11 @@ from typing import Optional
 import numpy as np
 
 from meshmode.mesh import (
-    Mesh, MeshElementGroup, SimplexElementGroup, TensorProductElementGroup)
+    Mesh,
+    MeshElementGroup,
+    SimplexElementGroup,
+    TensorProductElementGroup,
+)
 
 
 logger = logging.getLogger(__name__)
diff --git a/meshmode/mesh/visualization.py b/meshmode/mesh/visualization.py
index 6f32de7d..49091c9f 100644
--- a/meshmode/mesh/visualization.py
+++ b/meshmode/mesh/visualization.py
@@ -212,8 +212,16 @@ def write_vertex_vtk_file(
         overwrite: bool = False) -> None:
     # {{{ create cell_types
     from pyvisfile.vtk import (
-        VF_LIST_OF_COMPONENTS, VTK_HEXAHEDRON, VTK_LINE, VTK_QUAD, VTK_TETRA,
-        VTK_TRIANGLE, AppendedDataXMLGenerator, DataArray, UnstructuredGrid)
+        VF_LIST_OF_COMPONENTS,
+        VTK_HEXAHEDRON,
+        VTK_LINE,
+        VTK_QUAD,
+        VTK_TETRA,
+        VTK_TRIANGLE,
+        AppendedDataXMLGenerator,
+        DataArray,
+        UnstructuredGrid,
+    )
 
     from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup
 
@@ -342,7 +350,8 @@ def vtk_visualize_mesh(
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.poly_element import (
-        InterpolatoryEdgeClusteredGroupFactory)
+        InterpolatoryEdgeClusteredGroupFactory,
+    )
     discr = Discretization(actx, mesh, InterpolatoryEdgeClusteredGroupFactory(order))
 
     from meshmode.discretization.visualization import make_visualizer
@@ -422,7 +431,8 @@ def visualize_mesh_vertex_resampling_error(
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.poly_element import (
-        InterpolatoryEdgeClusteredGroupFactory)
+        InterpolatoryEdgeClusteredGroupFactory,
+    )
     discr = Discretization(actx, mesh, InterpolatoryEdgeClusteredGroupFactory(1))
 
     from meshmode.discretization.visualization import make_visualizer
diff --git a/test/test_array.py b/test/test_array.py
index a2908a61..7a44226f 100644
--- a/test/test_array.py
+++ b/test/test_array.py
@@ -27,14 +27,18 @@ import numpy as np
 import pytest
 
 from arraycontext import (
-    dataclass_array_container, pytest_generate_tests_for_array_contexts,
-    with_container_arithmetic)
+    dataclass_array_container,
+    pytest_generate_tests_for_array_contexts,
+    with_container_arithmetic,
+)
 from pytools.obj_array import make_obj_array
 from pytools.tag import Tag
 
 from meshmode import _acf  # noqa: F401
 from meshmode.array_context import (
-    PytestPyOpenCLArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory)
+    PytestPyOpenCLArrayContextFactory,
+    PytestPytatoPyOpenCLArrayContextFactory,
+)
 from meshmode.discretization import Discretization
 from meshmode.discretization.poly_element import default_simplex_group_factory
 from meshmode.dof_array import DOFArray, array_context_for_pickling, flat_norm
diff --git a/test/test_chained.py b/test/test_chained.py
index 9ee486f3..b00356c8 100644
--- a/test/test_chained.py
+++ b/test/test_chained.py
@@ -58,8 +58,7 @@ def create_discretization(actx, ndim,
         else:
             raise ValueError(f"unknown mesh name: {mesh_name}")
     elif ndim == 3:
-        from meshmode.mesh.generation import (
-            generate_torus, generate_warped_rect_mesh)
+        from meshmode.mesh.generation import generate_torus, generate_warped_rect_mesh
 
         if mesh_name is None:
             mesh_name = "torus"
@@ -78,7 +77,8 @@ def create_discretization(actx, ndim,
     # create discretization
     from meshmode.discretization import Discretization
     from meshmode.discretization.poly_element import (
-        InterpolatoryQuadratureSimplexGroupFactory)
+        InterpolatoryQuadratureSimplexGroupFactory,
+    )
     discr = Discretization(actx, mesh,
             InterpolatoryQuadratureSimplexGroupFactory(order))
 
@@ -88,7 +88,8 @@ def create_discretization(actx, ndim,
 def create_refined_connection(actx, discr, threshold=0.3):
     from meshmode.discretization.connection import make_refinement_connection
     from meshmode.discretization.poly_element import (
-        InterpolatoryQuadratureSimplexGroupFactory)
+        InterpolatoryQuadratureSimplexGroupFactory,
+    )
     from meshmode.mesh.refinement import RefinerWithoutAdjacency
 
     flags = np.random.rand(discr.mesh.nelements) < threshold
@@ -103,10 +104,10 @@ def create_refined_connection(actx, discr, threshold=0.3):
 
 
 def create_face_connection(actx, discr):
-    from meshmode.discretization.connection import (
-        FACE_RESTR_ALL, make_face_restriction)
+    from meshmode.discretization.connection import FACE_RESTR_ALL, make_face_restriction
     from meshmode.discretization.poly_element import (
-        InterpolatoryQuadratureSimplexGroupFactory)
+        InterpolatoryQuadratureSimplexGroupFactory,
+    )
 
     discr_order = discr.groups[0].order
     connection = make_face_restriction(actx, discr,
@@ -120,8 +121,7 @@ def create_face_connection(actx, discr):
 @pytest.mark.skip(reason="implementation detail")
 @pytest.mark.parametrize("ndim", [2, 3])
 def test_chained_batch_table(actx_factory, ndim, visualize=False):
-    from meshmode.discretization.connection.chained import (
-        _build_element_lookup_table)
+    from meshmode.discretization.connection.chained import _build_element_lookup_table
 
     actx = actx_factory()
 
@@ -360,11 +360,11 @@ def test_reversed_chained_connection(actx_factory, ndim, mesh_name):
                     conn.to_discr, threshold=threshold)
             connections.append(conn)
 
-        from meshmode.discretization.connection import (
-            ChainedDiscretizationConnection)
+        from meshmode.discretization.connection import ChainedDiscretizationConnection
         chained = ChainedDiscretizationConnection(connections)
         from meshmode.discretization.connection import (
-            L2ProjectionInverseDiscretizationConnection)
+            L2ProjectionInverseDiscretizationConnection,
+        )
         reverse = L2ProjectionInverseDiscretizationConnection(chained)
 
         # create test vector
diff --git a/test/test_connection.py b/test/test_connection.py
index dbbd5d2a..08ee8a4e 100644
--- a/test/test_connection.py
+++ b/test/test_connection.py
@@ -34,9 +34,11 @@ from meshmode.discretization import Discretization
 from meshmode.discretization.connection import FACE_RESTR_ALL
 from meshmode.discretization.poly_element import (
     LegendreGaussLobattoTensorProductGroupFactory,
-    PolynomialEquidistantSimplexGroupFactory, PolynomialRecursiveNodesGroupFactory,
+    PolynomialEquidistantSimplexGroupFactory,
+    PolynomialRecursiveNodesGroupFactory,
     PolynomialWarpAndBlend2DRestrictingGroupFactory,
-    PolynomialWarpAndBlend3DRestrictingGroupFactory)
+    PolynomialWarpAndBlend3DRestrictingGroupFactory,
+)
 from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup
 
 
@@ -76,7 +78,9 @@ def test_bdry_restriction_is_permutation(actx_factory, group_factory, dim, order
 
     vol_discr = Discretization(actx, mesh, group_factory(order))
     from meshmode.discretization.connection import (
-        make_face_restriction, make_opposite_face_connection)
+        make_face_restriction,
+        make_opposite_face_connection,
+    )
     bdry_connection = make_face_restriction(
             actx, vol_discr, group_factory(order),
             FACE_RESTR_ALL)
diff --git a/test/test_discretization.py b/test/test_discretization.py
index 3422fa3e..8c4361c3 100644
--- a/test/test_discretization.py
+++ b/test/test_discretization.py
@@ -29,7 +29,8 @@ from meshmode import _acf  # noqa: F401
 from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization import Discretization
 from meshmode.discretization.poly_element import (
-    InterpolatoryQuadratureSimplexGroupFactory)
+    InterpolatoryQuadratureSimplexGroupFactory,
+)
 
 
 pytest_generate_tests = pytest_generate_tests_for_array_contexts(
diff --git a/test/test_firedrake_interop.py b/test/test_firedrake_interop.py
index d32419b1..14bbe594 100644
--- a/test/test_firedrake_interop.py
+++ b/test/test_firedrake_interop.py
@@ -31,11 +31,14 @@ from meshmode import _acf  # noqa: F401
 from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization import Discretization
 from meshmode.discretization.poly_element import (
-    InterpolatoryQuadratureSimplexGroupFactory)
+    InterpolatoryQuadratureSimplexGroupFactory,
+)
 from meshmode.dof_array import DOFArray
 from meshmode.interop.firedrake import (
-    build_connection_from_firedrake, build_connection_to_firedrake,
-    import_firedrake_mesh)
+    build_connection_from_firedrake,
+    build_connection_to_firedrake,
+    import_firedrake_mesh,
+)
 from meshmode.mesh import BTAG_ALL, BTAG_INDUCED_BOUNDARY, Mesh, check_bc_coverage
 
 
@@ -84,8 +87,14 @@ def make_mm_mesh(name: str) -> Mesh:
 
 def make_firedrake_mesh(name: str):
     from firedrake import (
-        Function, Mesh, SpatialCoordinate, UnitCubeMesh, UnitIntervalMesh,
-        UnitSquareMesh, VectorFunctionSpace)
+        Function,
+        Mesh,
+        SpatialCoordinate,
+        UnitCubeMesh,
+        UnitIntervalMesh,
+        UnitSquareMesh,
+        VectorFunctionSpace,
+    )
 
     if name == "FiredrakeUnitIntervalMesh":
         return UnitIntervalMesh(100)
@@ -601,8 +610,13 @@ def test_from_fd_idempotency(actx_factory,
     actx = actx_factory()
 
     from firedrake import (
-        Function, FunctionSpace, SpatialCoordinate, TensorFunctionSpace,
-        VectorFunctionSpace, as_tensor)
+        Function,
+        FunctionSpace,
+        SpatialCoordinate,
+        TensorFunctionSpace,
+        VectorFunctionSpace,
+        as_tensor,
+    )
 
     # Make a function space and a function with unique values at each node
     fdrake_mesh = make_firedrake_mesh(fdrake_mesh)
diff --git a/test/test_mesh.py b/test/test_mesh.py
index 23172b6e..9f733464 100644
--- a/test/test_mesh.py
+++ b/test/test_mesh.py
@@ -40,10 +40,16 @@ import meshmode.mesh.processing as mproc
 from meshmode import _acf  # noqa: F401
 from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization.poly_element import (
-    LegendreGaussLobattoTensorProductGroupFactory, default_simplex_group_factory)
+    LegendreGaussLobattoTensorProductGroupFactory,
+    default_simplex_group_factory,
+)
 from meshmode.mesh import (
-    BoundaryAdjacencyGroup, InteriorAdjacencyGroup, SimplexElementGroup,
-    TensorProductElementGroup, make_mesh)
+    BoundaryAdjacencyGroup,
+    InteriorAdjacencyGroup,
+    SimplexElementGroup,
+    TensorProductElementGroup,
+    make_mesh,
+)
 from meshmode.mesh.tools import AffineMap
 
 
@@ -888,7 +894,10 @@ def test_box_boundary_tags(dim, nelem, mesh_type, group_cls, visualize=False):
         pytest.skip("mesh type not supported on tensor product elements")
 
     from meshmode.mesh import (
-        check_bc_coverage, is_boundary_tag_empty, mesh_has_boundary)
+        check_bc_coverage,
+        is_boundary_tag_empty,
+        mesh_has_boundary,
+    )
 
     if dim == 1:
         a = (0,)
@@ -1244,8 +1253,7 @@ def test_node_vertex_consistency_check(actx_factory):
     from meshmode.discretization import Discretization
     group_factory = default_simplex_group_factory(1, 1)
     vol_discr = Discretization(actx, vol_mesh, group_factory)
-    from meshmode.discretization.connection import (
-        FACE_RESTR_ALL, make_face_restriction)
+    from meshmode.discretization.connection import FACE_RESTR_ALL, make_face_restriction
     make_face_restriction(
         actx, vol_discr, group_factory, FACE_RESTR_ALL, per_face_groups=False)
 
diff --git a/test/test_meshmode.py b/test/test_meshmode.py
index 5be44eec..ff2fe521 100644
--- a/test/test_meshmode.py
+++ b/test/test_meshmode.py
@@ -33,18 +33,28 @@ from arraycontext import flatten, pytest_generate_tests_for_array_contexts
 import meshmode.mesh.generation as mgen
 from meshmode import _acf  # noqa: F401
 from meshmode.array_context import (
-    PytestPyOpenCLArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory)
+    PytestPyOpenCLArrayContextFactory,
+    PytestPytatoPyOpenCLArrayContextFactory,
+)
 from meshmode.discretization.connection import FACE_RESTR_ALL, FACE_RESTR_INTERIOR
 from meshmode.discretization.poly_element import (
     InterpolatoryQuadratureSimplexGroupFactory,
     LegendreGaussLobattoTensorProductGroupFactory,
-    PolynomialEquidistantSimplexGroupFactory, PolynomialRecursiveNodesGroupFactory,
+    PolynomialEquidistantSimplexGroupFactory,
+    PolynomialRecursiveNodesGroupFactory,
     PolynomialWarpAndBlend2DRestrictingGroupFactory,
-    PolynomialWarpAndBlend3DRestrictingGroupFactory, default_simplex_group_factory)
+    PolynomialWarpAndBlend3DRestrictingGroupFactory,
+    default_simplex_group_factory,
+)
 from meshmode.dof_array import flat_norm
 from meshmode.mesh import (
-    BTAG_ALL, Mesh, MeshElementGroup, SimplexElementGroup, TensorProductElementGroup,
-    make_mesh)
+    BTAG_ALL,
+    Mesh,
+    MeshElementGroup,
+    SimplexElementGroup,
+    TensorProductElementGroup,
+    make_mesh,
+)
 
 
 logger = logging.getLogger(__name__)
@@ -114,7 +124,9 @@ def test_boundary_interpolation(actx_factory, group_factory, boundary_tag,
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.connection import (
-        check_connection, make_face_restriction)
+        check_connection,
+        make_face_restriction,
+    )
     eoc_rec = EOCRecorder()
 
     order = 4
@@ -179,7 +191,8 @@ def test_boundary_interpolation(actx_factory, group_factory, boundary_tag,
 
         if mesh_name == "blob" and dim == 2 and mesh.nelements < 500:
             from meshmode.discretization.connection.direct import (
-                make_direct_full_resample_matrix)
+                make_direct_full_resample_matrix,
+            )
             mat = actx.to_numpy(
                     make_direct_full_resample_matrix(actx, bdry_connection))
             bdry_f_2_by_mat = mat.dot(actx.to_numpy(flatten(vol_f, actx)))
@@ -233,7 +246,10 @@ def test_all_faces_interpolation(actx_factory, group_factory,
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.connection import (
-        check_connection, make_face_restriction, make_face_to_all_faces_embedding)
+        check_connection,
+        make_face_restriction,
+        make_face_to_all_faces_embedding,
+    )
     eoc_rec = EOCRecorder()
 
     order = 4
@@ -359,7 +375,10 @@ def test_opposite_face_interpolation(actx_factory, group_factory,
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.connection import (
-        check_connection, make_face_restriction, make_opposite_face_connection)
+        check_connection,
+        make_face_restriction,
+        make_opposite_face_connection,
+    )
     eoc_rec = EOCRecorder()
 
     order = 5
@@ -954,8 +973,11 @@ def test_mesh_multiple_groups(actx_factory, ambient_dim, visualize=False):
 
     # check face restrictions
     from meshmode.discretization.connection import (
-        check_connection, make_face_restriction, make_face_to_all_faces_embedding,
-        make_opposite_face_connection)
+        check_connection,
+        make_face_restriction,
+        make_face_to_all_faces_embedding,
+        make_opposite_face_connection,
+    )
     for boundary_tag in [BTAG_ALL, FACE_RESTR_INTERIOR, FACE_RESTR_ALL]:
         conn = make_face_restriction(actx, discr,
                 group_factory=grp_factory,
diff --git a/test/test_modal.py b/test/test_modal.py
index 4289f02e..c5e39f19 100644
--- a/test/test_modal.py
+++ b/test/test_modal.py
@@ -33,14 +33,20 @@ from meshmode import _acf  # noqa: F401
 from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization import Discretization
 from meshmode.discretization.connection.modal import (
-    ModalToNodalDiscretizationConnection, NodalToModalDiscretizationConnection)
+    ModalToNodalDiscretizationConnection,
+    NodalToModalDiscretizationConnection,
+)
 from meshmode.discretization.poly_element import (
     InterpolatoryQuadratureSimplexGroupFactory,
-    LegendreGaussLobattoTensorProductGroupFactory, ModalSimplexGroupFactory,
-    ModalTensorProductGroupFactory, PolynomialEquidistantSimplexGroupFactory,
+    LegendreGaussLobattoTensorProductGroupFactory,
+    ModalSimplexGroupFactory,
+    ModalTensorProductGroupFactory,
+    PolynomialEquidistantSimplexGroupFactory,
     PolynomialRecursiveNodesGroupFactory,
     PolynomialWarpAndBlend2DRestrictingGroupFactory,
-    PolynomialWarpAndBlend3DRestrictingGroupFactory, QuadratureSimplexGroupFactory)
+    PolynomialWarpAndBlend3DRestrictingGroupFactory,
+    QuadratureSimplexGroupFactory,
+)
 from meshmode.dof_array import DOFArray, flat_norm
 from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup
 
diff --git a/test/test_partition.py b/test/test_partition.py
index 142853c3..f26cf098 100644
--- a/test/test_partition.py
+++ b/test/test_partition.py
@@ -37,8 +37,11 @@ from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization.poly_element import default_simplex_group_factory
 from meshmode.dof_array import flat_norm
 from meshmode.mesh import (
-    BTAG_ALL, BoundaryAdjacencyGroup, InteriorAdjacencyGroup,
-    InterPartAdjacencyGroup)
+    BTAG_ALL,
+    BoundaryAdjacencyGroup,
+    InteriorAdjacencyGroup,
+    InterPartAdjacencyGroup,
+)
 
 
 logger = logging.getLogger(__name__)
@@ -114,7 +117,10 @@ def test_partition_interpolation(actx_factory, dim, mesh_pars,
                         for part_mesh in part_meshes.values()]
 
         from meshmode.discretization.connection import (
-            check_connection, make_face_restriction, make_partition_connection)
+            check_connection,
+            make_face_restriction,
+            make_partition_connection,
+        )
         from meshmode.mesh import BTAG_PARTITION
 
         for i_local_part, i_remote_part in connected_parts:
@@ -367,8 +373,7 @@ def count_tags(mesh, tag):
 def _test_mpi_boundary_swap(dim, order, num_groups):
     from mpi4py import MPI
 
-    from meshmode.distributed import (
-        MPIBoundaryCommSetupHelper, membership_list_to_map)
+    from meshmode.distributed import MPIBoundaryCommSetupHelper, membership_list_to_map
     from meshmode.mesh.processing import partition_mesh
     mpi_comm = MPI.COMM_WORLD
 
diff --git a/test/test_refinement.py b/test/test_refinement.py
index e262a69f..f265d8c3 100644
--- a/test/test_refinement.py
+++ b/test/test_refinement.py
@@ -38,7 +38,8 @@ from meshmode.discretization.poly_element import (
     LegendreGaussLobattoTensorProductGroupFactory,
     PolynomialEquidistantSimplexGroupFactory,
     PolynomialWarpAndBlend2DRestrictingGroupFactory,
-    PolynomialWarpAndBlend3DRestrictingGroupFactory)
+    PolynomialWarpAndBlend3DRestrictingGroupFactory,
+)
 from meshmode.dof_array import flat_norm
 from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup
 from meshmode.mesh.refinement import RefinerWithoutAdjacency
@@ -143,7 +144,9 @@ def test_refinement_connection(
 
     from meshmode.discretization import Discretization
     from meshmode.discretization.connection import (
-        check_connection, make_refinement_connection)
+        check_connection,
+        make_refinement_connection,
+    )
     eoc_rec = EOCRecorder()
 
     for mesh_par in mesh_pars:
diff --git a/test/test_visualization.py b/test/test_visualization.py
index 0d7a435f..547a4013 100644
--- a/test/test_visualization.py
+++ b/test/test_visualization.py
@@ -36,7 +36,9 @@ from meshmode import _acf  # noqa: F401
 from meshmode.array_context import PytestPyOpenCLArrayContextFactory
 from meshmode.discretization.poly_element import (
     InterpolatoryQuadratureSimplexGroupFactory,
-    LegendreGaussLobattoTensorProductGroupFactory, default_simplex_group_factory)
+    LegendreGaussLobattoTensorProductGroupFactory,
+    default_simplex_group_factory,
+)
 from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup
 
 
@@ -323,7 +325,9 @@ def test_vtk_overwrite(actx_factory):
             InterpolatoryQuadratureSimplexGroupFactory(target_order))
 
     from meshmode.discretization.visualization import (
-        make_visualizer, write_nodal_adjacency_vtk_file)
+        make_visualizer,
+        write_nodal_adjacency_vtk_file,
+    )
     from meshmode.mesh.visualization import write_vertex_vtk_file
 
     vis = make_visualizer(actx, discr, 1)
-- 
GitLab