From 19f7cc74e9491eb3e4f9713978f4b301b0bf9248 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 22 Nov 2025 20:25:53 +0200 Subject: [PATCH 1/9] feat(typing): improve types in sumpy.array_context --- sumpy/array_context.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sumpy/array_context.py b/sumpy/array_context.py index 68d1bdc0..2436e30a 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -36,13 +36,15 @@ if TYPE_CHECKING: - from collections.abc import Iterator + from collections.abc import Iterator, Sequence + import islpy from numpy.typing import DTypeLike from arraycontext import ArrayContext from loopy import TranslationUnit from loopy.codegen import PreambleInfo + from loopy.kernel.instruction import InstructionBase from pytools.tag import ToTagSetConvertible @@ -58,7 +60,8 @@ # {{{ PyOpenCLArrayContext def make_loopy_program( - domains, statements, + domains: str | Sequence[str | islpy.BasicSet], + statements: Sequence[InstructionBase | str] | str, kernel_data: list[Any] | None = None, *, name: str = "sumpy_loopy_kernel", silenced_warnings: list[str] | str | None = None, @@ -125,7 +128,7 @@ def is_cl_cpu(actx: ArrayContext) -> bool: # {{{ pytest -def _acf(): +def _acf() -> ArrayContext: import pyopencl as cl ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) @@ -135,9 +138,13 @@ def _acf(): class PytestPyOpenCLArrayContextFactory( _PytestPyOpenCLArrayContextFactoryWithClass): - actx_class = PyOpenCLArrayContext + @property + @override + def actx_class(self) -> type[ArrayContext]: + return PyOpenCLArrayContext - def __call__(self): + @override + def __call__(self) -> ArrayContext: # NOTE: prevent any cache explosions during testing! from sympy.core.cache import clear_cache clear_cache() From 64003afcd096a9a4442d8a7a6a4a32246e60c050 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:03 +0200 Subject: [PATCH 2/9] feat(typing): improve types in sumpy.assignment_collection --- sumpy/assignment_collection.py | 75 +++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 749be035..3092aed8 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -24,6 +24,7 @@ """ import logging +from collections import defaultdict from typing import TYPE_CHECKING from typing_extensions import override @@ -32,39 +33,38 @@ if TYPE_CHECKING: - from collections.abc import Sequence + from collections.abc import Mapping, Sequence logger = logging.getLogger(__name__) __doc__ = """ - Manipulating batches of assignments ----------------------------------- .. autoclass:: SymbolicAssignmentCollection - """ class _SymbolGenerator: + taken_symbols: Mapping[str, sym.Basic] + base_to_count: dict[str, int] - def __init__(self, taken_symbols): + def __init__(self, taken_symbols: Mapping[str, sym.Basic]) -> None: self.taken_symbols = taken_symbols - from collections import defaultdict self.base_to_count = defaultdict(lambda: 0) - def _normalize(self, base): + def _normalize(self, base: str) -> str: # Strip off any _N suffix, to avoid generating conflicting names. import re base = re.split(r"_\d+$", base)[0] return base if base != "" else "expr" - def __call__(self, base="expr"): + def __call__(self, base: str = "expr") -> sym.Symbol: base = self._normalize(base) count = self.base_to_count[base] - def make_id_str(base, count): + def make_id_str(base: str, count: int) -> str: return "{base}{suffix}".format( base=base, suffix="" if count == 0 else "_" + str(count - 1)) @@ -78,13 +78,14 @@ def make_id_str(base, count): return sym.Symbol(id_str) - def __iter__(self): + def __iter__(self) -> _SymbolGenerator: return self - def next(self): + def next(self) -> sym.Symbol: return self() - __next__ = next + def __next__(self) -> sym.Symbol: + return self.next() # {{{ collection of assignments @@ -95,27 +96,29 @@ class SymbolicAssignmentCollection: a = 5*x b = a**2-k - In the above, *x* and *k* are external variables, and *a* and *b* - are variables managed by this object. + In the above, *x* and *k* are external variables, and *a* and *b* are + variables managed by this object. - This is a stateful object, but the only state changes allowed - are additions to *assignments*, and corresponding updates of - its lookup tables. + This is a stateful object, but the only state changes allowed are additions + to *assignments*, and corresponding updates of its lookup tables. - Note that user code is *only* allowed to hold on to *names* generated - by this class, but not expressions using names defined in this collection. + Note that user code is *only* allowed to hold on to *names* generated by + this class, but not expressions using names defined in this collection. + + .. autoattribute:: assignments + .. automethod:: add_assignment + .. automethod:: assign_unique + .. automethod:: assign_temp + .. automethod:: run_global_cse """ - assignments: dict[str, sym.Expr] - reversed_assignments: dict[sym.Expr, str] + assignments: dict[str, sym.Basic] + """A mapping from *var_name* to expressions.""" + reversed_assignments: dict[sym.Basic, str] symbol_generator: _SymbolGenerator all_dependencies_cache: dict[str, set[sym.Symbol]] - def __init__(self, assignments: dict[str, sym.Expr] | None = None): - """ - :arg assignments: mapping from *var_name* to expression - """ - + def __init__(self, assignments: dict[str, sym.Basic] | None = None) -> None: if assignments is None: assignments = {} @@ -126,13 +129,14 @@ def __init__(self, assignments: dict[str, sym.Expr] | None = None): self.all_dependencies_cache = {} @override - def __str__(self): + def __str__(self) -> str: return "\n".join( f"{name} <- {expr}" for name, expr in self.assignments.items()) - def get_all_dependencies(self, var_name: str): + def get_all_dependencies(self, var_name: str) -> set[sym.Symbol]: """Including recursive dependencies.""" + try: return self.all_dependencies_cache[var_name] except KeyError: @@ -157,9 +161,9 @@ def get_all_dependencies(self, var_name: str): def add_assignment(self, name: str, - expr: sym.Expr, + expr: sym.Basic, root_name: str | None = None, - retain_name: bool = True): + retain_name: bool = True) -> str: assert isinstance(name, str) assert name not in self.assignments @@ -176,7 +180,7 @@ def add_assignment(self, return name - def assign_unique(self, name_base: str, expr: sym.Expr): + def assign_unique(self, name_base: str, expr: sym.Basic) -> str: """Assign *expr* to a new variable whose name is based on *name_base*. Return the new variable name. """ @@ -184,7 +188,7 @@ def assign_unique(self, name_base: str, expr: sym.Expr): return self.add_assignment(new_name, expr) - def assign_temp(self, name_base: str, expr: sym.Expr): + def assign_temp(self, name_base: str, expr: sym.Basic) -> str: """If *expr* is mapped to a existing variable, then return the existing variable or assign *expr* to a new variable whose name is based on *name_base*. Return the variable name *expr* is mapped to in either case. @@ -192,7 +196,10 @@ def assign_temp(self, name_base: str, expr: sym.Expr): new_name = self.symbol_generator(name_base).name return self.add_assignment(new_name, expr, retain_name=False) - def run_global_cse(self, extra_exprs: Sequence[sym.Expr] | None = None): + def run_global_cse( + self, + extra_exprs: Sequence[sym.Expr] | None = None + ) -> Sequence[sym.Basic]: if extra_exprs is None: extra_exprs = [] @@ -212,7 +219,8 @@ def run_global_cse(self, extra_exprs: Sequence[sym.Expr] | None = None): # from sumpy.symbolic import checked_cse from sumpy.cse import cse - new_assignments, new_exprs = cse([*assign_exprs, *extra_exprs], + new_assignments, new_exprs = cse( + [*assign_exprs, *extra_exprs], symbols=self.symbol_generator) new_assign_exprs = new_exprs[:len(assign_exprs)] @@ -236,6 +244,7 @@ def run_global_cse(self, extra_exprs: Sequence[sym.Expr] | None = None): logger.info("common subexpression elimination: done after %.2f s", time.time() - start_time) + return new_extra_exprs # }}} From c8e0930d4d24f8925ead3a2e501b8a9016bc92c8 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:24 +0200 Subject: [PATCH 3/9] feat(typing): add types to OrderedSet --- sumpy/tools.py | 53 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 99f4545e..755f13ad 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -31,16 +31,17 @@ import logging import warnings from abc import ABC, abstractmethod -from collections.abc import Hashable, Sequence, Set as AbstractSet +from collections.abc import Hashable, Iterable, Iterator, Sequence, Set as AbstractSet from dataclasses import dataclass from typing import TYPE_CHECKING, Any, TypeAlias, cast import numpy as np +from typing_extensions import override import loopy as lp from pymbolic.mapper.dependency import DependencyMapper from pyopencl.characterize import get_pocl_version -from pytools import memoize_method +from pytools import T, memoize_method from pytools.tag import Tag, tag_dataclass import sumpy.symbolic as sym @@ -376,62 +377,80 @@ def get_kernel(self) -> lp.TranslationUnit: from collections.abc import MutableSet -class OrderedSet(MutableSet): +Link: TypeAlias = "list[Any]" - def __init__(self, iterable=None): + +class OrderedSet(MutableSet[T]): + end: Link + map: dict[T, Link] + + def __init__(self, iterable: Iterable[T] | None = None) -> None: self.end = end = [] end += [None, end, end] # sentinel node for doubly linked list self.map = {} # key --> [key, prev, next] + if iterable is not None: self |= iterable - def __len__(self): + @override + def __len__(self) -> int: return len(self.map) - def __contains__(self, key): + @override + def __contains__(self, key: object) -> bool: return key in self.map - def add(self, key): - if key not in self.map: + @override + def add(self, value: T) -> None: + if value not in self.map: end = self.end curr = end[1] - curr[2] = end[1] = self.map[key] = [key, curr, end] + curr[2] = end[1] = self.map[value] = [value, curr, end] - def discard(self, key): - if key in self.map: - key, prev, next = self.map.pop(key) + @override + def discard(self, value: T) -> None: + if value in self.map: + _key, prev, next = self.map.pop(value) prev[2] = next next[1] = prev - def __iter__(self): + @override + def __iter__(self) -> Iterator[T]: end = self.end curr = end[2] while curr is not end: yield curr[0] curr = curr[2] - def __reversed__(self): + def __reversed__(self) -> Iterator[T]: end = self.end curr = end[1] while curr is not end: yield curr[0] curr = curr[1] - def pop(self, last=True): + @override + def pop(self, last: bool = True) -> T: if not self: raise KeyError("set is empty") + key = self.end[1][0] if last else self.end[2][0] self.discard(key) + return key - def __repr__(self): + @override + def __repr__(self) -> str: if not self: return f"{self.__class__.__name__}()" + return f"{self.__class__.__name__}({list(self)!r})" - def __eq__(self, other): + @override + def __eq__(self, other: object) -> bool: if isinstance(other, OrderedSet): return len(self) == len(other) and list(self) == list(other) + return set(self) == set(other) # }}} From f0d43388c20e11430de2dfd320fd082168b49933 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:41 +0200 Subject: [PATCH 4/9] feat(typing): add types in sumpy.cse --- sumpy/cse.py | 137 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 54 deletions(-) diff --git a/sumpy/cse.py b/sumpy/cse.py index a72f1c58..384308b8 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -67,9 +67,11 @@ # }}} -from sympy.utilities.iterables import numbered_symbols +from typing import TYPE_CHECKING, TypeAlias, cast -from sumpy.symbolic import Add, Basic, Derivative, Mul, Pow, Subs, Symbol, _coeff_isneg +from typing_extensions import override + +import sumpy.symbolic as sym try: @@ -78,6 +80,8 @@ # NOTE: deprecated and moved in sympy 1.10 from sympy.core.compatibility import iterable +if TYPE_CHECKING: + from collections.abc import Callable, Iterator, Sequence __doc__ = """ @@ -90,12 +94,17 @@ # Don't CSE child nodes of these classes. -CSE_NO_DESCEND_CLASSES = (Derivative, Subs) +CSE_NO_DESCEND_CLASSES = (sym.Derivative, sym.Subs) + +OptimizationCallable: TypeAlias = "Callable[[sym.Basic], sym.Basic]" +OptimizationPair: TypeAlias = "tuple[OptimizationCallable, OptimizationCallable]" # {{{ cse pre/postprocessing -def preprocess_for_cse(expr, optimizations): +def preprocess_for_cse( + expr: sym.Basic, optimizations: Sequence[OptimizationPair], + ) -> sym.Basic: """ Preprocess an expression to optimize for common subexpression elimination. @@ -111,7 +120,9 @@ def preprocess_for_cse(expr, optimizations): return expr -def postprocess_for_cse(expr, optimizations): +def postprocess_for_cse( + expr: sym.Basic, optimizations: Sequence[OptimizationPair], + ) -> sym.Basic: """ Postprocess an expression after common subexpression elimination to return the expression to canonical sympy form. @@ -259,16 +270,23 @@ def update_func_argset(self, func_i, new_argset): class Unevaluated: + func: type[sym.Basic] + args: Sequence[int | float | sym.Expr] - def __init__(self, func, args): + def __init__(self, + func: type[sym.Basic], + args: Sequence[int | float | sym.Expr]) -> None: self.func = func self.args = args - def __str__(self): + @override + def __str__(self) -> str: return "Uneval<{}>({})".format( self.func, ", ".join(str(a) for a in self.args)) - __repr__ = __str__ + @override + def __repr__(self) -> str: + return str(self) def match_common_args(func_class, funcs, opt_subs): @@ -362,7 +380,7 @@ def match_common_args(func_class, funcs, opt_subs): arg_tracker.stop_arg_tracking(i) -def opt_cse(exprs): +def opt_cse(exprs: Sequence[sym.Basic]) -> dict[sym.Basic, sym.Basic | Unevaluated]: """ Find optimization opportunities in Adds, Muls, Pows and negative coefficient Muls @@ -370,18 +388,20 @@ def opt_cse(exprs): :arg exprs: A list of sympy expressions: the expressions to optimize. :return: A dictionary of expression substitutions """ - opt_subs = {} + opt_subs: dict[sym.Basic, sym.Basic | Unevaluated] = {} from sumpy.tools import OrderedSet - adds = OrderedSet() - muls = OrderedSet() + adds: OrderedSet[sym.Add] = OrderedSet() + muls: OrderedSet[sym.Mul] = OrderedSet() - seen_subexp = set() + seen_subexp: set[sym.Basic] = set() # {{{ look for optimization opportunities, clean up minus signs - def find_opts(expr): - if not isinstance(expr, Basic): + from sumpy.symbolic import _coeff_isneg + + def find_opts(expr: sym.Basic) -> None: + if not isinstance(expr, sym.Basic): return if expr.is_Atom: @@ -393,10 +413,11 @@ def find_opts(expr): if iterable(expr): for item in expr: find_opts(item) + return if expr in seen_subexp: - return expr + return seen_subexp.add(expr) @@ -404,31 +425,31 @@ def find_opts(expr): find_opts(arg) if _coeff_isneg(expr): - neg_expr = -expr + neg_expr = cast("sym.Expr", -expr) if not neg_expr.is_Atom: - opt_subs[expr] = Unevaluated(Mul, (-1, neg_expr)) + opt_subs[expr] = Unevaluated(sym.Mul, (-1, neg_expr)) seen_subexp.add(neg_expr) expr = neg_expr - if isinstance(expr, Mul): + if isinstance(expr, sym.Mul): muls.add(expr) - elif isinstance(expr, Add): + elif isinstance(expr, sym.Add): adds.add(expr) - elif isinstance(expr, Pow): + elif isinstance(expr, sym.Pow): base, exp = expr.args if _coeff_isneg(exp): - opt_subs[expr] = Unevaluated(Pow, (Pow(base, -exp), -1)) + opt_subs[expr] = Unevaluated(sym.Pow, (sym.Pow(base, -exp), -1)) # }}} for e in exprs: - if isinstance(e, Basic): + if isinstance(e, sym.Basic): find_opts(e) - match_common_args(Add, list(adds), opt_subs) - match_common_args(Mul, list(muls), opt_subs) + match_common_args(sym.Add, list(adds), opt_subs) + match_common_args(sym.Mul, list(muls), opt_subs) return opt_subs @@ -437,7 +458,11 @@ def find_opts(expr): # {{{ tree cse -def tree_cse(exprs, symbols, opt_subs=None): +def tree_cse(exprs: Sequence[sym.Basic], + symbols: Iterator[sym.Symbol], + opt_subs: dict[sym.Basic, sym.Basic | Unevaluated] | None = None, + ) -> tuple[Sequence[tuple[sym.Symbol, sym.Basic]], + Sequence[sym.Basic]]: """ Perform raw CSE on an expression tree, taking opt_subs into account. @@ -454,23 +479,21 @@ def tree_cse(exprs, symbols, opt_subs=None): # {{{ find repeated sub-expressions and used symbols - to_eliminate = set() - - seen_subexp = set() - excluded_symbols = set() + to_eliminate: set[sym.Basic | Unevaluated] = set() + seen_subexp: set[sym.Basic | Unevaluated] = set() + excluded_symbols: set[sym.Symbol] = set() - def find_repeated(expr): - if not isinstance(expr, Basic | Unevaluated): + def find_repeated(expr: sym.Basic | Unevaluated) -> None: + if not isinstance(expr, sym.Basic | Unevaluated): return - if isinstance(expr, Basic) and expr.is_Atom: - if expr.is_Symbol: + if isinstance(expr, sym.Basic) and expr.is_Atom: + if isinstance(expr, sym.Symbol): excluded_symbols.add(expr) return if iterable(expr): args = expr - else: if expr in seen_subexp: to_eliminate.add(expr) @@ -479,6 +502,7 @@ def find_repeated(expr): seen_subexp.add(expr) if expr in opt_subs: + assert isinstance(expr, sym.Basic) expr = opt_subs[expr] if isinstance(expr, CSE_NO_DESCEND_CLASSES): # noqa: SIM108 @@ -492,7 +516,7 @@ def find_repeated(expr): # }}} for e in exprs: - if isinstance(e, Basic): + if isinstance(e, sym.Basic): find_repeated(e) # {{{ rebuild tree @@ -500,12 +524,11 @@ def find_repeated(expr): # Remove symbols from the generator that conflict with names in the expressions. symbols = (symbol for symbol in symbols if symbol not in excluded_symbols) - replacements = [] + replacements: list[tuple[sym.Symbol, sym.Basic]] = [] + subs: dict[sym.Basic | Unevaluated, sym.Symbol] = {} - subs = {} - - def rebuild(expr): - if not isinstance(expr, Basic | Unevaluated): + def rebuild(expr: sym.Basic | Unevaluated) -> sym.Basic | Unevaluated: + if not isinstance(expr, sym.Basic | Unevaluated): return expr if not expr.args: @@ -520,6 +543,7 @@ def rebuild(expr): orig_expr = expr if expr in opt_subs: + assert isinstance(expr, sym.Basic) expr = opt_subs[expr] new_expr = expr @@ -530,21 +554,21 @@ def rebuild(expr): if orig_expr in to_eliminate: try: - sym = next(symbols) + symb = next(symbols) except StopIteration: raise ValueError("Symbols iterator ran out of symbols.") from None - subs[orig_expr] = sym - replacements.append((sym, new_expr)) - return sym + subs[orig_expr] = symb + replacements.append((symb, new_expr)) + return symb return new_expr # }}} - reduced_exprs = [] + reduced_exprs: list[sym.Basic] = [] for e in exprs: - if isinstance(e, Basic): # noqa: SIM108 + if isinstance(e, sym.Basic): # noqa: SIM108 reduced_e = rebuild(e) else: reduced_e = e @@ -555,7 +579,11 @@ def rebuild(expr): # }}} -def cse(exprs, symbols=None, optimizations=None): +def cse(exprs: sym.Basic | Sequence[sym.Basic], + symbols: Iterator[sym.Symbol] | None = None, + optimizations: Sequence[OptimizationPair] | None = None, + ) -> tuple[Sequence[tuple[sym.Symbol, sym.Basic]], + Sequence[sym.Basic]]: """ Perform common subexpression elimination on an expression. @@ -575,9 +603,8 @@ def cse(exprs, symbols=None, optimizations=None): * ``reduced_exprs`` is a list of sympy expressions. This contains the reduced expressions with all of the replacements above. """ - if isinstance(exprs, Basic): + if isinstance(exprs, sym.Basic): exprs = [exprs] - exprs = list(exprs) if optimizations is None: @@ -586,8 +613,9 @@ def cse(exprs, symbols=None, optimizations=None): # Preprocess the expressions to give us better optimization opportunities. reduced_exprs = [preprocess_for_cse(e, optimizations) for e in exprs] - if symbols is None: # noqa: SIM108 - symbols = numbered_symbols(cls=Symbol) + if symbols is None: + from sympy.utilities.iterables import numbered_symbols + symbols = numbered_symbols(cls=sym.Symbol) else: # In case we get passed an iterable with an __iter__ method instead of # an actual iterator. @@ -598,11 +626,12 @@ def cse(exprs, symbols=None, optimizations=None): # Main CSE algorithm. replacements, reduced_exprs = tree_cse(reduced_exprs, symbols, opt_subs) + replacements = list(replacements) # Postprocess the expressions to return the expressions to canonical form. - for i, (sym, subtree) in enumerate(replacements): + for i, (symb, subtree) in enumerate(replacements): subtree = postprocess_for_cse(subtree, optimizations) - replacements[i] = (sym, subtree) + replacements[i] = (symb, subtree) reduced_exprs = [postprocess_for_cse(e, optimizations) for e in reduced_exprs] return replacements, reduced_exprs From edb4ae9fff88ce93698a0696b61e71a6b503868d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 24 Nov 2025 11:19:25 +0200 Subject: [PATCH 5/9] fix: use version in parse_version --- sumpy/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/version.py b/sumpy/version.py index 34f17e71..86f24b25 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -31,7 +31,7 @@ def _parse_version(version: str) -> tuple[tuple[int, ...], str]: import re - m = re.match(r"^([0-9.]+)([a-z0-9]*?)$", VERSION_TEXT) + m = re.match(r"^([0-9.]+)([a-z0-9]*?)$", version) assert m is not None return tuple(int(nr) for nr in m.group(1).split(".")), m.group(2) From 42bd003996cb3fd1a3636eadb1502299c591cafe Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 15:51:38 +0300 Subject: [PATCH 6/9] feat(typing): use sp.Basic in to_loopy_insns --- sumpy/codegen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 15743627..fe9a5cda 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -736,7 +736,7 @@ def map_common_subexpression_uncached( # {{{ to-loopy conversion def to_loopy_insns( - assignments: Iterable[tuple[str, sym.Expr]], + assignments: Iterable[tuple[str, sym.Basic]], vector_names: AbstractSet[str] | None = None, pymbolic_expr_maps: Sequence[Callable[[Expression], Expression]] = (), complex_dtype: DTypeLike | None = None, From 97612540b33fb4b90273b8a0dfdad51a671d2df6 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 16:02:29 +0300 Subject: [PATCH 7/9] docs: rewire and fix missing classes --- doc/conf.py | 4 ++++ sumpy/cse.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index 9013483a..78ca6f54 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -13,6 +13,7 @@ intersphinx_mapping = { "arraycontext": ("https://documen.tician.de/arraycontext/", None), "boxtree": ("https://documen.tician.de/boxtree/", None), + "islpy": ("https://documen.tician.de/islpy", None), "loopy": ("https://documen.tician.de/loopy/", None), "matplotlib": ("https://matplotlib.org/stable/", None), "numpy": ("https://numpy.org/doc/stable/", None), @@ -47,6 +48,7 @@ "obj_array.ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # sympy "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", + "sym.Basic": "class:sympy.core.basic.Basic", "sym.Expr": "class:sympy.core.expr.Expr", "sym.Symbol": "class:sympy.core.symbol.Symbol", "sym.Matrix": "class:sympy.matrices.dense.DenseMatrix", @@ -58,6 +60,7 @@ # loopy "Assignment": "class:loopy.kernel.instruction.Assignment", "CallInstruction": "class:loopy.kernel.instruction.CallInstruction", + "InstructionBase": "class:loopy.kernel.instruction.InstructionBase", # arraycontext "Array": "obj:arraycontext.Array", "ArrayContext": "class:arraycontext.ArrayContext", @@ -65,6 +68,7 @@ "FMMTraversalInfo": "class:boxtree.traversal.FMMTraversalInfo", # sumpy "ArithmeticExpr": "obj:sumpy.kernel.ArithmeticExpr", + "OptimizationPair": "obj:sumpy.cse.OptimizationPair", } diff --git a/sumpy/cse.py b/sumpy/cse.py index 384308b8..120693f9 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -88,8 +88,9 @@ Common subexpression elimination -------------------------------- +.. autoclass:: OptimizationCallable +.. autoclass:: OptimizationPair .. autofunction:: cse - """ From a9290d3588f66017b1eee126ed5cffe2250288bf Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 9 Apr 2026 11:06:59 -0500 Subject: [PATCH 8/9] SymbolicAssignmentCollection.run_global_cse: do not modify in-place --- benchmarks/bench_translations.py | 2 +- sumpy/assignment_collection.py | 47 ++++++++++++++++++-------------- sumpy/e2e.py | 6 ++-- sumpy/expansion/loopy.py | 4 +-- sumpy/expansion/m2l.py | 2 +- sumpy/p2p.py | 2 +- sumpy/qbx.py | 2 +- 7 files changed, 36 insertions(+), 29 deletions(-) diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index 8c0e1772..bdb46e15 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -82,7 +82,7 @@ def track_m2l_op_count(self, param): dvec, tgt_rscale) for i, expr in enumerate(result): sac.assign_unique(f"coeff{i}", expr) - sac.run_global_cse() + sac = sac.run_global_cse() insns = to_loopy_insns(sac.assignments.items()) counter = pymbolic.mapper.flop_counter.CSEAwareFlopCounter() diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 3092aed8..45f4b767 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -25,9 +25,9 @@ import logging from collections import defaultdict -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, overload -from typing_extensions import override +from typing_extensions import Self, override import sumpy.symbolic as sym @@ -196,10 +196,18 @@ def assign_temp(self, name_base: str, expr: sym.Basic) -> str: new_name = self.symbol_generator(name_base).name return self.add_assignment(new_name, expr, retain_name=False) - def run_global_cse( - self, - extra_exprs: Sequence[sym.Expr] | None = None - ) -> Sequence[sym.Basic]: + @overload + def run_global_cse(self, extra_exprs: None = None) -> Self: ... + + @overload + def run_global_cse(self, + extra_exprs: Sequence[sym.Expr] + ) -> tuple[Self, Sequence[sym.Basic]]: ... + + def run_global_cse(self, + extra_exprs: Sequence[sym.Expr] | None = None + ) -> tuple[Self, Sequence[sym.Basic]] | Self: + orig_extra_exprs = extra_exprs if extra_exprs is None: extra_exprs = [] @@ -219,33 +227,32 @@ def run_global_cse( # from sumpy.symbolic import checked_cse from sumpy.cse import cse - new_assignments, new_exprs = cse( + new_cse_assignments, new_exprs = cse( [*assign_exprs, *extra_exprs], symbols=self.symbol_generator) new_assign_exprs = new_exprs[:len(assign_exprs)] new_extra_exprs = new_exprs[len(assign_exprs):] - for name, new_expr in zip(assign_names, new_assign_exprs, strict=True): - self.assignments[name] = new_expr + result_assignments: dict[str, sym.Basic] = {} - for name, value in new_assignments: + for name, value in new_cse_assignments: assert isinstance(name, sym.Symbol) - self.add_assignment(name.name, value) + result_assignments[name.name] = value - for name, new_expr in zip(assign_names, new_assign_exprs, strict=True): - # We want the assignment collection to be ordered correctly - # to make it easier for loopy to schedule. - # Deleting the original assignments and adding them again - # makes them occur after the CSE'd expression preserving - # the order of operations. - del self.assignments[name] - self.assignments[name] = new_expr + result_assignments = { + **result_assignments, + **dict(zip(assign_names, new_assign_exprs, strict=True)), + } logger.info("common subexpression elimination: done after %.2f s", time.time() - start_time) - return new_extra_exprs + result = type(self)(result_assignments) + if orig_extra_exprs is None: + return result + else: + return result, new_extra_exprs # }}} diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 10445272..0e5bdfd7 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -121,7 +121,7 @@ def get_translation_loopy_insns(self): self.src_expansion, src_coeff_exprs, src_rscale, dvec=dvec, tgt_rscale=tgt_rscale, sac=sac))] - sac.run_global_cse() + sac = sac.run_global_cse() from sumpy.codegen import to_loopy_insns return to_loopy_insns( @@ -177,7 +177,7 @@ def get_translation_loopy_insns(self): self.src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac))] - sac.run_global_cse() + sac = sac.run_global_cse() from sumpy.codegen import to_loopy_insns return to_loopy_insns( @@ -335,7 +335,7 @@ def get_translation_loopy_insns(self, result_dtype): m2l_translation_classes_dependent_data=( m2l_translation_classes_dependent_data)))] - sac.run_global_cse() + sac = sac.run_global_cse() from sumpy.codegen import to_loopy_insns return to_loopy_insns( diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index b662808c..a52cfbb5 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -90,7 +90,7 @@ def make_e2p_loopy_kernel( for i, knl in enumerate(kernels) } - sac.run_global_cse() + sac = sac.run_global_cse() code_transformers = ( [expansion.get_code_transformer()] @@ -194,7 +194,7 @@ def make_p2e_loopy_kernel( sac.add_assignment(f"coeffs{i}", coeff) for i, coeff in enumerate(coeffs) } - sac.run_global_cse() + sac = sac.run_global_cse() code_transformers = ( [expansion.get_code_transformer()] diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index ed42212f..5a77df51 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -1324,7 +1324,7 @@ def loopy_translation_classes_dependent_data( tgt_coeff_names = [ sac.assign_unique(f"m2l_translation_classes_dependent_data{i}", coeff_i) for i, coeff_i in enumerate(derivatives)] - sac.run_global_cse() + sac = sac.run_global_cse() from sumpy.codegen import to_loopy_insns from sumpy.tools import to_complex_dtype diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 7cf2dc75..ad80cdd7 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -147,7 +147,7 @@ def get_loopy_insns_and_result_names(self): for i, expr in enumerate(exprs) ] - sac.run_global_cse() + sac = sac.run_global_cse() from sumpy.codegen import to_loopy_insns loopy_insns = to_loopy_insns(sac.assignments.items(), diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 5c7428c9..edbe5519 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -161,7 +161,7 @@ def get_loopy_insns_and_result_names(self): logger.info("compute expansion expressions: done") - sac.run_global_cse() + sac = sac.run_global_cse() pymbolic_expr_maps = [knl.get_code_transformer() for knl in [ *self.target_kernels, *self.source_kernels]] From ca3368d03c1afc371826929e8dfa47977e407b94 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 15:51:55 +0300 Subject: [PATCH 9/9] chore: update baseline --- .basedpyright/baseline.json | 2386 +++++++++++------------------------ 1 file changed, 727 insertions(+), 1659 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index a62e1b17..53900ca2 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -337,54 +337,6 @@ } ], "./sumpy/array_context.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnusedParameter", "range": { @@ -401,38 +353,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 4, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAssignmentType", - "range": { - "startColumn": 17, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -442,259 +362,57 @@ } } ], - "./sumpy/assignment_collection.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 29, - "lineCount": 1 - } - }, + "./sumpy/codegen.py": [ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 68, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 52, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 65, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 48, - "endColumn": 64, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 64, - "lineCount": 1 - } - } - ], - "./sumpy/codegen.py": [ - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 57, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 19, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 32, "endColumn": 70, @@ -702,1092 +420,556 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 37, - "lineCount": 1 - } - } - ], - "./sumpy/cse.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 36, - "endColumn": 42, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 63, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 63, + "startColumn": 38, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 26, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } - }, + } + ], + "./sumpy/cse.py": [ { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 22, - "endColumn": 41, + "startColumn": 9, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 22, - "endColumn": 53, + "startColumn": 9, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 42, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 13, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 38, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 51, + "startColumn": 58, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 16, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 46, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 16, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 22, - "endColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 23, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 53, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 51, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, + "startColumn": 12, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, + "startColumn": 19, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 76, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 45, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 51, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 66, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 30, - "endColumn": 66, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 65, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 20, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 71, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 81, + "startColumn": 22, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 72, - "endColumn": 80, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 23, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 19, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, @@ -1795,623 +977,631 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 42, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 44, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 72, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 54, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 51, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 48, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 55, + "startColumn": 30, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 51, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 82, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 78, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 39, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 16, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 + "startColumn": 43, + "endColumn": 67, + "lineCount": 3 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 20, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 24, + "startColumn": 27, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 30, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 28, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 64, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 21, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 36, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 36, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 72, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 70, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 21, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 46, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, + "startColumn": 12, "endColumn": 23, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 21, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 20, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 25, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 47, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 62, + "startColumn": 45, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 62, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 69, + "startColumn": 16, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 52, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 52, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 8, + "startColumn": 24, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 17, - "endColumn": 22, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 37, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 39, - "endColumn": 51, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 13, + "endColumn": 38, "lineCount": 1 } } @@ -17125,6 +16315,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17133,6 +16331,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17141,6 +16347,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17149,6 +16363,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17157,6 +16379,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 11, + "endColumn": 39, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17165,6 +16395,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17173,6 +16411,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17181,6 +16427,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 34, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17189,6 +16443,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17197,6 +16459,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 11, + "endColumn": 39, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17325,6 +16595,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 66, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -17365,6 +16643,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 66, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -17413,6 +16699,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 53, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -17445,6 +16739,22 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17461,6 +16771,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17509,6 +16827,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -18117,14 +17443,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -18141,6 +17459,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -18256,8 +17582,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, @@ -18277,6 +17603,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 15, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -18317,22 +17651,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -18381,22 +17699,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -18430,18 +17732,18 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 48, + "endColumn": 49, "lineCount": 1 } }, @@ -18486,34 +17788,26 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 41, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 15, - "endColumn": 28, + "endColumn": 53, "lineCount": 1 } } @@ -20828,7 +20122,15 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", + "range": { + "startColumn": 18, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", "range": { "startColumn": 34, "endColumn": 61, @@ -20836,18 +20138,18 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, @@ -22906,18 +22208,18 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 32, - "endColumn": 68, - "lineCount": 1 + "startColumn": 42, + "endColumn": 17, + "lineCount": 3 } }, { "code": "reportArgumentType", "range": { - "startColumn": 49, - "endColumn": 67, + "startColumn": 32, + "endColumn": 68, "lineCount": 1 } }, @@ -23034,18 +22336,18 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 32, - "endColumn": 68, - "lineCount": 1 + "startColumn": 42, + "endColumn": 70, + "lineCount": 2 } }, { "code": "reportArgumentType", "range": { - "startColumn": 49, - "endColumn": 67, + "startColumn": 32, + "endColumn": 68, "lineCount": 1 } } @@ -24866,545 +24168,321 @@ } }, { - "code": "reportArgumentType", - "range": { - "startColumn": 43, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 46, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 49, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 40, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 43, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 14, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - } - ], - "./sumpy/tools.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 46, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } - }, + } + ], + "./sumpy/tools.py": [ { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 17, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 17, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 21, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 21, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 26, + "startColumn": 24, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 28, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 26, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 43, - "endColumn": 46, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, + "startColumn": 12, "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, + "startColumn": 18, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 11, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 21, "endColumn": 24, @@ -25412,26 +24490,26 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 66, + "endColumn": 71, "lineCount": 1 } }, @@ -29214,16 +28292,6 @@ } } ], - "./sumpy/version.py": [ - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 19, - "endColumn": 26, - "lineCount": 1 - } - } - ], "./sumpy/visualization.py": [ { "code": "reportAny",