diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index e8caca34..03a00c5e 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -35694,90 +35694,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, @@ -35790,55 +35710,7 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 69, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 18, "endColumn": 24, @@ -35934,74 +35806,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, @@ -36014,47 +35822,7 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 62, "endColumn": 68, @@ -36160,229 +35928,77 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 60, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 60, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 74, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 74, - "endColumn": 80, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 44, "endColumn": 50, @@ -36910,66 +36526,26 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, @@ -36990,15 +36566,15 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 29, "endColumn": 57, @@ -37022,7 +36598,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 40, "endColumn": 63, @@ -37030,7 +36606,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 40, "endColumn": 63, @@ -37038,18 +36614,10 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 62, + "endColumn": 68, "lineCount": 1 } } @@ -45602,8 +45170,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, @@ -45615,14 +45183,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46799,14 +46359,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -47441,22 +46993,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -48196,24 +47732,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, @@ -50539,22 +50059,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -50579,22 +50083,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -50618,22 +50106,6 @@ "endColumn": 38, "lineCount": 1 } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } } ], "./sumpy/test/test_misc.py": [ @@ -57677,22 +57149,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { diff --git a/doc/conf.py b/doc/conf.py index f54cc414..cf885d0e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -31,9 +31,13 @@ sphinxconfig_missing_reference_aliases = { # sympy "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", + # pytools + "ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # pymbolic "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", "Expression": "obj:pymbolic.typing.Expression", + # arraycontext + "Array": "obj:arraycontext.Array", # sumpy "ArithmeticExpr": "obj:sumpy.kernel.ArithmeticExpr", } diff --git a/sumpy/p2p.py b/sumpy/p2p.py index d8a259ea..683c30ac 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -26,6 +26,8 @@ THE SOFTWARE. """ +from typing import TYPE_CHECKING, Any + import numpy as np import loopy as lp @@ -35,6 +37,14 @@ from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like +if TYPE_CHECKING: + from collections.abc import Sequence + + import pyopencl as cl + from arraycontext import Array + from pytools.obj_array import ObjectArray1D + + __doc__ = """ Particle-to-particle @@ -198,7 +208,6 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): return knl - # }}} @@ -257,7 +266,13 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, targets, sources, strength, **kwargs): + def __call__(self, + queue: cl.CommandQueue, + targets: ObjectArray1D[Array] | Array, + sources: ObjectArray1D[Array] | Array, + strength: Sequence[Array], + **kwargs: Any, + ) -> tuple[cl.Event, Sequence[Array]]: knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) @@ -319,7 +334,12 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, targets, sources, **kwargs): + def __call__(self, + queue: cl.CommandQueue, + targets: ObjectArray1D[Array] | Array, + sources: ObjectArray1D[Array] | Array, + **kwargs: Any, + ) -> tuple[cl.Event, Sequence[Array]]: knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) @@ -417,7 +437,15 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): return knl - def __call__(self, queue, targets, sources, tgtindices, srcindices, **kwargs): + def __call__(self, + queue: cl.CommandQueue, + targets: ObjectArray1D[Array] | Array, + sources: ObjectArray1D[Array] | Array, + *, + tgtindices: Array, + srcindices: Array, + **kwargs: Any, + ) -> tuple[cl.Event, Sequence[Array]]: """Evaluate a subset of the P2P matrix interactions. :arg targets: target point coordinates, which can be an object @@ -749,12 +777,18 @@ def get_optimized_kernel(self, max_nsources_in_one_box, return knl - def __call__(self, queue, **kwargs): - max_nsources_in_one_box = kwargs.pop("max_nsources_in_one_box") - max_ntargets_in_one_box = kwargs.pop("max_ntargets_in_one_box") + def __call__(self, + queue: cl.CommandQueue, + targets: ObjectArray1D[Array] | Array, + sources: ObjectArray1D[Array] | Array, + *, + max_nsources_in_one_box: int, + max_ntargets_in_one_box: int, + **kwargs: Any, + ) -> tuple[cl.Event, Sequence[Array]]: if self.is_gpu: - source_dtype = kwargs.get("sources")[0].dtype + source_dtype = sources[0].dtype strength_dtype = kwargs.get("strength").dtype else: # these are unused for not GPU and defeats the caching @@ -769,7 +803,7 @@ def __call__(self, queue, **kwargs): strength_dtype=strength_dtype, ) - return knl(queue, **kwargs) + return knl(queue, targets=targets, sources=sources, **kwargs) # }}} diff --git a/sumpy/toys.py b/sumpy/toys.py index ad7ee551..0867ad37 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -28,7 +28,7 @@ from functools import partial from numbers import Number -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast import pytools.obj_array as obj_array from pytools import memoize_method @@ -632,7 +632,7 @@ def eval(self, targets: np.ndarray) -> np.ndarray: [cl_array.to_device(queue, self.weights)], **self.toy_ctx.extra_source_and_kernel_kwargs) - return potential.get(queue) + return cast("cl_array.Array", potential).get(queue) @property def center(self):