Skip to content

Summarize changes to support prediction #273

Summarize changes to support prediction

Summarize changes to support prediction #273

Triggered via pull request July 8, 2025 15:27
@MTCamMTCam
synchronize #1
production
Status Failure
Total duration 20m 48s
Artifacts

ci.yml

on: pull_request
Ruff
50s
Ruff
Typos
1m 1s
Typos
basedpyright
2m 11s
basedpyright
Conda Pytest with Intel CL
1m 46s
Conda Pytest with Intel CL
Conda Pytest without arg check
1m 28s
Conda Pytest without arg check
Conda Pytest Twice (for cache behavior)
1m 38s
Conda Pytest Twice (for cache behavior)
Conda Examples
1m 40s
Conda Examples
Documentation
1m 32s
Documentation
Tests for downstream project Firedrake
2m 32s
Tests for downstream project Firedrake
Validate CITATION.cff
15s
Validate CITATION.cff
Matrix: downstream_tests
Matrix: Conda Pytest
Fit to window
Zoom out
Zoom in

Annotations

30 errors and 63 warnings
Ruff
Process completed with exit code 1.
Typos
Process completed with exit code 2.
Conda Pytest without arg check
Process completed with exit code 4.
Documentation
Process completed with exit code 2.
Conda Examples
Process completed with exit code 1.
Conda Pytest Twice (for cache behavior)
Process completed with exit code 4.
Conda Pytest (ubuntu-latest)
Process completed with exit code 4.
Conda Pytest with Intel CL
Process completed with exit code 4.
Conda Pytest (macos-latest)
The operation was canceled.
Conda Pytest (macos-latest)
The strategy configuration was canceled because "pytest.ubuntu-latest" failed
basedpyright: loopy/schedule/__init__.py#L2517
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L2506
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1769
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1559
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1463
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1286
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1267
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1254
"generate_loop_schedules_internal" is not defined (reportUndefinedVariable)
basedpyright: loopy/schedule/__init__.py#L1194
Argument of type "(x: Unknown) -> (tuple[str, str] | tuple[str])" cannot be assigned to parameter "key" of type "((NodeT@compute_topological_order) -> _SupportsLT) | None" in function "compute_topological_order"   Type "(x: Unknown) -> (tuple[str, str] | tuple[str])" is not assignable to type "((Unknown) -> _SupportsLT) | None"     Type "(x: Unknown) -> (tuple[str, str] | tuple[str])" is not assignable to type "(Unknown) -> _SupportsLT"       Function return type "tuple[str, str] | tuple[str]" is incompatible with type "_SupportsLT"         Type "tuple[str, str] | tuple[str]" is not assignable to type "_SupportsLT"           "tuple[str, str]" is incompatible with protocol "_SupportsLT"     "FunctionType" is not assignable to "None" (reportArgumentType)
basedpyright: loopy/kernel/tools.py#L2214
Expected type arguments for generic class "CombineMapper" (reportMissingTypeArgument)
Tests for downstream project pytential: pytential/test/test/test_layer_pot_eigenvalues.py#L328
test_sphere_eigenvalues[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-sumpy-2-3-3] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot.py#L424
test_unregularized_off_surface_fmm_vs_direct[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot.py#L283
test_single_plus_double_with_single_fmm[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_cost_model.py#L728
test_cost_model_correctness[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-3-False-False] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot.py#L198
test_off_surface_eval_vs_direct[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot.py#L127
test_off_surface_eval[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-False] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot_eigenvalues.py#L157
test_ellipse_eigenvalues[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-2-7-5-False] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_cost_model.py#L728
test_cost_model_correctness[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-2-True-False] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot_eigenvalues.py#L157
test_ellipse_eigenvalues[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-1-7-5-False] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Tests for downstream project pytential: pytential/test/test/test_layer_pot.py#L127
test_off_surface_eval[<PyOpenCLArrayContext for <pyopencl.Device 'cpu-haswell-AMD EPYC 7763 64-Core Processor' on 'Portable Computing Language'>>-True] loopy.schedule.V2SchedulerNotImplementedException: v2 scheduler cannot schedule loops tagged with 'ilp'/'vec' as they are not guaranteed to be single entry loops.
Validate CITATION.cff
The `python-version` input is not set. The version of Python currently in `PATH` will be used.
Typos: ./loopy/schedule/__init__.py#L1090
"cannnot" should be "cannot".
Typos: ./loopy/transform/loop_fusion.py#L212
"succcessors" should be "successors".
basedpyright: loopy/kernel/tools.py#L2219
Return type is Any (reportAny)
basedpyright: loopy/kernel/tools.py#L2216
Type annotation for attribute `var` is required because this class is not decorated with `@final` (reportUnannotatedClassAttribute)
basedpyright: loopy/kernel/tools.py#L2215
Type annotation is missing for parameter "var" (reportMissingParameterType)
basedpyright: loopy/kernel/tools.py#L2215
Type of parameter "var" is unknown (reportUnknownParameterType)
basedpyright: loopy/codegen/loop.py#L381
Argument type is partially unknown   Argument corresponds to parameter "initial" in function "reduce"   Argument type is "frozenset[Unknown | str]" (reportUnknownArgumentType)
basedpyright: loopy/codegen/loop.py#L376
Argument type is partially unknown   Argument corresponds to parameter "function" in function "reduce"   Argument type is "(self: frozenset[Unknown], *s: Iterable[_S@union]) -> frozenset[Unknown | _S@union]" (reportUnknownArgumentType)
basedpyright: loopy/codegen/loop.py#L376
Type of "union" is partially unknown   Type of "union" is "(self: frozenset[Unknown], *s: Iterable[_S@union]) -> frozenset[Unknown | _S@union]" (reportUnknownMemberType)
basedpyright: loopy/codegen/loop.py#L374
This type is deprecated as of Python 3.9; use "frozenset" instead (reportDeprecated)
basedpyright: loopy/codegen/loop.py#L374
Function "_get_intersecting_inames" is not accessed (reportUnusedFunction)
basedpyright: loopy/codegen/loop.py#L32
This type is deprecated as of Python 3.9; use "frozenset" instead (reportDeprecated)
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project arraycontext: arraycontext/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytato: pytato/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/pytools/__init__.py#L1109
Encountered 'numpy.ndarray' in a dataclass_array_container. This is deprecated and will stop working in 2026. If you meant an object array, use pytools.obj_array.ObjectArray. For other uses, file an issue to discuss.
Tests for downstream project meshmode: meshmode/test/test_array.py#L59
'bcast_obj_array' is deprecated and will be unsupported from 2025. Use 'bcasts_across_obj_array', with equivalent meaning.
Tests for downstream project meshmode: meshmode/meshmode/dof_array.py#L81
Broadcasting array context array types across <class 'meshmode.dof_array.DOFArray'> has been implicitly enabled. As of 2026, this will no longer work. Use arraycontext.Bcast* object wrappers for roughly equivalent functionality. See the discussion in https://github.com/inducer/arraycontext/pull/190. To opt out now (and avoid this warning), pass _bcast_actx_array_type=False.
Tests for downstream project meshmode: meshmode/meshmode/dof_array.py#L81
'bcast_numpy_array=True' is deprecated and will be unsupported from 2025.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project meshmode: meshmode/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/test/test_reductions.py#L167
Broadcasting array context array types across <class 'test_reductions.MyContainer'> has been implicitly enabled. As of 2026, this will no longer work. Use arraycontext.Bcast* object wrappers for roughly equivalent functionality. See the discussion in https://github.com/inducer/arraycontext/pull/190. To opt out now (and avoid this warning), pass _bcast_actx_array_type=False.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/pytools/__init__.py#L1109
Encountered 'numpy.ndarray' in a dataclass_array_container. This is deprecated and will stop working in 2026. If you meant an object array, use pytools.obj_array.ObjectArray. For other uses, file an issue to discuss.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/meshmode/dof_array.py#L81
Broadcasting array context array types across <class 'meshmode.dof_array.DOFArray'> has been implicitly enabled. As of 2026, this will no longer work. Use arraycontext.Bcast* object wrappers for roughly equivalent functionality. See the discussion in https://github.com/inducer/arraycontext/pull/190. To opt out now (and avoid this warning), pass _bcast_actx_array_type=False.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/meshmode/dof_array.py#L81
'bcast_numpy_array=True' is deprecated and will be unsupported from 2025.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project grudge: grudge/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/meshmode/dof_array.py#L81
Broadcasting array context array types across <class 'meshmode.dof_array.DOFArray'> has been implicitly enabled. As of 2026, this will no longer work. Use arraycontext.Bcast* object wrappers for roughly equivalent functionality. See the discussion in https://github.com/inducer/arraycontext/pull/190. To opt out now (and avoid this warning), pass _bcast_actx_array_type=False.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/meshmode/dof_array.py#L81
'bcast_numpy_array=True' is deprecated and will be unsupported from 2025.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L235
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L234
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L182
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.
Tests for downstream project pytential: pytential/.conda-root/envs/testing/lib/python3.13/site-packages/loopy/transform/reduction.py#L78
'pymbolic.primitives.Expression' is deprecated. Use 'ExpressionNode' instead. 'pymbolic.primitives.Expression' will continue to work until 2026.