From 28b7c10f9b3105e86d59c7f6314ab97966ac047e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 21 Feb 2026 16:27:27 +0200 Subject: [PATCH 1/2] fix: update to pass ruff 0.15.2 --- examples/advection/surface.py | 5 ++--- examples/advection/var-velocity.py | 5 ++--- examples/advection/weak.py | 3 +-- examples/euler/acoustic_pulse.py | 4 ++-- examples/euler/vortex.py | 2 +- examples/hello-grudge.py | 2 +- examples/maxwell/cavities.py | 17 ++++++++--------- examples/wave/var-propagation-speed.py | 2 +- examples/wave/wave-min-mpi.py | 5 ++--- examples/wave/wave-op-mpi.py | 4 ++-- examples/wave/wave-op-var-velocity.py | 4 ++-- grudge/discretization.py | 11 ++++++----- grudge/dof_desc.py | 11 +++++++---- grudge/dt_utils.py | 2 +- grudge/geometry/metrics.py | 13 ++++--------- grudge/models/__init__.py | 4 ++-- grudge/models/advection.py | 4 ++-- grudge/models/em.py | 15 +++++++-------- grudge/models/euler.py | 4 ++-- grudge/models/wave.py | 4 ++-- grudge/op.py | 3 +-- grudge/reductions.py | 2 +- grudge/shortcuts.py | 3 +-- grudge/trace_pair.py | 2 +- pyproject.toml | 3 ++- test/test_dt_utils.py | 22 +++++++++------------- test/test_grudge.py | 2 +- test/test_modal_connections.py | 2 +- test/test_mpi_communication.py | 2 +- test/test_op.py | 15 ++++++++------- test/test_reductions.py | 2 +- test/test_tools.py | 13 ++++--------- test/test_trace_pair.py | 2 +- 33 files changed, 89 insertions(+), 105 deletions(-) diff --git a/examples/advection/surface.py b/examples/advection/surface.py index afd9b3051..92d781e1b 100644 --- a/examples/advection/surface.py +++ b/examples/advection/surface.py @@ -32,13 +32,12 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array from arraycontext import flatten from meshmode.discretization.connection import FACE_RESTR_INTERIOR +from pytools import obj_array -import grudge.dof_desc as dof_desc import grudge.geometry as geo -import grudge.op as op +from grudge import dof_desc, op from grudge.array_context import PyOpenCLArrayContext diff --git a/examples/advection/var-velocity.py b/examples/advection/var-velocity.py index c9cfe3fbd..05964dc60 100644 --- a/examples/advection/var-velocity.py +++ b/examples/advection/var-velocity.py @@ -30,12 +30,11 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array from arraycontext import flatten from meshmode.mesh import BTAG_ALL +from pytools import obj_array -import grudge.dof_desc as dof_desc -import grudge.op as op +from grudge import dof_desc, op from grudge.array_context import PyOpenCLArrayContext diff --git a/examples/advection/weak.py b/examples/advection/weak.py index ef1ef54b8..54ea2074f 100644 --- a/examples/advection/weak.py +++ b/examples/advection/weak.py @@ -34,8 +34,7 @@ from arraycontext import flatten from meshmode.mesh import BTAG_ALL -import grudge.dof_desc as dof_desc -import grudge.op as op +from grudge import dof_desc, op from grudge.array_context import PyOpenCLArrayContext diff --git a/examples/euler/acoustic_pulse.py b/examples/euler/acoustic_pulse.py index fdbc36e7b..2fb26249c 100644 --- a/examples/euler/acoustic_pulse.py +++ b/examples/euler/acoustic_pulse.py @@ -29,11 +29,11 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array from arraycontext import ArrayContext from meshmode.mesh import BTAG_ALL +from pytools import obj_array -import grudge.op as op +from grudge import op from grudge.array_context import PyOpenCLArrayContext, PytatoPyOpenCLArrayContext from grudge.models.euler import ConservedEulerField, EulerOperator, InviscidWallBC from grudge.shortcuts import compiled_lsrk45_step diff --git a/examples/euler/vortex.py b/examples/euler/vortex.py index ca6608d95..fe2310847 100644 --- a/examples/euler/vortex.py +++ b/examples/euler/vortex.py @@ -28,7 +28,7 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import grudge.op as op +from grudge import op from grudge.array_context import PyOpenCLArrayContext, PytatoPyOpenCLArrayContext from grudge.models.euler import EulerOperator, vortex_initial_condition from grudge.shortcuts import compiled_lsrk45_step diff --git a/examples/hello-grudge.py b/examples/hello-grudge.py index 5d6c08833..d9c7f17a7 100644 --- a/examples/hello-grudge.py +++ b/examples/hello-grudge.py @@ -15,7 +15,7 @@ from meshmode.mesh.generation import generate_box_mesh import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.discretization import make_discretization_collection from grudge.dof_desc import FACE_RESTR_INTERIOR, BoundaryDomainTag, as_dofdesc diff --git a/examples/maxwell/cavities.py b/examples/maxwell/cavities.py index ced99dd65..662f6be7a 100644 --- a/examples/maxwell/cavities.py +++ b/examples/maxwell/cavities.py @@ -136,15 +136,14 @@ def norm(u): norm_e0, norm_e1, norm_h0, norm_h1 ) - if step % 10 == 0: - if visualize: - vis.write_vtk_file( - f"fld-cavities-{step:04d}.vtu", - [ - ("e", e), - ("h", h), - ] - ) + if visualize and step % 10 == 0: + vis.write_vtk_file( + f"fld-cavities-{step:04d}.vtu", + [ + ("e", e), + ("h", h), + ] + ) # NOTE: These are here to ensure the solution is bounded for the # time interval specified diff --git a/examples/wave/var-propagation-speed.py b/examples/wave/var-propagation-speed.py index e0f735f62..5e2d94a98 100644 --- a/examples/wave/var-propagation-speed.py +++ b/examples/wave/var-propagation-speed.py @@ -30,7 +30,7 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array +from pytools import obj_array from grudge import op from grudge.array_context import PyOpenCLArrayContext diff --git a/examples/wave/wave-min-mpi.py b/examples/wave/wave-min-mpi.py index 4a0baf159..de0b1c1c9 100644 --- a/examples/wave/wave-min-mpi.py +++ b/examples/wave/wave-min-mpi.py @@ -31,10 +31,9 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array +from pytools import obj_array -import grudge.op as op -from grudge import make_discretization_collection +from grudge import make_discretization_collection, op from grudge.array_context import MPIPyOpenCLArrayContext from grudge.shortcuts import set_up_rk4 diff --git a/examples/wave/wave-op-mpi.py b/examples/wave/wave-op-mpi.py index ae1023327..b39a0df30 100644 --- a/examples/wave/wave-op-mpi.py +++ b/examples/wave/wave-op-mpi.py @@ -32,13 +32,13 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array from arraycontext import dataclass_array_container, with_container_arithmetic from meshmode.dof_array import DOFArray from meshmode.mesh import BTAG_ALL +from pytools import obj_array import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.discretization import make_discretization_collection from grudge.dof_desc import DISCR_TAG_BASE, DISCR_TAG_QUAD, as_dofdesc from grudge.shortcuts import compiled_lsrk45_step, make_visualizer diff --git a/examples/wave/wave-op-var-velocity.py b/examples/wave/wave-op-var-velocity.py index 3b989b95a..4229761d7 100644 --- a/examples/wave/wave-op-var-velocity.py +++ b/examples/wave/wave-op-var-velocity.py @@ -31,11 +31,11 @@ import pyopencl as cl import pyopencl.tools as cl_tools -import pytools.obj_array as obj_array from meshmode.mesh import BTAG_ALL, BTAG_NONE # noqa +from pytools import obj_array import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.array_context import PyOpenCLArrayContext from grudge.discretization import make_discretization_collection from grudge.dof_desc import DISCR_TAG_BASE, DISCR_TAG_QUAD, as_dofdesc diff --git a/grudge/discretization.py b/grudge/discretization.py index 493583d1b..37c9aba17 100644 --- a/grudge/discretization.py +++ b/grudge/discretization.py @@ -247,7 +247,8 @@ def __init__(self, array_context: ArrayContext, self._dist_boundary_connections = { vtag: self._set_up_distributed_communication( vtag, mpi_communicator, array_context) - for vtag in self._volume_discrs.keys()} + for vtag in self._volume_discrs + } # }}} @@ -304,8 +305,8 @@ def _set_up_distributed_communication(self, conns = bdry_setup_helper.complete_some() if not conns: break - for i_remote_part, conn in conns.items(): - boundary_connections[i_remote_part] = conn + + boundary_connections.update(conns) return boundary_connections @@ -375,7 +376,7 @@ def discr_from_dd(self, dd: ToDOFDescConvertible) -> Discretization: else: return self._boundary_connection(dd.domain_tag).to_discr else: - raise ValueError(f"DOF desc not understood: {dd}") + raise ValueError(f"DOF desc not understood: {dd}") # noqa: TRY004 # }}} @@ -583,7 +584,7 @@ def connection_from_dds(self, f"cannot get a connection from volume to: '{to_dd}'") else: - raise ValueError(f"cannot get a connection from: '{from_dd}'") + raise ValueError(f"cannot get a connection from: '{from_dd}'") # noqa: TRY004 # }}} diff --git a/grudge/dof_desc.py b/grudge/dof_desc.py index 71d672146..4e123af20 100644 --- a/grudge/dof_desc.py +++ b/grudge/dof_desc.py @@ -305,7 +305,8 @@ def trace(self, btag: BoundaryTag) -> DOFDesc: :class:`DOFDesc`. """ if not isinstance(self.domain_tag, VolumeDomainTag): - raise ValueError(f"must originate on volume, got '{self.domain_tag}'") + raise TypeError(f"must originate on volume, got '{self.domain_tag}'") + return replace(self, domain_tag=BoundaryDomainTag(btag, volume_tag=self.domain_tag.tag)) @@ -317,7 +318,8 @@ def untrace(self) -> DOFDesc: :class:`DOFDesc`. """ if not isinstance(self.domain_tag, BoundaryDomainTag): - raise ValueError(f"must originate on boundary, got '{self.domain_tag}'") + raise TypeError(f"must originate on boundary, got '{self.domain_tag}'") + return replace(self, domain_tag=VolumeDomainTag(self.domain_tag.volume_tag)) @@ -329,7 +331,8 @@ def with_boundary_tag(self, btag: BoundaryTag) -> DOFDesc: :class:`DOFDesc`. """ if not isinstance(self.domain_tag, BoundaryDomainTag): - raise ValueError(f"must originate on boundary, got '{self.domain_tag}'") + raise TypeError(f"must originate on boundary, got '{self.domain_tag}'") + return replace(self, domain_tag=replace(self.domain_tag, tag=btag)) @@ -410,7 +413,7 @@ def _normalize_domain_and_discr_tag( domain = BoundaryDomainTag(FACE_RESTR_ALL, contextual_volume_tag) elif domain in [FACE_RESTR_INTERIOR, "int_faces"]: domain = BoundaryDomainTag(FACE_RESTR_INTERIOR, contextual_volume_tag) - elif isinstance(domain, BTAG_PARTITION): + elif isinstance(domain, BTAG_PARTITION): # noqa: SIM114 domain = BoundaryDomainTag(domain, contextual_volume_tag) elif domain in [BTAG_ALL, BTAG_REALLY_ALL, BTAG_NONE]: domain = BoundaryDomainTag(domain, contextual_volume_tag) diff --git a/grudge/dt_utils.py b/grudge/dt_utils.py index ad29b0e04..494f835a2 100644 --- a/grudge/dt_utils.py +++ b/grudge/dt_utils.py @@ -60,7 +60,7 @@ ) from pytools import memoize_in, memoize_on_first_arg -import grudge.op as op +from grudge import op from grudge.dof_desc import ( DD_VOLUME_ALL, FACE_RESTR_ALL, diff --git a/grudge/geometry/metrics.py b/grudge/geometry/metrics.py index 14086596a..6691cc869 100644 --- a/grudge/geometry/metrics.py +++ b/grudge/geometry/metrics.py @@ -66,7 +66,6 @@ import numpy as np -import pytools.obj_array as obj_array from arraycontext import ArrayContext, register_multivector_as_array_container, tag_axes from arraycontext.metadata import NameHint from meshmode.discretization.connection import DirectDiscretizationConnection @@ -76,10 +75,9 @@ DiscretizationTopologicalDimAxisTag, ) from pymbolic.geometric_algebra import MultiVector, get_euclidean_space -from pytools import flatten, memoize_in, product +from pytools import flatten, memoize_in, obj_array, product -import grudge.dof_desc as dof_desc -from grudge import DiscretizationCollection +from grudge import DiscretizationCollection, dof_desc from grudge.dof_desc import DD_VOLUME_ALL, DISCR_TAG_BASE, DOFDesc, ToDOFDescConvertible @@ -172,7 +170,7 @@ def forward_metric_nth_derivative( ref_axes = ((ref_axes, 1),) if not isinstance(ref_axes, tuple): - raise ValueError(f"'ref_axes' must be a tuple: {type(ref_axes)}") + raise ValueError(f"'ref_axes' must be a tuple: {type(ref_axes)}") # noqa: TRY004 if tuple(sorted(ref_axes)) != ref_axes: raise ValueError(f"'ref_axes' must be sorted: {ref_axes}") @@ -471,10 +469,7 @@ def outprod_with_unit(i: int, at: int) -> MultiVector[DOFArray]: for rst_axis in range(dim) ).inv() - result = (outprod_with_unit(xyz_axis, rst_axis) - * volume_pseudoscalar_inv).as_scalar() - - return result + return (outprod_with_unit(xyz_axis, rst_axis) * volume_pseudoscalar_inv).as_scalar() def inverse_surface_metric_derivative( diff --git a/grudge/models/__init__.py b/grudge/models/__init__.py index 508553e8b..833b01bce 100644 --- a/grudge/models/__init__.py +++ b/grudge/models/__init__.py @@ -75,12 +75,12 @@ def estimate_rk4_timestep( max characteristic velocity of the operator. These are passed to :meth:`max_characteristic_velocity`. """ - import grudge.op as op from grudge.dt_utils import characteristic_lengthscales + from grudge.op import nodal_min wavespeeds = self.max_characteristic_velocity(actx, **kwargs) local_timesteps = ( characteristic_lengthscales(actx, dcoll) / wavespeeds ) - return op.nodal_min(dcoll, "vol", local_timesteps) + return nodal_min(dcoll, "vol", local_timesteps) diff --git a/grudge/models/advection.py b/grudge/models/advection.py index 0b14b6160..9a104ef6a 100644 --- a/grudge/models/advection.py +++ b/grudge/models/advection.py @@ -33,7 +33,7 @@ import numpy as np import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.models import HyperbolicOperator @@ -72,7 +72,7 @@ def __init__(self, dcoll, v, inflow_u=None, flux_type="central"): if flux_type not in self.flux_types: raise ValueError(f"unknown flux type: '{flux_type}'") - if inflow_u is not None: + if inflow_u is not None: # noqa: SIM102 if not isinstance(inflow_u, types.LambdaType): raise ValueError( "A specified inflow_u must be a lambda function of time `t`" diff --git a/grudge/models/em.py b/grudge/models/em.py index 15ce44ec2..6e817faba 100644 --- a/grudge/models/em.py +++ b/grudge/models/em.py @@ -41,7 +41,6 @@ from typing_extensions import override import pymbolic.primitives as prim -import pytools.obj_array as obj_array from arraycontext import ( Array, ArrayContext, @@ -50,10 +49,10 @@ get_container_context_recursively, ) from meshmode.mesh import BTAG_ALL, BTAG_NONE, BoundaryTag, Mesh -from pytools import levi_civita, memoize_method +from pytools import levi_civita, memoize_method, obj_array import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.dof_desc import as_dofdesc from grudge.models import HyperbolicOperator @@ -237,8 +236,8 @@ def __init__(self, dcoll: DiscretizationCollection, epsilon: ArrayOrArithContainerOrScalar, mu: ArrayOrArithContainerOrScalar, - flux_type: int | float | Literal["lf"], - bdry_flux_type: int | float | Literal["lf"] | None = None, + flux_type: float | Literal["lf"], + bdry_flux_type: float | Literal["lf"] | None = None, pec_tag: BoundaryTag = BTAG_ALL, pmc_tag: BoundaryTag = BTAG_NONE, absorb_tag: BoundaryTag = BTAG_NONE, @@ -453,7 +452,7 @@ def absorbing_bc(self, w: Vector) -> Vector: self.space_cross_h(absorb_normal, absorb_h)) + absorb_Y*self.space_cross_e(absorb_normal, absorb_e))) - return bc + return bc # noqa: RET504 def incident_bc(self, w: Vector) -> Vector: """Flux terms for incident boundary conditions""" @@ -644,14 +643,14 @@ def get_eh_subset(self) -> tuple[bool, bool, bool, bool, bool, bool]: def get_rectangular_cavity_mode( actx: ArrayContext, nodes: Vector, - t: int | float, + t: float, E_0: ArrayOrArithContainerOrScalar, # noqa: N803 mode_indices: Sequence[int]) -> Vector: """A rectangular TM cavity mode for a rectangle / cube with one corner at the origin and the other at :math:`(1, 1[, 1])`. """ dims = len(mode_indices) - if dims != 2 and dims != 3: + if dims not in {2, 3}: raise ValueError(f"unsupported 'mode_indices' dimensions: {dims}") factors = [n*np.pi for n in mode_indices] diff --git a/grudge/models/euler.py b/grudge/models/euler.py index 69effc0d4..2f67a760b 100644 --- a/grudge/models/euler.py +++ b/grudge/models/euler.py @@ -56,16 +56,16 @@ import numpy as np -import pytools.obj_array as obj_array from arraycontext import ( ArrayContext, dataclass_array_container, with_container_arithmetic, ) from meshmode.dof_array import DOFArray +from pytools import obj_array import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.dof_desc import DISCR_TAG_BASE, DOFDesc, as_dofdesc from grudge.models import HyperbolicOperator from grudge.trace_pair import TracePair diff --git a/grudge/models/wave.py b/grudge/models/wave.py index 34952b358..35a21e1ba 100644 --- a/grudge/models/wave.py +++ b/grudge/models/wave.py @@ -36,13 +36,13 @@ import numpy as np -import pytools.obj_array as obj_array from arraycontext import ArrayContext, ScalarLike, get_container_context_recursively_opt from meshmode.dof_array import DOFArray from meshmode.mesh import BTAG_ALL, BTAG_NONE +from pytools import obj_array import grudge.geometry as geo -import grudge.op as op +from grudge import op from grudge.dof_desc import DISCR_TAG_BASE, BoundaryDomainTag, as_dofdesc from grudge.models import HyperbolicOperator diff --git a/grudge/op.py b/grudge/op.py index 7cf607a4a..bf11ffb31 100644 --- a/grudge/op.py +++ b/grudge/op.py @@ -58,7 +58,6 @@ import numpy as np import modepy as mp -import pytools.obj_array as obj_array from arraycontext import ( Array, ArrayContainer, @@ -81,7 +80,7 @@ DiscretizationFaceAxisTag, FirstAxisIsElementsTag, ) -from pytools import keyed_memoize_in +from pytools import keyed_memoize_in, obj_array from grudge.dof_desc import ( DD_VOLUME_ALL, diff --git a/grudge/reductions.py b/grudge/reductions.py index b0f02d7c7..a64aed754 100644 --- a/grudge/reductions.py +++ b/grudge/reductions.py @@ -86,7 +86,7 @@ ) from pytools import memoize_in -import grudge.dof_desc as dof_desc +from grudge import dof_desc from grudge.array_context import MPIBasedArrayContext diff --git a/grudge/shortcuts.py b/grudge/shortcuts.py index d7c61dbc3..00e5e2350 100644 --- a/grudge/shortcuts.py +++ b/grudge/shortcuts.py @@ -26,9 +26,8 @@ from functools import partial from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple -import pytools.obj_array as obj_array from arraycontext import BcastUntilActxArray -from pytools import memoize_in +from pytools import memoize_in, obj_array from grudge.dof_desc import DD_VOLUME_ALL diff --git a/grudge/trace_pair.py b/grudge/trace_pair.py index fb0b11913..d8fdf7cc2 100644 --- a/grudge/trace_pair.py +++ b/grudge/trace_pair.py @@ -75,7 +75,7 @@ from pytools import memoize_on_first_arg from pytools.persistent_dict import KeyBuilder -import grudge.dof_desc as dof_desc +from grudge import dof_desc from grudge.array_context import MPIBasedArrayContext from grudge.dof_desc import ( DD_VOLUME_ALL, diff --git a/pyproject.toml b/pyproject.toml index b636b4b53..8f4c2d1cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -118,8 +118,9 @@ lines-after-imports = 2 required-imports = ["from __future__ import annotations"] [tool.ruff.lint.per-file-ignores] +"doc/conf.py" = ["I002", "S102", "DTZ002"] "examples/*.py" = ["I002"] -"doc/conf.py" = ["I002"] +"test/test_*.py" = ["S102"] [tool.typos.default] extend-ignore-re = [ diff --git a/test/test_dt_utils.py b/test/test_dt_utils.py index f59745217..13a53dfce 100644 --- a/test/test_dt_utils.py +++ b/test/test_dt_utils.py @@ -25,37 +25,33 @@ THE SOFTWARE. """ +import logging + +import mesh_data import numpy as np +import pytest -import pytools.obj_array as obj_array from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts +from meshmode import _acf # noqa: F401 +from pytools import obj_array +from grudge import op from grudge.array_context import ( PytestNumpyArrayContextFactory, PytestPyOpenCLArrayContextFactory, PytestPytatoJAXArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory, ) +from grudge.discretization import make_discretization_collection +logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts( [PytestPyOpenCLArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory, PytestNumpyArrayContextFactory, PytestPytatoJAXArrayContextFactory]) -import logging - -import mesh_data -import pytest - -import grudge.op as op -from grudge.discretization import make_discretization_collection - - -logger = logging.getLogger(__name__) -from meshmode import _acf # noqa: F401 - @pytest.mark.parametrize("name", ["interval", "box2d", "box3d"]) def test_geometric_factors_regular_refinement(actx_factory: ArrayContextFactory, name): diff --git a/test/test_grudge.py b/test/test_grudge.py index 244abd62e..fe7c5ee06 100644 --- a/test/test_grudge.py +++ b/test/test_grudge.py @@ -34,7 +34,6 @@ import pytest import meshmode.mesh.generation as mgen -import pytools.obj_array as obj_array from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from meshmode import _acf # noqa: F401 from meshmode.discretization.poly_element import ( @@ -43,6 +42,7 @@ ) from meshmode.dof_array import flat_norm from meshmode.mesh import TensorProductElementGroup +from pytools import obj_array from grudge import dof_desc, geometry, op from grudge.array_context import PytestPyOpenCLArrayContextFactory diff --git a/test/test_modal_connections.py b/test/test_modal_connections.py index a7ae866b7..555434bd4 100644 --- a/test/test_modal_connections.py +++ b/test/test_modal_connections.py @@ -49,7 +49,7 @@ ) from meshmode.dof_array import flat_norm -import grudge.dof_desc as dof_desc +from grudge import dof_desc @pytest.mark.parametrize("nodal_group_factory", [ diff --git a/test/test_mpi_communication.py b/test/test_mpi_communication.py index 8a71c7251..3e89045ca 100644 --- a/test/test_mpi_communication.py +++ b/test/test_mpi_communication.py @@ -34,8 +34,8 @@ import numpy as np import pytest -import pytools.obj_array as obj_array from meshmode.dof_array import flat_norm +from pytools import obj_array from grudge import dof_desc, op from grudge.array_context import MPIPyOpenCLArrayContext, MPIPytatoArrayContext diff --git a/test/test_op.py b/test/test_op.py index 18c2f2a24..099f63aa3 100644 --- a/test/test_op.py +++ b/test/test_op.py @@ -30,13 +30,13 @@ import pytest import meshmode.mesh.generation as mgen -import pytools.obj_array as obj_array from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from meshmode.discretization.poly_element import ( InterpolatoryEdgeClusteredGroupFactory, QuadratureGroupFactory, ) from meshmode.mesh import BTAG_ALL +from pytools import obj_array from grudge import geometry, op from grudge.array_context import PytestPyOpenCLArrayContextFactory @@ -105,8 +105,8 @@ def f(x): result = 1 for i in range(dim-1): result = result * actx.np.sin(np.pi*x[i]) - result = result * actx.np.cos(np.pi/2*x[dim-1]) - return result + + return result * actx.np.cos(np.pi/2*x[dim-1]) def grad_f(x): result = obj_array.new_1d([1 for _ in range(dim)]) @@ -258,8 +258,8 @@ def f(x, dcoll=dcoll): result = obj_array.new_1d([dcoll.zeros(actx) + (i+1) for i in range(dim)]) for i in range(dim-1): result = result * actx.np.sin(np.pi*x[i]) - result = result * actx.np.cos(np.pi/2*x[dim-1]) - return result + + return result * actx.np.cos(np.pi/2*x[dim-1]) def div_f(x, dcoll=dcoll): result = dcoll.zeros(actx) @@ -272,12 +272,13 @@ def div_f(x, dcoll=dcoll): deriv = deriv * actx.np.sin(np.pi*x[j]) deriv = deriv * actx.np.cos(np.pi/2*x[dim-1]) result = result + deriv + deriv = dcoll.zeros(actx) + dim for j in range(dim-1): deriv = deriv * actx.np.sin(np.pi*x[j]) deriv = deriv * (-np.pi/2*actx.np.sin(np.pi/2*x[dim-1])) - result = result + deriv - return result + + return result + deriv x = actx.thaw(dcoll.nodes()) diff --git a/test/test_reductions.py b/test/test_reductions.py index 03417c203..649646cce 100644 --- a/test/test_reductions.py +++ b/test/test_reductions.py @@ -33,7 +33,6 @@ import numpy as np import pytest -import pytools.obj_array as obj_array from arraycontext import ( ArrayContextFactory, dataclass_array_container, @@ -42,6 +41,7 @@ with_container_arithmetic, ) from meshmode.dof_array import DOFArray +from pytools import obj_array from grudge import op from grudge.array_context import PytestPyOpenCLArrayContextFactory diff --git a/test/test_tools.py b/test/test_tools.py index f7823b39d..9c960e288 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -25,27 +25,22 @@ THE SOFTWARE. """ +import logging from dataclasses import dataclass import numpy as np +import pytest from arraycontext import pytest_generate_tests_for_array_contexts +from pytools import obj_array from grudge.array_context import PytestPyOpenCLArrayContextFactory +logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts( [PytestPyOpenCLArrayContextFactory]) -import logging - -import pytest - -import pytools.obj_array as obj_array - - -logger = logging.getLogger(__name__) - # {{{ map_subarrays and rec_map_subarrays diff --git a/test/test_trace_pair.py b/test/test_trace_pair.py index a49385a37..c6a5b8949 100644 --- a/test/test_trace_pair.py +++ b/test/test_trace_pair.py @@ -69,7 +69,7 @@ def rand(): exterior = rand() tpair = TracePair(DD_VOLUME_ALL, interior=interior, exterior=exterior) - import grudge.op as op + from grudge import op assert op.norm(dcoll, tpair.avg - 0.5*(exterior + interior), np.inf) == 0 assert op.norm(dcoll, tpair.diff - (exterior - interior), np.inf) == 0 assert op.norm(dcoll, tpair.int - interior, np.inf) == 0 From eba4f95b31b806347768defffa705b83948c5824 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 21 Feb 2026 16:45:49 +0200 Subject: [PATCH 2/2] chore: update baseline --- .basedpyright/baseline.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index a61cc64f2..8ea4a39b3 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -900,18 +900,10 @@ } }, { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, @@ -6695,6 +6687,14 @@ } ], "./grudge/reductions.py": [ + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": {