From a2c830abed936e42424aad025b6d44bd82bb7750 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 8 May 2022 15:23:06 -0500 Subject: [PATCH 001/335] use unicode in DirectionalDerivative.__str__ --- sumpy/kernel.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index d307e6aa7..ccc30bcc8 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1091,8 +1091,10 @@ def replace_base_kernel(self, new_base_kernel): dir_vec_name=self.dir_vec_name) def __str__(self): - return r"{} . \/_{} {}".format( - self.dir_vec_name, self.directional_kind[0], self.inner_kernel) + return r"{}·∇_{} {}".format( + self.dir_vec_name, + "y" if self.directional_kind == "src" else "x", + self.inner_kernel) def __repr__(self): return "{}({!r}, {})".format( From 7f0e9b1045b6a7bda7462c86ba461a5b8684cf72 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 12 May 2022 15:50:52 -0500 Subject: [PATCH 002/335] Compute translation_classes_data if not given (#117) * Compute translation_classes_data if not given * Remove SumpyTranslationClassesData * update tests * use readable syntax --- sumpy/fmm.py | 89 +++++++++--------------------------------------- test/test_fmm.py | 41 +++++++--------------- 2 files changed, 29 insertions(+), 101 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 828497197..52cb9a603 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -235,54 +235,6 @@ def done(self): # }}} -# {{{ translation classes data - -class SumpyTranslationClassesData: - """A class for building and storing additional, optional data for - precomputation of translation classes passed to the expansion wrangler.""" - - def __init__(self, queue, trav, is_translation_per_level=True): - # FIXME: Queues should not be part of data. - self.queue = queue - self.trav = trav - self.tree = trav.tree - self.is_translation_per_level = is_translation_per_level - - @property - @memoize_method - def translation_classes_builder(self): - from boxtree.translation_classes import TranslationClassesBuilder - return TranslationClassesBuilder(self.queue.context) - - @memoize_method - def build_translation_classes_lists(self): - return self.translation_classes_builder(self.queue, self.trav, self.tree, - is_translation_per_level=self.is_translation_per_level)[0] - - @memoize_method - def m2l_translation_classes_lists(self): - return (self - .build_translation_classes_lists() - .from_sep_siblings_translation_classes) - - @memoize_method - def m2l_translation_vectors(self): - return (self - .build_translation_classes_lists() - .from_sep_siblings_translation_class_to_distance_vector) - - def m2l_translation_classes_level_starts(self): - return (self - .build_translation_classes_lists() - .from_sep_siblings_translation_classes_level_starts) - - -class SumpyTranslationClassesDataNotSuppliedWarning(UserWarning): - pass - -# }}} - - # {{{ expansion wrangler class SumpyExpansionWrangler(ExpansionWranglerInterface): @@ -315,7 +267,8 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, kernel_extra_kwargs=None, self_extra_kwargs=None, translation_classes_data=None, - preprocessed_mpole_dtype=None): + preprocessed_mpole_dtype=None, + *, _disable_translation_classes=False): super().__init__(tree_indep, traversal) self.issued_timing_data_warning = False @@ -353,27 +306,18 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, self.extra_kwargs = source_extra_kwargs.copy() self.extra_kwargs.update(self.kernel_extra_kwargs) - if base_kernel.is_translation_invariant: - if translation_classes_data is None: - from warnings import warn - if self.tree_indep.use_fft_for_m2l: - raise NotImplementedError( - "FFT based List 2 (multipole-to-local) translations " - "without translation_classes_data argument is not " - "implemented. Supply a translation_classes_data argument " - "to the wrangler for optimized List 2.") - else: - warn( - "List 2 (multipole-to-local) translations will be " - "unoptimized. Supply a translation_classes_data argument " - "to the wrangler for optimized List 2.", - SumpyTranslationClassesDataNotSuppliedWarning, - stacklevel=2) - self.supports_translation_classes = False - else: - self.supports_translation_classes = True - else: + if _disable_translation_classes or not base_kernel.is_translation_invariant: self.supports_translation_classes = False + else: + if translation_classes_data is None: + with cl.CommandQueue(self.tree_indep.cl_context) as queue: + from boxtree.translation_classes import TranslationClassesBuilder + translation_classes_builder = TranslationClassesBuilder( + queue.context) + translation_classes_data, _ = translation_classes_builder( + queue, traversal, self.tree, + is_translation_per_level=True) + self.supports_translation_classes = True self.translation_classes_data = translation_classes_data self.use_fft_for_m2l = self.tree_indep.use_fft_for_m2l @@ -407,7 +351,7 @@ def local_expansions_level_starts(self): def m2l_translation_class_level_start_box_nrs(self): with cl.CommandQueue(self.tree_indep.cl_context) as queue: data = self.translation_classes_data - return data.m2l_translation_classes_level_starts().get(queue) + return data.from_sep_siblings_translation_classes_level_starts.get(queue) @memoize_method def m2l_translation_classes_dependent_data_level_starts(self): @@ -726,8 +670,9 @@ def multipole_to_local_precompute(self): if ntranslation_classes == 0: continue + data = self.translation_classes_data m2l_translation_vectors = ( - self.translation_classes_data.m2l_translation_vectors()) + data.from_sep_siblings_translation_class_to_distance_vector) evt, _ = precompute_kernel( queue, @@ -767,7 +712,7 @@ def _add_m2l_precompute_kwargs(self, kwargs_for_m2l, kwargs_for_m2l["translation_classes_level_start"] = \ translation_classes_level_start kwargs_for_m2l["m2l_translation_classes_lists"] = \ - self.translation_classes_data.m2l_translation_classes_lists() + self.translation_classes_data.from_sep_siblings_translation_classes def multipole_to_local(self, level_start_target_box_nrs, diff --git a/test/test_fmm.py b/test/test_fmm.py index 3c5ec6d7c..8e7bc3299 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -38,12 +38,9 @@ LinearPDEConformingVolumeTaylorLocalExpansion) from sumpy.fmm import ( SumpyTreeIndependentDataForWrangler, - SumpyExpansionWrangler, - SumpyTranslationClassesData, - SumpyTranslationClassesDataNotSuppliedWarning) + SumpyExpansionWrangler) import pytest -import warnings import logging logger = logging.getLogger(__name__) @@ -57,7 +54,7 @@ faulthandler.enable() -@pytest.mark.parametrize("optimized_m2l, use_fft", +@pytest.mark.parametrize("use_translation_classes, use_fft", [(False, False), (True, False), (True, True)]) @pytest.mark.parametrize( ("knl", "local_expn_class", "mpole_expn_class", @@ -84,7 +81,7 @@ False), ]) def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, - order_varies_with_level, optimized_m2l, use_fft): + order_varies_with_level, use_translation_classes, use_fft): logging.basicConfig(level=logging.INFO) if local_expn_class == VolumeTaylorLocalExpansion and use_fft: @@ -188,11 +185,6 @@ def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, for order in order_values: target_kernels = [knl] - if optimized_m2l: - translation_classes_data = SumpyTranslationClassesData(queue, trav) - else: - translation_classes_data = None - tree_indep = SumpyTreeIndependentDataForWrangler( ctx, partial(mpole_expn_class, knl), @@ -206,14 +198,10 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): def fmm_level_to_order(kernel, kernel_args, tree, lev): return order - with warnings.catch_warnings(): - if not optimized_m2l: - warnings.simplefilter("ignore", - SumpyTranslationClassesDataNotSuppliedWarning) - wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, - fmm_level_to_order=fmm_level_to_order, - kernel_extra_kwargs=extra_kwargs, - translation_classes_data=translation_classes_data) + wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, + fmm_level_to_order=fmm_level_to_order, + kernel_extra_kwargs=extra_kwargs, + _disable_translation_classes=not use_translation_classes) from boxtree.fmm import drive_fmm @@ -315,8 +303,7 @@ def test_unified_single_and_double(ctx_factory): strength_usage=strength_usage) wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order, - source_extra_kwargs=source_extra_kwargs, - translation_classes_data=SumpyTranslationClassesData(queue, trav)) + source_extra_kwargs=source_extra_kwargs) from boxtree.fmm import drive_fmm @@ -376,8 +363,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory): target_kernels) wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, - fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order, - translation_classes_data=SumpyTranslationClassesData(queue, trav)) + fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order) from boxtree.fmm import drive_fmm timing_data = {} @@ -435,8 +421,7 @@ def test_sumpy_fmm_exclude_self(ctx_factory): wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order, - self_extra_kwargs=self_extra_kwargs, - translation_classes_data=SumpyTranslationClassesData(queue, trav)) + self_extra_kwargs=self_extra_kwargs) from boxtree.fmm import drive_fmm @@ -510,8 +495,7 @@ def test_sumpy_axis_source_derivative(ctx_factory): wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order, - self_extra_kwargs=self_extra_kwargs, - translation_classes_data=SumpyTranslationClassesData(queue, trav)) + self_extra_kwargs=self_extra_kwargs) from boxtree.fmm import drive_fmm @@ -580,8 +564,7 @@ def test_sumpy_target_point_multiplier(ctx_factory, deriv_axes): wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order, - self_extra_kwargs=self_extra_kwargs, - translation_classes_data=SumpyTranslationClassesData(queue, trav)) + self_extra_kwargs=self_extra_kwargs) from boxtree.fmm import drive_fmm From daa4118947d5d4a1b892280720d48dde611288e2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 13 May 2022 17:41:12 -0500 Subject: [PATCH 003/335] Use a separate class for M2L translation and change expansion default to FFT (#113) * Use a separate class for M2L translation * Fix docs and caching * M2L Translation Factory * vim markers * Fix tests * Fix toys * Fix test_m2l_toeplitz * Fix more tests * Use a better rscale to get the test passing * Use pytential dev branch * Try 2r/order instead of r/order --- .github/workflows/ci.yml | 4 +- doc/expansion.rst | 5 + sumpy/e2e.py | 79 ++-- sumpy/expansion/local.py | 581 +++-------------------------- sumpy/expansion/m2l.py | 770 +++++++++++++++++++++++++++++++++++++++ sumpy/fmm.py | 40 +- sumpy/toys.py | 8 + test/test_fmm.py | 14 +- test/test_kernels.py | 10 +- test/test_misc.py | 6 +- 10 files changed, 912 insertions(+), 605 deletions(-) create mode 100644 sumpy/expansion/m2l.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12c8d4ce1..c369d1fc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,8 +88,8 @@ jobs: run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 - if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "rscale" ]]; then - DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@level_to_rscale + if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "m2l" ]]; then + DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@m2l_translation fi test_downstream "$DOWNSTREAM_PROJECT" diff --git a/doc/expansion.rst b/doc/expansion.rst index ffb1e1220..5d72d735a 100644 --- a/doc/expansion.rst +++ b/doc/expansion.rst @@ -18,6 +18,11 @@ Multipole Expansions .. automodule:: sumpy.expansion.multipole +Multipole to Local Translations +------------------------------- + +.. automodule:: sumpy.expansion.m2l + Estimating Expansion Orders --------------------------- diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 6f742f727..b35f86cd1 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -306,12 +306,13 @@ def get_translation_loopy_insns(self, result_dtype): src_rscale = sym.Symbol("src_rscale") tgt_rscale = sym.Symbol("tgt_rscale") + m2l_translation = self.tgt_expansion.m2l_translation m2l_translation_classes_dependent_ndata = ( - self.tgt_expansion.m2l_translation_classes_dependent_ndata( - self.src_expansion)) + m2l_translation.translation_classes_dependent_ndata(self.tgt_expansion, + self.src_expansion)) m2l_translation_classes_dependent_data = \ - [sym.Symbol(f"data{i}") - for i in range(m2l_translation_classes_dependent_ndata)] + [sym.Symbol(f"data{i}") + for i in range(m2l_translation_classes_dependent_ndata)] ncoeff_src = len(self.src_expansion) @@ -346,13 +347,14 @@ def get_inner_loopy_kernel(self, result_dtype): except NotImplementedError: pass - ndata = self.tgt_expansion.m2l_translation_classes_dependent_ndata( - self.src_expansion) - if self.tgt_expansion.use_preprocessing_for_m2l: - ncoeff_src = self.tgt_expansion.m2l_preprocess_multipole_nexprs( - self.src_expansion) - ncoeff_tgt = self.tgt_expansion.m2l_postprocess_local_nexprs( - self.src_expansion) + m2l_translation = self.tgt_expansion.m2l_translation + ndata = m2l_translation.translation_classes_dependent_ndata( + self.tgt_expansion, self.src_expansion) + if m2l_translation.use_preprocessing: + ncoeff_src = m2l_translation.preprocess_multipole_nexprs( + self.tgt_expansion, self.src_expansion) + ncoeff_tgt = m2l_translation.postprocess_local_nexprs( + self.tgt_expansion, self.src_expansion) else: ncoeff_src = len(self.src_expansion) ncoeff_tgt = len(self.tgt_expansion) @@ -380,15 +382,16 @@ def get_inner_loopy_kernel(self, result_dtype): ) def get_kernel(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation m2l_translation_classes_dependent_ndata = \ - self.tgt_expansion.m2l_translation_classes_dependent_ndata( - self.src_expansion) - - if self.tgt_expansion.use_preprocessing_for_m2l: - ncoeff_src = self.tgt_expansion.m2l_preprocess_multipole_nexprs( - self.src_expansion) - ncoeff_tgt = self.tgt_expansion.m2l_postprocess_local_nexprs( - self.src_expansion) + m2l_translation.translation_classes_dependent_ndata( + self.tgt_expansion, self.src_expansion) + + if m2l_translation.use_preprocessing: + ncoeff_src = m2l_translation.preprocess_multipole_nexprs( + self.tgt_expansion, self.src_expansion) + ncoeff_tgt = m2l_translation.postprocess_local_nexprs( + self.tgt_expansion, self.src_expansion) else: ncoeff_src = len(self.src_expansion) ncoeff_tgt = len(self.tgt_expansion) @@ -535,17 +538,18 @@ def get_translation_loopy_insns(self, result_dtype): dvec = make_sym_vector("d", self.dim) src_rscale = sym.Symbol("src_rscale") - tgt_rscale = sym.Symbol("tgt_rscale") + + m2l_translation = self.tgt_expansion.m2l_translation from sumpy.assignment_collection import SymbolicAssignmentCollection sac = SymbolicAssignmentCollection() tgt_coeff_names = [ - sac.assign_unique( - f"m2l_translation_classes_dependent_expr{i}", coeff_i) - for i, coeff_i in enumerate( - self.tgt_expansion.m2l_translation_classes_dependent_data( - self.src_expansion, src_rscale, - dvec, tgt_rscale, sac))] + sac.assign_unique( + f"m2l_translation_classes_dependent_expr{i}", coeff_i) + for i, coeff_i in enumerate( + m2l_translation.translation_classes_dependent_data( + self.tgt_expansion, self.src_expansion, src_rscale, + dvec, sac=sac))] sac.run_global_cse() @@ -560,8 +564,8 @@ def get_translation_loopy_insns(self, result_dtype): def get_kernel(self, result_dtype): m2l_translation_classes_dependent_ndata = \ - self.tgt_expansion.m2l_translation_classes_dependent_ndata( - self.src_expansion) + self.tgt_expansion.m2l_translation.translation_classes_dependent_ndata( + self.tgt_expansion, self.src_expansion) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ @@ -665,8 +669,8 @@ def get_loopy_insns(self, result_dtype): preprocessed_src_coeff_names = [ sac.assign_unique(f"preprocessed_src_coeff{i}", coeff_i) for i, coeff_i in enumerate( - self.tgt_expansion.m2l_preprocess_multipole_exprs( - self.src_expansion, src_coeff_exprs, + self.tgt_expansion.m2l_translation.preprocess_multipole_exprs( + self.tgt_expansion, self.src_expansion, src_coeff_exprs, sac=sac, src_rscale=src_rscale))] sac.run_global_cse() @@ -683,7 +687,8 @@ def get_loopy_insns(self, result_dtype): def get_kernel(self, result_dtype): nsrc_coeffs = len(self.src_expansion) npreprocessed_src_coeffs = \ - self.tgt_expansion.m2l_preprocess_multipole_nexprs(self.src_expansion) + self.tgt_expansion.m2l_translation.preprocess_multipole_nexprs( + self.tgt_expansion, self.src_expansion) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ @@ -752,8 +757,10 @@ class M2LPostprocessLocal(E2EBase): default_name = "m2l_postprocess_local" def get_loopy_insns(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation ncoeffs_before_postprocessing = \ - self.tgt_expansion.m2l_postprocess_local_nexprs(self.tgt_expansion) + m2l_translation.postprocess_local_nexprs(self.tgt_expansion, + self.src_expansion) tgt_coeff_exprs_before_postprocessing = [ sym.Symbol(f"tgt_coeff_before_postprocessing{i}") @@ -765,8 +772,9 @@ def get_loopy_insns(self, result_dtype): from sumpy.assignment_collection import SymbolicAssignmentCollection sac = SymbolicAssignmentCollection() - tgt_coeff_exprs = self.tgt_expansion.m2l_postprocess_local_exprs( - self.tgt_expansion, tgt_coeff_exprs_before_postprocessing, + tgt_coeff_exprs = m2l_translation.postprocess_local_exprs( + self.tgt_expansion, self.src_expansion, + tgt_coeff_exprs_before_postprocessing, sac=sac, src_rscale=src_rscale, tgt_rscale=tgt_rscale) if result_dtype in (np.float32, np.float64): @@ -792,7 +800,8 @@ def get_loopy_insns(self, result_dtype): def get_kernel(self, result_dtype): ntgt_coeffs = len(self.tgt_expansion) ntgt_coeffs_before_postprocessing = \ - self.tgt_expansion.m2l_postprocess_local_nexprs(self.tgt_expansion) + self.tgt_expansion.m2l_translation.postprocess_local_nexprs( + self.tgt_expansion, self.src_expansion) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 72d91c01d..d170aba9a 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -21,10 +21,7 @@ """ import math -from typing import Tuple, Any -import pymbolic -import loopy as lp from pytools import single_valued import sumpy.symbolic as sym @@ -32,9 +29,7 @@ ExpansionBase, VolumeTaylorExpansion, LinearPDEConformingVolumeTaylorExpansion) -from sumpy.tools import ( - add_to_sac, fft, - mi_increment_axis, matvec_toeplitz_upper_triangular) +from sumpy.tools import add_to_sac, mi_increment_axis import logging logger = logging.getLogger(__name__) @@ -56,38 +51,23 @@ class LocalExpansionBase(ExpansionBase): .. attribute:: kernel .. attribute:: order .. attribute:: use_rscale - .. attribute:: use_fft_for_m2l - .. attribute:: use_preprocessing_for_m2l - - .. automethod:: m2l_translation_classes_dependent_data - .. automethod:: m2l_translation_classes_dependent_ndata - .. automethod:: m2l_preprocess_multipole_exprs - .. automethod:: m2l_preprocess_multipole_nexprs - .. automethod:: m2l_postprocess_local_exprs - .. automethod:: m2l_postprocess_local_nexprs + .. automethod:: translate_from """ - init_arg_names = ("kernel", "order", "use_rscale", "use_fft_for_m2l", - "use_preprocessing_for_m2l") + init_arg_names = ("kernel", "order", "use_rscale", "m2l_translation") def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + m2l_translation=None): super().__init__(kernel, order, use_rscale) - self.use_fft_for_m2l = use_fft_for_m2l - if use_preprocessing_for_m2l is None: - self.use_preprocessing_for_m2l = use_fft_for_m2l - else: - self.use_preprocessing_for_m2l = use_preprocessing_for_m2l + self.m2l_translation = m2l_translation def with_kernel(self, kernel): return type(self)(kernel, self.order, self.use_rscale, - use_fft_for_m2l=self.use_fft_for_m2l, - use_preprocessing_for_m2l=self.use_preprocessing_for_m2l) + self.m2l_translation) def update_persistent_hash(self, key_hash, key_builder): super().update_persistent_hash(key_hash, key_builder) - key_builder.rec(key_hash, self.use_fft_for_m2l) - key_builder.rec(key_hash, self.use_preprocessing_for_m2l) + key_builder.rec(key_hash, self.m2l_translation) def __eq__(self, other): return ( @@ -95,83 +75,9 @@ def __eq__(self, other): and self.kernel == other.kernel and self.order == other.order and self.use_rscale == other.use_rscale - and self.use_fft_for_m2l == other.use_fft_for_m2l - and self.use_preprocessing_for_m2l == other.use_preprocessing_for_m2l + and self.m2l_translation == other.m2l_translation ) - def m2l_translation_classes_dependent_data(self, src_expansion, src_rscale, - dvec, tgt_rscale, sac) -> Tuple[Any]: - """Return an iterable of expressions that needs to be precomputed - for multipole-to-local translations that depend only on the - distance between the multipole center and the local center which - is given as *dvec*. - - Since there are only a finite number of different values for the - distance between per level, these can be precomputed for the tree. - In :mod:`boxtree`, these distances are referred to as translation - classes. - """ - return tuple() - - def m2l_translation_classes_dependent_ndata(self, src_expansion): - """Return the number of expressions returned by - :func:`~sumpy.expansion.local.LocalExpansionBase.m2l_translation_classes_dependent_data`. - This method exists because calculating the number of expressions using - the above method might be costly and - :func:`~sumpy.expansion.local.LocalExpansionBase.m2l_translation_classes_dependent_data` - cannot be memoized due to it having side effects through the argument - *sac*. - """ - return 0 - - def m2l_preprocess_multipole_exprs(self, src_expansion, src_coeff_exprs, sac, - src_rscale): - """Return the preprocessed multipole expansion for an optimized M2L. - Preprocessing happens once per source box before M2L translation is done. - - When FFT is turned on, the input expressions are transformed into Fourier - space. These expressions are used in a separate :mod:`loopy` kernel - to avoid having to transform for each target and source box pair. - When FFT is turned off, the expressions are equal to the multipole - expansion coefficients with zeros added - to make the M2L computation a circulant matvec. - """ - raise NotImplementedError - - def m2l_preprocess_multipole_nexprs(self, src_expansion): - """Return the number of expressions returned by - :func:`~sumpy.expansion.local.LocalExpansionBase.m2l_preprocess_multipole_exprs`. - This method exists because calculating the number of expressions using - the above method might be costly and it cannot be memoized due to it having - side effects through the argument *sac*. - """ - # For all use-cases we have right now, this is equal to the number of - # translation classes dependent exprs. Use that as a default. - return self.m2l_translation_classes_dependent_ndata(src_expansion) - - def m2l_postprocess_local_exprs(self, src_expansion, m2l_result, src_rscale, - tgt_rscale, sac): - """Return postprocessed local expansion for an optimized M2L. - Postprocessing happens once per target box just after the M2L translation - is done and before storing the expansion coefficients for the local - expansion. - - When FFT is turned on, the output expressions are transformed from Fourier - space back to the original space. - """ - raise NotImplementedError - - def m2l_postprocess_local_nexprs(self, src_expansion): - """Return the number of expressions given as input to - :func:`~sumpy.expansion.local.LocalExpansionBase.m2l_postprocess_local_exprs`. - This method exists because calculating the number of expressions using - the above method might be costly and it cannot be memoized due to it - having side effects through the argument *sac*. - """ - # For all use-cases we have right now, this is equal to the number of - # translation classes dependent exprs. Use that as a default. - return self.m2l_translation_classes_dependent_ndata(src_expansion) - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): """Translate from a multipole or local expansion to a local expansion @@ -188,7 +94,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, to collect common subexpressions or None. :arg m2l_translation_classes_dependent_data: An iterable of symbolic expressions representing the expressions returned by - :func:`~sumpy.expansion.local.LocalExpansionBase.m2l_translation_classes_dependent_data`. + :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. """ raise NotImplementedError @@ -254,6 +160,15 @@ class VolumeTaylorLocalExpansionBase(LocalExpansionBase): Coefficients represent derivative values of the kernel. """ + def __init__(self, kernel, order, use_rscale=None, + m2l_translation=None): + if not m2l_translation: + from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory + factory = DefaultM2LTranslationClassFactory() + m2l_translation = factory.get_m2l_translation_class(kernel, + self.__class__)() + super().__init__(kernel, order, use_rscale, m2l_translation) + def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, sac=None): """Form an expansion with a linear combination of kernels and weights. @@ -319,195 +234,6 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): return kernel.postprocess_at_target(result, bvec) - def m2l_translation_classes_dependent_ndata(self, src_expansion): - """Returns number of expressions in M2L global precomputation step. - """ - mis_with_dummy_rows, _, _ = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - - return len(mis_with_dummy_rows) - - def _m2l_translation_classes_dependent_data_mis(self, src_expansion): - """We would like to compute the M2L by way of a circulant matrix below. - To get the matrix representing the M2L into circulant form, a certain - numbering of rows and columns (as identified by multi-indices) is - required. This routine returns that numbering. - - .. note:: - - The set of multi-indices returned may be a superset of the - coefficients used by the expansion. On the input end, those - coefficients are taken as zero. On output, they are simply - dropped from the computed result. - - This method returns the multi-indices representing the rows - of the circulant matrix, the multi-indices representing the rows - of the M2L translation matrix and the maximum multi-index of the - latter. - """ - from pytools import generate_nonnegative_integer_tuples_below as gnitb - from sumpy.tools import add_mi - - # max_mi is the multi-index which is the sum of the - # element-wise maximum of source multi-indices and the - # element-wise maximum of target multi-indices. - max_mi = [0]*self.dim - for i in range(self.dim): - max_mi[i] = max(mi[i] for mi in - src_expansion.get_coefficient_identifiers()) - max_mi[i] += max(mi[i] for mi in - self.get_coefficient_identifiers()) - - # These are the multi-indices representing the rows - # in the circulant matrix. Note that to get the circulant - # matrix structure some multi-indices that are not in the - # M2L translation matrix are added. - # This corresponds to adding O(p^(d-1)) - # additional rows and columns in the case of some PDEs - # like Laplace and O(p^d) in other cases. - circulant_matrix_mis = list(gnitb([m + 1 for m in max_mi])) - - # These are the multi-indices representing the rows - # in the M2L translation matrix without the additional - # multi-indices in the circulant matrix - needed_vector_terms = set() - # For eg: 2D full Taylor Laplace, we only need kernel derivatives - # (n1+n2, m1+m2), n1+m1<=p, n2+m2<=p - for tgt_deriv in self.get_coefficient_identifiers(): - for src_deriv in src_expansion.get_coefficient_identifiers(): - needed = add_mi(src_deriv, tgt_deriv) - if needed not in needed_vector_terms: - needed_vector_terms.add(needed) - - return circulant_matrix_mis, tuple(needed_vector_terms), max_mi - - def m2l_translation_classes_dependent_data(self, src_expansion, src_rscale, - dvec, tgt_rscale, sac): - - # We know the general form of the multipole expansion is: - # - # coeff0 * diff(kernel(src - c1), mi0) + - # coeff1 * diff(kernel(src - c1), mi1) + ... - # - # To get the local expansion coefficients, we take derivatives of - # the multipole expansion. For eg: the coefficient w.r.t mir is - # - # coeff0 * diff(kernel(c2 - c1), mi0 + mir) + - # coeff1 * diff(kernel(c2 - c1), mi1 + mir) + ... - # - # The derivatives above depends only on `c2 - c1` and can be precomputed - # globally as there are only a finite number of values for `c2 - c1` for - # m2l. - - if not self.use_rscale: - src_rscale = 1 - - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} - - # Create a expansion terms wrangler for derivatives up to order - # (tgt order)+(src order) including a corresponding reduction matrix - # For eg: 2D full Taylor Laplace, this is (n, m), - # n+m<=2*p, n<=2*p, m<=2*p - srcplusderiv_terms_wrangler = \ - src_expansion.expansion_terms_wrangler.copy( - order=self.order + src_expansion.order, max_mi=tuple(max_mi)) - srcplusderiv_full_coeff_ids = \ - srcplusderiv_terms_wrangler.get_full_coefficient_identifiers() - srcplusderiv_ident_to_index = {ident: i for i, ident in - enumerate(srcplusderiv_full_coeff_ids)} - - # The vector has the kernel derivatives and depends only on the distance - # between the two centers - taker = src_expansion.kernel.get_derivative_taker(dvec, src_rscale, sac) - vector_stored = [] - # Calculate the kernel derivatives for the compressed set - for term in \ - srcplusderiv_terms_wrangler.get_coefficient_identifiers(): - kernel_deriv = taker.diff(term) - vector_stored.append(kernel_deriv) - # Calculate the kernel derivatives for the full set - vector_full = \ - srcplusderiv_terms_wrangler.get_full_kernel_derivatives_from_stored( - vector_stored, src_rscale) - - for term in srcplusderiv_full_coeff_ids: - assert term in needed_vector_terms - - vector = [0]*len(needed_vector_terms) - for i, term in enumerate(needed_vector_terms): - vector[i] = add_to_sac(sac, - vector_full[srcplusderiv_ident_to_index[term]]) - - # Add zero values needed to make the translation matrix circulant - derivatives_full = [0]*len(circulant_matrix_mis) - for expr, mi in zip(vector, needed_vector_terms): - derivatives_full[circulant_matrix_ident_to_index[mi]] = expr - - if self.use_fft_for_m2l: - # Note that the matrix we have now is a mirror image of a - # circulant matrix. We reverse the first column to get the - # first column for the circulant matrix and then finally - # use the FFT for convolution represented by the circulant - # matrix. - return fft(list(reversed(derivatives_full)), sac=sac) - - return derivatives_full - - def m2l_preprocess_multipole_exprs(self, src_expansion, src_coeff_exprs, sac, - src_rscale): - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} - - # Calculate the input vector for the circulant matrix - input_vector = [0] * len(circulant_matrix_mis) - for coeff, term in zip( - src_coeff_exprs, - src_expansion.get_coefficient_identifiers()): - input_vector[circulant_matrix_ident_to_index[term]] = \ - add_to_sac(sac, coeff) - - if self.use_fft_for_m2l: - return fft(input_vector, sac=sac) - else: - return input_vector - - def m2l_preprocess_multipole_nexprs(self, src_expansion): - circulant_matrix_mis, _, _ = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - return len(circulant_matrix_mis) - - def m2l_postprocess_local_exprs(self, src_expansion, m2l_result, src_rscale, - tgt_rscale, sac): - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} - - if self.use_fft_for_m2l: - n = len(circulant_matrix_mis) - m2l_result = fft(m2l_result, inverse=True, sac=sac) - # since we reversed the M2L matrix, we reverse the result - # to get the correct result - m2l_result = list(reversed(m2l_result[:n])) - - # Filter out the dummy rows and scale them for target - rscale_ratio = add_to_sac(sac, tgt_rscale/src_rscale) - result = [ - m2l_result[circulant_matrix_ident_to_index[term]] - * rscale_ratio**sum(term) - for term in self.get_coefficient_identifiers()] - - return result - - def m2l_postprocess_local_nexprs(self, src_expansion): - return self.m2l_translation_classes_dependent_ndata(src_expansion) - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, _fast_version=True, m2l_translation_classes_dependent_data=None): @@ -527,32 +253,9 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # {{{ M2L if isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase): - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._m2l_translation_classes_dependent_data_mis(src_expansion) - - if not m2l_translation_classes_dependent_data: - derivatives = self.m2l_translation_classes_dependent_data( - src_expansion, src_rscale, dvec, tgt_rscale, sac) - else: - derivatives = m2l_translation_classes_dependent_data - - if self.use_fft_for_m2l: - assert len(src_coeff_exprs) == len(derivatives) - result = [a*b for a, b in zip(derivatives, src_coeff_exprs)] - else: - if not self.use_preprocessing_for_m2l: - src_coeff_exprs = self.m2l_preprocess_multipole_exprs( - src_expansion, src_coeff_exprs, sac, src_rscale) - - # Returns a big symbolic sum of matrix entries - # (FIXME? Though this is just the correctness-checking - # fallback for the FFT anyhow) - result = matvec_toeplitz_upper_triangular(src_coeff_exprs, - derivatives) - - if not self.use_preprocessing_for_m2l: - result = self.m2l_postprocess_local_exprs(src_expansion, - result, src_rscale, tgt_rscale, sac) + result = self.m2l_translation.translate(self, src_expansion, + src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac, + m2l_translation_classes_dependent_data) logger.info("building translation operator: done") return result @@ -687,7 +390,6 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, (taker.diff(mi).xreplace(replace_dict) * rscale_ratio**sum(mi)) for mi in self.get_coefficient_identifiers()] # }}} - # }}} logger.info("building translation operator: done") return result @@ -695,44 +397,8 @@ def loopy_translate_from(self, src_expansion): from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansionBase if isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase): - if self.use_preprocessing_for_m2l: - ncoeff_src = self.m2l_preprocess_multipole_nexprs(src_expansion) - ncoeff_tgt = self.m2l_postprocess_local_nexprs(src_expansion) - icoeff_src = pymbolic.var("icoeff_src") - icoeff_tgt = pymbolic.var("icoeff_tgt") - domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] - - coeff = pymbolic.var("coeff") - src_coeffs = pymbolic.var("src_coeffs") - m2l_translation_classes_dependent_data = pymbolic.var("data") - - if self.use_fft_for_m2l: - expr = src_coeffs[icoeff_tgt] \ - * m2l_translation_classes_dependent_data[icoeff_tgt] - else: - toeplitz_first_row = src_coeffs[icoeff_src-icoeff_tgt] - vector = m2l_translation_classes_dependent_data[icoeff_src] - expr = toeplitz_first_row * vector - domains.append( - f"{{[icoeff_src]: icoeff_tgt<=icoeff_src<{ncoeff_src} }}") - - expr = src_coeffs[icoeff_tgt] \ - * m2l_translation_classes_dependent_data[icoeff_tgt] - - insns = [ - lp.Assignment( - assignee=coeff[icoeff_tgt], - expression=coeff[icoeff_tgt] + expr), - ] - return lp.make_function(domains, insns, - kernel_data=[ - lp.GlobalArg("coeff, src_coeffs, data", - shape=lp.auto), - lp.ValueArg("src_rscale, tgt_rscale"), - ...], - name="e2e", - lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - ) + return self.m2l_translation.loopy_translate(self, src_expansion) + raise NotImplementedError( f"A direct loopy kernel for translation from " f"{src_expansion} to {self} is not implemented.") @@ -742,10 +408,9 @@ class VolumeTaylorLocalExpansion( VolumeTaylorExpansion, VolumeTaylorLocalExpansionBase): - def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): VolumeTaylorLocalExpansionBase.__init__(self, kernel, order, use_rscale, - use_fft_for_m2l, use_preprocessing_for_m2l=None) + m2l_translation=m2l_translation) VolumeTaylorExpansion.__init__(self, kernel, order, use_rscale) @@ -753,10 +418,9 @@ class LinearPDEConformingVolumeTaylorLocalExpansion( LinearPDEConformingVolumeTaylorExpansion, VolumeTaylorLocalExpansionBase): - def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): VolumeTaylorLocalExpansionBase.__init__(self, kernel, order, use_rscale, - use_fft_for_m2l, use_preprocessing_for_m2l) + m2l_translation=m2l_translation) LinearPDEConformingVolumeTaylorExpansion.__init__( self, kernel, order, use_rscale) @@ -800,21 +464,13 @@ def __init__(self, *args, **kwargs): class _FourierBesselLocalExpansion(LocalExpansionBase): def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): - - if use_fft_for_m2l: - # FIXME: expansion with FFT is correct symbolically and can be verified - # with sympy. However there are numerical issues that we have to deal - # with. Greengard and Rokhlin 1988 attributes this to numerical - # instability but gives rscale as a possible solution. Sumpy's rscale - # choice is slightly different from Greengard and Rokhlin and that - # might be the reason for this numerical issue. - raise ValueError("Bessel based expansions with FFT is not fully " - "supported yet.") - - super().__init__(kernel, order, use_rscale, - use_fft_for_m2l=use_fft_for_m2l, - use_preprocessing_for_m2l=use_preprocessing_for_m2l) + m2l_translation=None): + if not m2l_translation: + from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory + factory = DefaultM2LTranslationClassFactory() + m2l_translation = factory.get_m2l_translation_class(kernel, + self.__class__)() + super().__init__(kernel, order, use_rscale, m2l_translation) def get_storage_index(self, k): return self.order+k @@ -856,94 +512,6 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): * sym.exp(sym.I * c * -target_angle_rel_center), bvec) for c in self.get_coefficient_identifiers()) - def m2l_translation_classes_dependent_ndata(self, src_expansion): - nexpr = 2 * self.order + 2 * src_expansion.order + 1 - return nexpr - - def m2l_translation_classes_dependent_data(self, src_expansion, src_rscale, - dvec, tgt_rscale, sac): - - from sumpy.symbolic import sym_real_norm_2, Hankel1 - from sumpy.tools import fft - - dvec_len = sym_real_norm_2(dvec) - new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) - arg_scale = self.get_bessel_arg_scaling() - # [-(src_order+tgt_order), ..., 0, ..., (src_order + tgt_order)] - m2l_translation_classes_dependent_data = \ - [0] * (2*self.order + 2 * src_expansion.order + 1) - - # The M2L is a mirror image of a Toeplitz matvec with Hankel function - # evaluations. https://dlmf.nist.gov/10.23.F1 - # This loop computes the first row and the last column vector sufficient - # to specify the matrix entries. - for j in self.get_coefficient_identifiers(): - idx_j = self.get_storage_index(j) - for m in src_expansion.get_coefficient_identifiers(): - idx_m = src_expansion.get_storage_index(m) - m2l_translation_classes_dependent_data[idx_j + idx_m] = ( - Hankel1(m + j, arg_scale * dvec_len, 0) - * sym.exp(sym.I * (m + j) * new_center_angle_rel_old_center)) - - if self.use_fft_for_m2l: - order = src_expansion.order - # For this expansion, we have a mirror image of a Toeplitz matrix. - # First, we have to take the mirror image of the M2L matrix. - # - # After that the Toeplitz matrix has to be embedded in a circulant - # matrix. In this cicrcular matrix the first part of the first - # column is the first column of the Toeplitz matrix which is - # the last column of the M2L matrix. The second part is the - # reverse of the first row of the Toeplitz matrix which - # is the reverse of the first row of the M2L matrix. - first_row_m2l, last_column_m2l = \ - m2l_translation_classes_dependent_data[:2*order], \ - m2l_translation_classes_dependent_data[2*order:] - first_column_toeplitz = last_column_m2l - first_row_toeplitz = list(reversed(first_row_m2l)) - - first_column_circulant = list(first_column_toeplitz) + \ - list(reversed(first_row_toeplitz)) - return fft(first_column_circulant, sac) - else: - return m2l_translation_classes_dependent_data - - def m2l_preprocess_multipole_exprs(self, src_expansion, src_coeff_exprs, sac, - src_rscale): - - from sumpy.tools import fft - src_coeff_exprs = list(src_coeff_exprs) - for m in src_expansion.get_coefficient_identifiers(): - src_coeff_exprs[src_expansion.get_storage_index(m)] *= src_rscale**abs(m) - - if self.use_fft_for_m2l: - src_coeff_exprs = list(reversed(src_coeff_exprs)) - src_coeff_exprs += [0] * (len(src_coeff_exprs) - 1) - return fft(src_coeff_exprs, sac=sac) - else: - return src_coeff_exprs - - def m2l_preprocess_multipole_nexprs(self, src_expansion): - return 2*src_expansion.order + 1 - - def m2l_postprocess_local_exprs(self, src_expansion, m2l_result, src_rscale, - tgt_rscale, sac): - - if self.use_fft_for_m2l: - m2l_result = fft(m2l_result, inverse=True, sac=sac) - m2l_result = m2l_result[:2*self.order+1] - - # Filter out the dummy rows and scale them for target - result = [] - for j in self.get_coefficient_identifiers(): - result.append(m2l_result[self.get_storage_index(j)] - * tgt_rscale**(abs(j)) * sym.Integer(-1)**j) - - return result - - def m2l_postprocess_local_nexprs(self, src_expansion): - return 2*self.order + 1 - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): from sumpy.symbolic import sym_real_norm_2, BesselJ @@ -970,34 +538,9 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, return translated_coeffs if isinstance(src_expansion, self.mpole_expn_class): - if m2l_translation_classes_dependent_data is None: - derivatives = self.m2l_translation_classes_dependent_data( - src_expansion, src_rscale, dvec, tgt_rscale, sac=sac) - else: - derivatives = m2l_translation_classes_dependent_data - - if self.use_fft_for_m2l: - assert m2l_translation_classes_dependent_data is not None - assert len(derivatives) == len(src_coeff_exprs) - translated_coeffs = [a * b for a, b in zip(derivatives, - src_coeff_exprs)] - else: - if not self.use_preprocessing_for_m2l: - src_coeff_exprs = self.m2l_preprocess_multipole_exprs( - src_expansion, src_coeff_exprs, sac, src_rscale) - - translated_coeffs = [ - sum(derivatives[m + j + self.order + src_expansion.order] - * src_coeff_exprs[src_expansion.get_storage_index(m)] - for m in src_expansion.get_coefficient_identifiers()) - for j in self.get_coefficient_identifiers()] - - if not self.use_preprocessing_for_m2l: - translated_coeffs = self.m2l_postprocess_local_exprs( - src_expansion, translated_coeffs, src_rscale, tgt_rscale, - sac) - - return translated_coeffs + return self.m2l_translation.translate(self, src_expansion, + src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac, + m2l_translation_classes_dependent_data) raise RuntimeError( "do not know how to translate " @@ -1005,57 +548,20 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, def loopy_translate_from(self, src_expansion): if isinstance(src_expansion, self.mpole_expn_class): - if self.use_preprocessing_for_m2l: - ncoeff_src = self.m2l_preprocess_multipole_nexprs(src_expansion) - ncoeff_tgt = self.m2l_postprocess_local_nexprs(src_expansion) - - icoeff_src = pymbolic.var("icoeff_src") - icoeff_tgt = pymbolic.var("icoeff_tgt") - domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] + return self.m2l_translation.loopy_translate(self, src_expansion) - coeff = pymbolic.var("coeff") - src_coeffs = pymbolic.var("src_coeffs") - m2l_translation_classes_dependent_data = pymbolic.var("data") - - if self.use_fft_for_m2l: - expr = src_coeffs[icoeff_tgt] \ - * m2l_translation_classes_dependent_data[icoeff_tgt] - else: - expr = src_coeffs[icoeff_src] \ - * m2l_translation_classes_dependent_data[ - icoeff_tgt + icoeff_src] - domains.append( - f"{{[icoeff_src]: 0<=icoeff_src<{ncoeff_src} }}") - - insns = [ - lp.Assignment( - assignee=coeff[icoeff_tgt], - expression=coeff[icoeff_tgt] + expr), - ] - return lp.make_function(domains, insns, - kernel_data=[ - lp.GlobalArg("coeff, src_coeffs, data", - shape=lp.auto), - lp.ValueArg("src_rscale, tgt_rscale"), - ...], - name="e2e", - lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - ) raise NotImplementedError( f"A direct loopy kernel for translation from " f"{src_expansion} to {self} is not implemented.") class H2DLocalExpansion(_FourierBesselLocalExpansion): - def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): from sumpy.kernel import HelmholtzKernel assert (isinstance(kernel.get_base_kernel(), HelmholtzKernel) and kernel.dim == 2) - super().__init__(kernel, order, use_rscale, - use_fft_for_m2l=use_fft_for_m2l, - use_preprocessing_for_m2l=use_preprocessing_for_m2l) + super().__init__(kernel, order, use_rscale, m2l_translation=m2l_translation) from sumpy.expansion.multipole import H2DMultipoleExpansion self.mpole_expn_class = H2DMultipoleExpansion @@ -1065,15 +571,12 @@ def get_bessel_arg_scaling(self): class Y2DLocalExpansion(_FourierBesselLocalExpansion): - def __init__(self, kernel, order, use_rscale=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): from sumpy.kernel import YukawaKernel assert (isinstance(kernel.get_base_kernel(), YukawaKernel) and kernel.dim == 2) - super().__init__(kernel, order, use_rscale, - use_fft_for_m2l=use_fft_for_m2l, - use_preprocessing_for_m2l=use_preprocessing_for_m2l) + super().__init__(kernel, order, use_rscale, m2l_translation=m2l_translation) from sumpy.expansion.multipole import Y2DMultipoleExpansion self.mpole_expn_class = Y2DMultipoleExpansion diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py new file mode 100644 index 000000000..8e61f125a --- /dev/null +++ b/sumpy/expansion/m2l.py @@ -0,0 +1,770 @@ +__copyright__ = "Copyright (C) 2022 Isuru Fernando" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from typing import Tuple, Any + +import pymbolic +import loopy as lp +import sumpy.symbolic as sym +from sumpy.tools import ( + add_to_sac, fft, + matvec_toeplitz_upper_triangular) + +import logging +logger = logging.getLogger(__name__) + +__doc__ = """ +.. autoclass:: M2LTranslationClassFactoryBase +.. autoclass:: NonFFTM2LTranslationClassFactory +.. autoclass:: FFTM2LTranslationClassFactory +.. autoclass:: DefaultM2LTranslationClassFactory + +.. autoclass:: M2LTranslationBase +.. autoclass:: VolumeTaylorM2LTranslation +.. autoclass:: VolumeTaylorM2LWithFFT +.. autoclass:: FourierBesselM2LTranslation +""" + + +# {{{ M2L translation factory + +class M2LTranslationClassFactoryBase: + """An interface + .. automethod:: get_m2l_translation_class + """ + + def get_m2l_translation_class(self, base_kernel, local_expansion_class): + """Returns a subclass of :class:`M2LTranslationBase` suitable for + *base_kernel* and *local_expansion_class*. + """ + raise NotImplementedError() + + +class NonFFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): + """An implementation of :class:`M2LTranslationClassFactoryBase` that uses + non FFT M2L translation class. + """ + + def get_m2l_translation_class(self, base_kernel, local_expansion_class): + """Returns a subclass of :class:`M2LTranslationBase` suitable for + *base_kernel* and *local_expansion_class*. + """ + from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion) + if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): + return VolumeTaylorM2LTranslation + elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + return FourierBesselM2LTranslation + else: + raise RuntimeError( + f"Unknown local_expansion_class: {local_expansion_class}") + + +class FFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): + """An implementation of :class:`M2LTranslationClassFactoryBase` that uses + FFT M2L translation class. + """ + + def get_m2l_translation_class(self, base_kernel, local_expansion_class): + """Returns a subclass of :class:`M2LTranslationBase` suitable for + *base_kernel* and *local_expansion_class*. + """ + from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion) + if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): + return VolumeTaylorM2LWithFFT + elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + return FourierBesselM2LWithFFT + else: + raise RuntimeError( + f"Unknown local_expansion_class: {local_expansion_class}") + + +class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): + """An implementation of :class:`M2LTranslationClassFactoryBase` that gives the + 'best known' translation type for each kernel and local expansion class""" + def get_m2l_translation_class(self, base_kernel, local_expansion_class): + from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion) + from sumpy.kernel import LaplaceKernel + if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): + if isinstance(base_kernel, LaplaceKernel): + return VolumeTaylorM2LWithFFT + else: + return VolumeTaylorM2LTranslation + elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + return FourierBesselM2LTranslation + else: + raise RuntimeError( + f"Unknown local_expansion_class: {local_expansion_class}") + + +# }}} + +# {{{ M2LTranslationBase + +class M2LTranslationBase: + """Base class for Multipole to Local Translation + + .. automethod:: translate + .. automethod:: loopy_translate + .. automethod:: translation_classes_dependent_data + .. automethod:: translation_classes_dependent_ndata + .. automethod:: preprocess_multipole_exprs + .. automethod:: preprocess_multipole_nexprs + .. automethod:: postprocess_local_exprs + .. automethod:: postprocess_local_nexprs + .. autoattribute:: use_fft + .. autoattribute:: use_preprocessing + """ + + use_fft = False + use_preprocessing = False + + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + raise NotImplementedError + + def loopy_translate(self, tgt_expansion, src_expansion): + raise NotImplementedError( + f"A direct loopy kernel for translation from " + f"{src_expansion} to {tgt_expansion} using {self} is not implemented.") + + def translation_classes_dependent_data(self, tgt_expansion, src_expansion, + src_rscale, dvec, sac) -> Tuple[Any]: + """Return an iterable of expressions that needs to be precomputed + for multipole-to-local translations that depend only on the + distance between the multipole center and the local center which + is given as *dvec*. + + Since there are only a finite number of different values for the + distance between per level, these can be precomputed for the tree. + In :mod:`boxtree`, these distances are referred to as translation + classes. + """ + return tuple() + + def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + """Return the number of expressions returned by + :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. + This method exists because calculating the number of expressions using + the above method might be costly and + :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data` + cannot be memoized due to it having side effects through the argument + *sac*. + """ + return 0 + + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, + src_coeff_exprs, sac, src_rscale): + """Return the preprocessed multipole expansion for an optimized M2L. + Preprocessing happens once per source box before M2L translation is done. + + When FFT is turned on, the input expressions are transformed into Fourier + space. These expressions are used in a separate :mod:`loopy` kernel + to avoid having to transform for each target and source box pair. + When FFT is turned off, the expressions are equal to the multipole + expansion coefficients with zeros added + to make the M2L computation a circulant matvec. + """ + raise NotImplementedError + + def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): + """Return the number of expressions returned by + :func:`~sumpy.expansion.m2l.M2LTranslationBase.preprocess_multipole_exprs`. + This method exists because calculating the number of expressions using + the above method might be costly and it cannot be memoized due to it having + side effects through the argument *sac*. + """ + # For all use-cases we have right now, this is equal to the number of + # translation classes dependent exprs. Use that as a default. + return self.translation_classes_dependent_ndata(tgt_expansion, + src_expansion) + + def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, + src_rscale, tgt_rscale, sac): + """Return postprocessed local expansion for an optimized M2L. + Postprocessing happens once per target box just after the M2L translation + is done and before storing the expansion coefficients for the local + expansion. + + When FFT is turned on, the output expressions are transformed from Fourier + space back to the original space. + """ + raise NotImplementedError + + def postprocess_local_nexprs(self, tgt_expansion, src_expansion): + """Return the number of expressions given as input to + :func:`~sumpy.expansion.m2l.M2LTranslationBase.postprocess_local_exprs`. + This method exists because calculating the number of expressions using + the above method might be costly and it cannot be memoized due to it + having side effects through the argument *sac*. + """ + # For all use-cases we have right now, this is equal to the number of + # translation classes dependent exprs. Use that as a default. + return self.translation_classes_dependent_ndata(tgt_expansion, + src_expansion) + + def update_persistent_hash(self, key_hash, key_builder): + key_hash.update(type(self).__name__.encode("utf8")) + + +# }}} M2LTranslationBase + +# {{{ VolumeTaylorM2LTranslation + +class VolumeTaylorM2LTranslation(M2LTranslationBase): + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + if translation_classes_dependent_data: + derivatives = translation_classes_dependent_data + else: + derivatives = self.translation_classes_dependent_data( + tgt_expansion, src_expansion, src_rscale, dvec, sac=sac) + + src_coeff_exprs = self.preprocess_multipole_exprs( + tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale) + + # Returns a big symbolic sum of matrix entries + # (FIXME? Though this is just the correctness-checking + # fallback for the FFT anyhow) + result = matvec_toeplitz_upper_triangular(src_coeff_exprs, + derivatives) + + result = self.postprocess_local_exprs(tgt_expansion, src_expansion, + result, src_rscale, tgt_rscale, sac) + + return result + + def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + """Returns number of expressions in M2L global precomputation step. + """ + mis_with_dummy_rows, _, _ = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + + return len(mis_with_dummy_rows) + + def _translation_classes_dependent_data_mis(self, tgt_expansion, + src_expansion): + """We would like to compute the M2L by way of a circulant matrix below. + To get the matrix representing the M2L into circulant form, a certain + numbering of rows and columns (as identified by multi-indices) is + required. This routine returns that numbering. + + .. note:: + + The set of multi-indices returned may be a superset of the + coefficients used by the expansion. On the input end, those + coefficients are taken as zero. On output, they are simply + dropped from the computed result. + + This method returns the multi-indices representing the rows + of the circulant matrix, the multi-indices representing the rows + of the M2L translation matrix and the maximum multi-index of the + latter. + """ + from pytools import generate_nonnegative_integer_tuples_below as gnitb + from sumpy.tools import add_mi + + dim = tgt_expansion.dim + # max_mi is the multi-index which is the sum of the + # element-wise maximum of source multi-indices and the + # element-wise maximum of target multi-indices. + max_mi = [0]*dim + for i in range(dim): + max_mi[i] = max(mi[i] for mi in + src_expansion.get_coefficient_identifiers()) + max_mi[i] += max(mi[i] for mi in + tgt_expansion.get_coefficient_identifiers()) + + # These are the multi-indices representing the rows + # in the circulant matrix. Note that to get the circulant + # matrix structure some multi-indices that are not in the + # M2L translation matrix are added. + # This corresponds to adding O(p^(d-1)) + # additional rows and columns in the case of some PDEs + # like Laplace and O(p^d) in other cases. + circulant_matrix_mis = list(gnitb([m + 1 for m in max_mi])) + + # These are the multi-indices representing the rows + # in the M2L translation matrix without the additional + # multi-indices in the circulant matrix + needed_vector_terms = set() + # For eg: 2D full Taylor Laplace, we only need kernel derivatives + # (n1+n2, m1+m2), n1+m1<=p, n2+m2<=p + for tgt_deriv in tgt_expansion.get_coefficient_identifiers(): + for src_deriv in src_expansion.get_coefficient_identifiers(): + needed = add_mi(src_deriv, tgt_deriv) + if needed not in needed_vector_terms: + needed_vector_terms.add(needed) + + return circulant_matrix_mis, tuple(needed_vector_terms), max_mi + + def translation_classes_dependent_data(self, tgt_expansion, src_expansion, + src_rscale, dvec, sac): + + # We know the general form of the multipole expansion is: + # + # coeff0 * diff(kernel(src - c1), mi0) + + # coeff1 * diff(kernel(src - c1), mi1) + ... + # + # To get the local expansion coefficients, we take derivatives of + # the multipole expansion. For eg: the coefficient w.r.t mir is + # + # coeff0 * diff(kernel(c2 - c1), mi0 + mir) + + # coeff1 * diff(kernel(c2 - c1), mi1 + mir) + ... + # + # The derivatives above depends only on `c2 - c1` and can be precomputed + # globally as there are only a finite number of values for `c2 - c1` for + # m2l. + + if not tgt_expansion.use_rscale: + src_rscale = 1 + + circulant_matrix_mis, needed_vector_terms, max_mi = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + + circulant_matrix_ident_to_index = {ident: i for i, ident in + enumerate(circulant_matrix_mis)} + + # Create a expansion terms wrangler for derivatives up to order + # (tgt order)+(src order) including a corresponding reduction matrix + # For eg: 2D full Taylor Laplace, this is (n, m), + # n+m<=2*p, n<=2*p, m<=2*p + srcplusderiv_terms_wrangler = \ + src_expansion.expansion_terms_wrangler.copy( + order=tgt_expansion.order + src_expansion.order, + max_mi=tuple(max_mi)) + srcplusderiv_full_coeff_ids = \ + srcplusderiv_terms_wrangler.get_full_coefficient_identifiers() + srcplusderiv_ident_to_index = {ident: i for i, ident in + enumerate(srcplusderiv_full_coeff_ids)} + + # The vector has the kernel derivatives and depends only on the distance + # between the two centers + taker = src_expansion.kernel.get_derivative_taker(dvec, src_rscale, sac) + vector_stored = [] + # Calculate the kernel derivatives for the compressed set + for term in \ + srcplusderiv_terms_wrangler.get_coefficient_identifiers(): + kernel_deriv = taker.diff(term) + vector_stored.append(kernel_deriv) + # Calculate the kernel derivatives for the full set + vector_full = \ + srcplusderiv_terms_wrangler.get_full_kernel_derivatives_from_stored( + vector_stored, src_rscale) + + for term in srcplusderiv_full_coeff_ids: + assert term in needed_vector_terms + + vector = [0]*len(needed_vector_terms) + for i, term in enumerate(needed_vector_terms): + vector[i] = add_to_sac(sac, + vector_full[srcplusderiv_ident_to_index[term]]) + + # Add zero values needed to make the translation matrix circulant + derivatives_full = [0]*len(circulant_matrix_mis) + for expr, mi in zip(vector, needed_vector_terms): + derivatives_full[circulant_matrix_ident_to_index[mi]] = expr + + return derivatives_full + + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, + src_coeff_exprs, sac, src_rscale): + circulant_matrix_mis, needed_vector_terms, max_mi = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + circulant_matrix_ident_to_index = {ident: i for i, ident in + enumerate(circulant_matrix_mis)} + + # Calculate the input vector for the circulant matrix + input_vector = [0] * len(circulant_matrix_mis) + for coeff, term in zip( + src_coeff_exprs, + src_expansion.get_coefficient_identifiers()): + input_vector[circulant_matrix_ident_to_index[term]] = \ + add_to_sac(sac, coeff) + + return input_vector + + def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): + circulant_matrix_mis, _, _ = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + return len(circulant_matrix_mis) + + def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, + src_rscale, tgt_rscale, sac): + circulant_matrix_mis, needed_vector_terms, max_mi = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + circulant_matrix_ident_to_index = {ident: i for i, ident in + enumerate(circulant_matrix_mis)} + + # Filter out the dummy rows and scale them for target + rscale_ratio = add_to_sac(sac, tgt_rscale/src_rscale) + result = [ + m2l_result[circulant_matrix_ident_to_index[term]] + * rscale_ratio**sum(term) + for term in tgt_expansion.get_coefficient_identifiers()] + + return result + + def postprocess_local_nexprs(self, tgt_expansion, src_expansion): + return self.translation_classes_dependent_ndata( + tgt_expansion, src_expansion) + + +# }}} VolumeTaylorM2LTranslation + +# {{{ VolumeTaylorM2LWithPreprocessedMultipoles + +class VolumeTaylorM2LWithPreprocessedMultipoles(VolumeTaylorM2LTranslation): + use_preprocessing = True + + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + assert translation_classes_dependent_data + derivatives = translation_classes_dependent_data + # Returns a big symbolic sum of matrix entries + # (FIXME? Though this is just the correctness-checking + # fallback for the FFT anyhow) + result = matvec_toeplitz_upper_triangular(src_coeff_exprs, + derivatives) + return result + + def loopy_translate(self, tgt_expansion, src_expansion): + ncoeff_src = self.preprocess_multipole_nexprs(tgt_expansion, + src_expansion) + ncoeff_tgt = self.postprocess_local_nexprs(tgt_expansion, src_expansion) + icoeff_src = pymbolic.var("icoeff_src") + icoeff_tgt = pymbolic.var("icoeff_tgt") + domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] + + coeff = pymbolic.var("coeff") + src_coeffs = pymbolic.var("src_coeffs") + translation_classes_dependent_data = pymbolic.var("data") + + if self.use_fft: + expr = src_coeffs[icoeff_tgt] \ + * translation_classes_dependent_data[icoeff_tgt] + else: + toeplitz_first_row = src_coeffs[icoeff_src-icoeff_tgt] + vector = translation_classes_dependent_data[icoeff_src] + expr = toeplitz_first_row * vector + domains.append( + f"{{[icoeff_src]: icoeff_tgt<=icoeff_src<{ncoeff_src} }}") + + expr = src_coeffs[icoeff_tgt] \ + * translation_classes_dependent_data[icoeff_tgt] + + insns = [ + lp.Assignment( + assignee=coeff[icoeff_tgt], + expression=coeff[icoeff_tgt] + expr), + ] + return lp.make_function(domains, insns, + kernel_data=[ + lp.GlobalArg("coeff, src_coeffs, data", + shape=lp.auto), + lp.ValueArg("src_rscale, tgt_rscale"), + ...], + name="e2e", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + ) + + +# }}} VolumeTaylorM2LWithPreprocessedMultipoles + +# {{{ VolumeTaylorM2LWithFFT + +class VolumeTaylorM2LWithFFT(VolumeTaylorM2LWithPreprocessedMultipoles): + use_fft = True + + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + assert translation_classes_dependent_data + derivatives = translation_classes_dependent_data + print(src_coeff_exprs, derivatives) + assert len(src_coeff_exprs) == len(derivatives) + result = [a*b for a, b in zip(derivatives, src_coeff_exprs)] + return result + + def translation_classes_dependent_data(self, tgt_expansion, src_expansion, + src_rscale, dvec, sac): + + derivatives_full = super().translation_classes_dependent_data( + tgt_expansion, src_expansion, src_rscale, dvec, sac) + # Note that the matrix we have now is a mirror image of a + # circulant matrix. We reverse the first column to get the + # first column for the circulant matrix and then finally + # use the FFT for convolution represented by the circulant + # matrix. + return fft(list(reversed(derivatives_full)), sac=sac) + + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, + src_coeff_exprs, sac, src_rscale): + input_vector = super().preprocess_multipole_exprs( + tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale) + + return fft(input_vector, sac=sac) + + def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, + src_rscale, tgt_rscale, sac): + circulant_matrix_mis, _, _ = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + n = len(circulant_matrix_mis) + m2l_result = fft(m2l_result, inverse=True, sac=sac) + # since we reversed the M2L matrix, we reverse the result + # to get the correct result + m2l_result = list(reversed(m2l_result[:n])) + + return super().postprocess_local_exprs(tgt_expansion, + src_expansion, m2l_result, src_rscale, tgt_rscale, sac) + + +# }}} VolumeTaylorM2LWithFFT + +# {{{ FourierBesselM2LTranslation + +class FourierBesselM2LTranslation(M2LTranslationBase): + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + if translation_classes_dependent_data is None: + derivatives = self.translation_classes_dependent_data(tgt_expansion, + src_expansion, src_rscale, dvec, sac=sac) + else: + derivatives = translation_classes_dependent_data + + src_coeff_exprs = self.preprocess_multipole_exprs(tgt_expansion, + src_expansion, src_coeff_exprs, sac, src_rscale) + + translated_coeffs = [ + sum(derivatives[m + j + tgt_expansion.order + src_expansion.order] + * src_coeff_exprs[src_expansion.get_storage_index(m)] + for m in src_expansion.get_coefficient_identifiers()) + for j in tgt_expansion.get_coefficient_identifiers()] + + translated_coeffs = self.postprocess_local_exprs(tgt_expansion, + src_expansion, translated_coeffs, src_rscale, tgt_rscale, + sac) + + return translated_coeffs + + def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + nexpr = 2 * tgt_expansion.order + 2 * src_expansion.order + 1 + return nexpr + + def translation_classes_dependent_data(self, tgt_expansion, src_expansion, + src_rscale, dvec, sac): + + from sumpy.symbolic import sym_real_norm_2, Hankel1 + + dvec_len = sym_real_norm_2(dvec) + new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) + arg_scale = tgt_expansion.get_bessel_arg_scaling() + # [-(src_order+tgt_order), ..., 0, ..., (src_order + tgt_order)] + translation_classes_dependent_data = \ + [0] * (2*tgt_expansion.order + 2 * src_expansion.order + 1) + + # The M2L is a mirror image of a Toeplitz matvec with Hankel function + # evaluations. https://dlmf.nist.gov/10.23.F1 + # This loop computes the first row and the last column vector sufficient + # to specify the matrix entries. + for j in tgt_expansion.get_coefficient_identifiers(): + idx_j = tgt_expansion.get_storage_index(j) + for m in src_expansion.get_coefficient_identifiers(): + idx_m = src_expansion.get_storage_index(m) + translation_classes_dependent_data[idx_j + idx_m] = ( + Hankel1(m + j, arg_scale * dvec_len, 0) + * sym.exp(sym.I * (m + j) * new_center_angle_rel_old_center)) + + return translation_classes_dependent_data + + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, + src_coeff_exprs, sac, src_rscale): + + src_coeff_exprs = list(src_coeff_exprs) + for m in src_expansion.get_coefficient_identifiers(): + src_coeff_exprs[src_expansion.get_storage_index(m)] *= src_rscale**abs(m) + return src_coeff_exprs + + def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): + return 2*src_expansion.order + 1 + + def postprocess_local_exprs(self, tgt_expansion, src_expansion, + m2l_result, src_rscale, tgt_rscale, sac): + + # Filter out the dummy rows and scale them for target + result = [] + for j in tgt_expansion.get_coefficient_identifiers(): + result.append(m2l_result[tgt_expansion.get_storage_index(j)] + * tgt_rscale**(abs(j)) * sym.Integer(-1)**j) + + return result + + def postprocess_local_nexprs(self, tgt_expansion, src_expansion): + return 2*tgt_expansion.order + 1 + + +# }}} FourierBesselM2LTranslation + +# {{{ FourierBesselM2LWithPreprocessedMultipoles + +class FourierBesselM2LWithPreprocessedMultipoles(FourierBesselM2LTranslation): + use_preprocessing = True + + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + assert translation_classes_dependent_data + derivatives = translation_classes_dependent_data + + translated_coeffs = [ + sum(derivatives[m + j + tgt_expansion.order + src_expansion.order] + * src_coeff_exprs[src_expansion.get_storage_index(m)] + for m in src_expansion.get_coefficient_identifiers()) + for j in tgt_expansion.get_coefficient_identifiers()] + + return translated_coeffs + + def loopy_translate(self, tgt_expansion, src_expansion): + ncoeff_src = self.preprocess_multipole_nexprs(src_expansion) + ncoeff_tgt = self.postprocess_local_nexprs(src_expansion) + + icoeff_src = pymbolic.var("icoeff_src") + icoeff_tgt = pymbolic.var("icoeff_tgt") + domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] + + coeff = pymbolic.var("coeff") + src_coeffs = pymbolic.var("src_coeffs") + translation_classes_dependent_data = pymbolic.var("data") + + if self.use_fft_for_m2l: + expr = src_coeffs[icoeff_tgt] \ + * translation_classes_dependent_data[icoeff_tgt] + else: + expr = src_coeffs[icoeff_src] \ + * translation_classes_dependent_data[ + icoeff_tgt + icoeff_src] + domains.append( + f"{{[icoeff_src]: 0<=icoeff_src<{ncoeff_src} }}") + + insns = [ + lp.Assignment( + assignee=coeff[icoeff_tgt], + expression=coeff[icoeff_tgt] + expr), + ] + return lp.make_function(domains, insns, + kernel_data=[ + lp.GlobalArg("coeff, src_coeffs, data", + shape=lp.auto), + lp.ValueArg("src_rscale, tgt_rscale"), + ...], + name="e2e", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + ) + + +# }}} FourierBesselM2LWithPreprocessedMultipoles + +# {{{ FourierBesselM2LWithFFT + +class FourierBesselM2LWithFFT(FourierBesselM2LWithPreprocessedMultipoles): + use_fft = True + + def __init__(self): + # FIXME: expansion with FFT is correct symbolically and can be verified + # with sympy. However there are numerical issues that we have to deal + # with. Greengard and Rokhlin 1988 attributes this to numerical + # instability but gives rscale as a possible solution. Sumpy's rscale + # choice is slightly different from Greengard and Rokhlin and that + # might be the reason for this numerical issue. + raise ValueError("Bessel based expansions with FFT is not fully " + "supported yet.") + + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + + assert translation_classes_dependent_data is not None + derivatives = translation_classes_dependent_data + assert len(derivatives) == len(src_coeff_exprs) + return [a * b for a, b in zip(derivatives, src_coeff_exprs)] + + def loopy_translate(self, tgt_expansion, src_expansion): + raise NotImplementedError + + def translation_classes_dependent_data(self, tgt_expansion, src_expansion, + src_rscale, dvec, sac): + + from sumpy.tools import fft + translation_classes_dependent_data = \ + super().translation_classes_dependent_data(tgt_expansion, + src_expansion, src_rscale, dvec, sac) + order = src_expansion.order + # For this expansion, we have a mirror image of a Toeplitz matrix. + # First, we have to take the mirror image of the M2L matrix. + # + # After that the Toeplitz matrix has to be embedded in a circulant + # matrix. In this cicrcular matrix the first part of the first + # column is the first column of the Toeplitz matrix which is + # the last column of the M2L matrix. The second part is the + # reverse of the first row of the Toeplitz matrix which + # is the reverse of the first row of the M2L matrix. + first_row_m2l, last_column_m2l = \ + translation_classes_dependent_data[:2*order], \ + translation_classes_dependent_data[2*order:] + first_column_toeplitz = last_column_m2l + first_row_toeplitz = list(reversed(first_row_m2l)) + + first_column_circulant = list(first_column_toeplitz) + \ + list(reversed(first_row_toeplitz)) + return fft(first_column_circulant, sac) + + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, + src_coeff_exprs, sac, src_rscale): + + from sumpy.tools import fft + result = super().preprocess_multipole_exprs(tgt_expansion, + src_expansion, src_coeff_exprs, sac, src_rscale) + + result = list(reversed(result)) + result += [0] * (len(result) - 1) + return fft(result, sac=sac) + + def postprocess_local_exprs(self, tgt_expansion, src_expansion, + m2l_result, src_rscale, tgt_rscale, sac): + + m2l_result = fft(m2l_result, inverse=True, sac=sac) + m2l_result = m2l_result[:2*tgt_expansion.order+1] + return super().postprocess_local_exprs(tgt_expansion, + src_expansion, m2l_result, src_rscale, tgt_rscale, sac) + +# }}} FourierBesselM2LWithFFT +# vim: fdm=marker diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 52cb9a603..519b12006 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -62,8 +62,7 @@ def __init__(self, cl_context, multipole_expansion_factory, local_expansion_factory, target_kernels, exclude_self=False, use_rscale=None, - strength_usage=None, source_kernels=None, - use_fft_for_m2l=False, use_preprocessing_for_m2l=None): + strength_usage=None, source_kernels=None): """ :arg multipole_expansion_factory: a callable of a single argument (order) that returns a multipole expansion. @@ -73,10 +72,6 @@ def __init__(self, cl_context, :arg exclude_self: whether the self contribution should be excluded :arg strength_usage: passed unchanged to p2l, p2m and p2p. :arg source_kernels: passed unchanged to p2l, p2m and p2p. - :arg use_fft_for_m2l: Use an FFT based multipole-to-local expansion. - :arg use_preprocessing_for_m2l: do preprocessing of the source multipole - expansion and postprocessing of the target local expansion for - multipole-to-local expansion. """ self.multipole_expansion_factory = multipole_expansion_factory self.local_expansion_factory = local_expansion_factory @@ -85,11 +80,6 @@ def __init__(self, cl_context, self.exclude_self = exclude_self self.use_rscale = use_rscale self.strength_usage = strength_usage - self.use_fft_for_m2l = use_fft_for_m2l - if use_preprocessing_for_m2l is None: - self.use_preprocessing_for_m2l = use_fft_for_m2l - else: - self.use_preprocessing_for_m2l = use_preprocessing_for_m2l super().__init__() @@ -106,9 +96,11 @@ def multipole_expansion(self, order): @memoize_method def local_expansion(self, order): - return self.local_expansion_factory(order, self.use_rscale, - use_fft_for_m2l=self.use_fft_for_m2l, - use_preprocessing_for_m2l=self.use_preprocessing_for_m2l) + return self.local_expansion_factory(order, self.use_rscale) + + @property + def m2l_translation(self): + return self.local_expansion(0).m2l_translation @memoize_method def p2m(self, tgt_order): @@ -274,7 +266,7 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, self.dtype = dtype - if not self.tree_indep.use_fft_for_m2l: + if not self.tree_indep.m2l_translation.use_fft: # If not FFT, we don't need complex dtypes self.preprocessed_mpole_dtype = dtype elif preprocessed_mpole_dtype is not None: @@ -320,16 +312,19 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, self.supports_translation_classes = True self.translation_classes_data = translation_classes_data - self.use_fft_for_m2l = self.tree_indep.use_fft_for_m2l def level_to_rscale(self, level): tree = self.tree order = self.level_orders[level] + r = tree.root_extent * (2**-level) # See L. Greengard and V. Rokhlin. On the efficient implementation of the # fast multipole algorithm. Technical report, # YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE, 1988. - return tree.root_extent * (2**-level) / order + # rscale that we use in sumpy is the inverse of the scaling used in the + # paper and therefore we should use r / order. However empirically + # we have observed that 2r / order is better for numerical stability. + return r * 2 / order # {{{ data vector utilities @@ -358,7 +353,9 @@ def m2l_translation_classes_dependent_data_level_starts(self): def order_to_size(order): mpole_expn = self.tree_indep.multipole_expansion(order) local_expn = self.tree_indep.local_expansion(order) - return local_expn.m2l_translation_classes_dependent_ndata(mpole_expn) + m2l_translation = local_expn.m2l_translation + return m2l_translation.translation_classes_dependent_ndata( + local_expn, mpole_expn) return build_csr_level_starts(self.level_orders, order_to_size, level_starts=self.m2l_translation_class_level_start_box_nrs()) @@ -429,7 +426,8 @@ def m2l_preproc_mpole_expansions_level_starts(self): def order_to_size(order): mpole_expn = self.tree_indep.multipole_expansion(order) local_expn = self.tree_indep.local_expansion(order) - res = local_expn.m2l_preprocess_multipole_nexprs(mpole_expn) + res = local_expn.m2l_translation.preprocess_multipole_nexprs( + local_expn, mpole_expn) return res return build_csr_level_starts(self.level_orders, order_to_size, @@ -723,7 +721,7 @@ def multipole_to_local(self, queue = mpole_exps.queue local_exps = self.local_expansion_zeros(mpole_exps) - if self.tree_indep.use_preprocessing_for_m2l: + if self.tree_indep.m2l_translation.use_preprocessing: preprocessed_mpole_exps = \ self.m2l_preproc_mpole_expansion_zeros(mpole_exps) for lev in range(self.tree.nlevels): @@ -803,7 +801,7 @@ def multipole_to_local(self, postprocess_evts = [] - if self.tree_indep.use_preprocessing_for_m2l: + if self.tree_indep.m2l_translation.use_preprocessing: for lev in range(self.tree.nlevels): order = self.level_orders[lev] postprocess_local_kernel = \ diff --git a/sumpy/toys.py b/sumpy/toys.py index 3b8876dbc..ded4a54e2 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -25,6 +25,7 @@ from pytools import memoize_method from numbers import Number +from functools import partial from sumpy.kernel import TargetTransformationRemover import numpy as np # noqa: F401 @@ -103,8 +104,15 @@ def __init__(self, cl_context, kernel, mpole_expn_class = \ expansion_factory.get_multipole_expansion_class(kernel) if local_expn_class is None: + from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory local_expn_class = \ expansion_factory.get_local_expansion_class(kernel) + m2l_translation_class_factory = NonFFTM2LTranslationClassFactory() + m2l_translation_class = \ + m2l_translation_class_factory.get_m2l_translation_class( + kernel, local_expn_class) + local_expn_class = partial(local_expn_class, + m2l_translation=m2l_translation_class()) self.mpole_expn_class = mpole_expn_class self.local_expn_class = local_expn_class diff --git a/test/test_fmm.py b/test/test_fmm.py index 8e7bc3299..cbf66e6d1 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -185,11 +185,21 @@ def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, for order in order_values: target_kernels = [knl] + if use_fft: + from sumpy.expansion.m2l import FFTM2LTranslationClassFactory + m2l_translation_factory = FFTM2LTranslationClassFactory() + else: + from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory + m2l_translation_factory = NonFFTM2LTranslationClassFactory() + + m2l_translation = m2l_translation_factory.get_m2l_translation_class( + knl, local_expn_class)() + tree_indep = SumpyTreeIndependentDataForWrangler( ctx, partial(mpole_expn_class, knl), - partial(local_expn_class, knl), - target_kernels, use_fft_for_m2l=use_fft) + partial(local_expn_class, knl, m2l_translation=m2l_translation), + target_kernels) if order_varies_with_level: def fmm_level_to_order(kernel, kernel_args, tree, lev): diff --git a/test/test_kernels.py b/test/test_kernels.py index 1e0db7ce2..f2d89b860 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -36,6 +36,7 @@ from sumpy.expansion.local import ( VolumeTaylorLocalExpansion, H2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion) +from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory from sumpy.kernel import (LaplaceKernel, HelmholtzKernel, AxisTargetDerivative, DirectionalSourceDerivative, BiharmonicKernel, StokesletKernel) import sumpy.symbolic as sym @@ -560,9 +561,12 @@ def eval_at(e2p, source_box_nr, rscale): return pot + m2l_factory = NonFFTM2LTranslationClassFactory() + m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() + for order in orders: m_expn = mpole_expn_class(knl, order=order) - l_expn = local_expn_class(knl, order=order) + l_expn = local_expn_class(knl, order=order, m2l_translation=m2l_translation) from sumpy import P2EFromSingleBox, E2PFromSingleBox, P2P, E2EFromCSR p2m = P2EFromSingleBox(ctx, m_expn) @@ -843,8 +847,10 @@ def test_m2l_toeplitz(): knl = LaplaceKernel(dim) local_expn_class = LinearPDEConformingVolumeTaylorLocalExpansion mpole_expn_class = LinearPDEConformingVolumeTaylorMultipoleExpansion + m2l_factory = NonFFTM2LTranslationClassFactory() + m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() - local_expn = local_expn_class(knl, order=5) + local_expn = local_expn_class(knl, order=5, m2l_translation=m2l_translation) mpole_expn = mpole_expn_class(knl, order=5) dvec = sym.make_sym_vector("d", dim) diff --git a/test/test_misc.py b/test/test_misc.py index 42956bc6e..9aeb7f124 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -267,14 +267,12 @@ def test_toy_p2e2e2p(ctx_factory, case): raise ValueError( f"convergence factor not in valid range: {case_conv_factor}") - from sumpy.expansion.local import VolumeTaylorLocalExpansion - from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansion + from sumpy.expansion import VolumeTaylorExpansionFactory cl_ctx = ctx_factory() ctx = t.ToyContext(cl_ctx, LaplaceKernel(dim), - VolumeTaylorMultipoleExpansion, - VolumeTaylorLocalExpansion) + expansion_factory=VolumeTaylorExpansionFactory()) errors = [] From 7dc751e6764a3695c99ef0900c0e6261ab13f58a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 19 May 2022 14:06:41 -0500 Subject: [PATCH 004/335] M2LTranslationBase: mark immutable, fix equality comparison --- sumpy/expansion/m2l.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 8e61f125a..be1a9300a 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -140,6 +140,14 @@ class M2LTranslationBase: use_fft = False use_preprocessing = False + def __setattr__(self): + # These are intended to be stateless. + raise AttributeError(f"{type(self)} is stateless and does not permit " + "attribute modification.") + + def __eq__(self, other): + return type(self) is type(other) + def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): raise NotImplementedError From dfc0e71609e6590779cbe320bf75ffb1c935916e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sun, 5 Jun 2022 13:26:11 -0500 Subject: [PATCH 005/335] remove debug print --- sumpy/expansion/m2l.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index be1a9300a..16ab7c704 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -517,7 +517,6 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, assert translation_classes_dependent_data derivatives = translation_classes_dependent_data - print(src_coeff_exprs, derivatives) assert len(src_coeff_exprs) == len(derivatives) result = [a*b for a, b in zip(derivatives, src_coeff_exprs)] return result From 00e0090cac26bb9fff642d105ee33dbb745259d3 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 23 Jun 2022 14:28:19 -0500 Subject: [PATCH 006/335] 4r/order for biharmonic (#122) * 4r/order for biharmonic * Add a test for magnitudes --- sumpy/fmm.py | 10 ++++-- test/test_fmm.py | 84 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 519b12006..42564444a 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -323,8 +323,14 @@ def level_to_rscale(self, level): # YALE UNIV NEW HAVEN CT DEPT OF COMPUTER SCIENCE, 1988. # rscale that we use in sumpy is the inverse of the scaling used in the # paper and therefore we should use r / order. However empirically - # we have observed that 2r / order is better for numerical stability. - return r * 2 / order + # we have observed that 2r / order is better for numerical stability + # for Laplace and 4r / order for biharmonic kernel. + knl = self.tree_indep.get_base_kernel() + from sumpy.kernel import BiharmonicKernel + if isinstance(knl, BiharmonicKernel): + return r * 4 / order + else: + return r * 2 / order # {{{ data vector utilities diff --git a/test/test_fmm.py b/test/test_fmm.py index cbf66e6d1..4d6d0d480 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -27,7 +27,8 @@ import pyopencl as cl from pyopencl.tools import ( # noqa pytest_generate_tests_for_pyopencl as pytest_generate_tests) -from sumpy.kernel import LaplaceKernel, HelmholtzKernel, YukawaKernel +from sumpy.kernel import (LaplaceKernel, HelmholtzKernel, YukawaKernel, + BiharmonicKernel) from sumpy.expansion.multipole import ( VolumeTaylorMultipoleExpansion, H2DMultipoleExpansion, Y2DMultipoleExpansion, @@ -234,6 +235,87 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): pconv_verifier() +@pytest.mark.parametrize("knl", [LaplaceKernel(2), BiharmonicKernel(2)]) +def test_coeff_magnitude_rscale(ctx_factory, knl): + """Checks that the rscale used keeps the coefficient magnitude + difference small + """ + local_expn_class = LinearPDEConformingVolumeTaylorLocalExpansion + mpole_expn_class = LinearPDEConformingVolumeTaylorMultipoleExpansion + + ctx = ctx_factory() + queue = cl.CommandQueue(ctx) + + nsources = 1000 + ntargets = 300 + dtype = np.float64 + + from boxtree.tools import ( + make_normal_particle_array as p_normal) + + sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + offset = np.zeros(knl.dim) + offset[0] = 0.1 + + targets = ( + p_normal(queue, ntargets, knl.dim, dtype, seed=18) + offset) + + from boxtree import TreeBuilder + tb = TreeBuilder(ctx) + + tree, _ = tb(queue, sources, targets=targets, + max_particles_in_box=30, debug=True) + + from boxtree.traversal import FMMTraversalBuilder + tbuild = FMMTraversalBuilder(ctx) + trav, _ = tbuild(queue, tree, debug=True) + + from pyopencl.clrandom import PhiloxGenerator + rng = PhiloxGenerator(ctx, seed=44) + weights = rng.uniform(queue, nsources, dtype=np.float64) + + extra_kwargs = {} + dtype = np.float64 + order = 10 + if isinstance(knl, HelmholtzKernel): + extra_kwargs["k"] = 0.05 + dtype = np.complex128 + + elif isinstance(knl, YukawaKernel): + extra_kwargs["lam"] = 2 + dtype = np.complex128 + + from functools import partial + target_kernels = [knl] + + tree_indep = SumpyTreeIndependentDataForWrangler( + ctx, + partial(mpole_expn_class, knl), + partial(local_expn_class, knl), + target_kernels) + + def fmm_level_to_order(kernel, kernel_args, tree, lev): + return order + + wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, + fmm_level_to_order=fmm_level_to_order, + kernel_extra_kwargs=extra_kwargs) + + weights = wrangler.reorder_sources(weights) + (weights,) = wrangler.distribute_source_weights((weights,), None) + + local_result, _ = wrangler.form_locals( + trav.level_start_target_or_target_parent_box_nrs, + trav.target_or_target_parent_boxes, + trav.from_sep_bigger_starts, + trav.from_sep_bigger_lists, + (weights,)) + + result = np.abs(wrangler.local_expansions_view(local_result, 5)[1][0]) + + assert np.max(result) / np.min(result) < 10**6 + + def test_unified_single_and_double(ctx_factory): """ Test that running one FMM for single layer + double layer gives the From f263e26e296dbf52b6675cddf9a614c5f0d3cbb8 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 24 Jun 2022 19:46:41 -0500 Subject: [PATCH 007/335] Make taylor series with FFT the default for Helmholtz and Biharmonic (#120) * Make taylor series the default for Helmholtz * Try 4r for Helmholtz * Update fmm.py * Use 4r/order for biharmonic too * Add missing import * Update pytential commit * Revert "Update pytential commit" This reverts commit 9f3b25de4d031d187da8e3ddaaaad79a6c730a61. Co-authored-by: Andreas Kloeckner --- sumpy/expansion/__init__.py | 23 ++--------------------- sumpy/expansion/m2l.py | 6 +----- 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 26c0d00a8..99ed13b3d 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -779,18 +779,9 @@ class DefaultExpansionFactory(ExpansionFactoryBase): def get_local_expansion_class(self, base_kernel): """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - from sumpy.kernel import (HelmholtzKernel, YukawaKernel) - - from sumpy.expansion.local import (H2DLocalExpansion, Y2DLocalExpansion, + from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, VolumeTaylorLocalExpansion) - - if (isinstance(base_kernel.get_base_kernel(), HelmholtzKernel) - and base_kernel.dim == 2): - return H2DLocalExpansion - elif (isinstance(base_kernel.get_base_kernel(), YukawaKernel) - and base_kernel.dim == 2): - return Y2DLocalExpansion try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorLocalExpansion @@ -800,19 +791,9 @@ def get_local_expansion_class(self, base_kernel): def get_multipole_expansion_class(self, base_kernel): """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - from sumpy.kernel import (HelmholtzKernel, YukawaKernel) - - from sumpy.expansion.multipole import (H2DMultipoleExpansion, - Y2DMultipoleExpansion, + from sumpy.expansion.multipole import ( LinearPDEConformingVolumeTaylorMultipoleExpansion, VolumeTaylorMultipoleExpansion) - - if (isinstance(base_kernel.get_base_kernel(), HelmholtzKernel) - and base_kernel.dim == 2): - return H2DMultipoleExpansion - elif (isinstance(base_kernel.get_base_kernel(), YukawaKernel) - and base_kernel.dim == 2): - return Y2DMultipoleExpansion try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorMultipoleExpansion diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 16ab7c704..3120595e1 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -105,12 +105,8 @@ class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): def get_m2l_translation_class(self, base_kernel, local_expansion_class): from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, _FourierBesselLocalExpansion) - from sumpy.kernel import LaplaceKernel if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): - if isinstance(base_kernel, LaplaceKernel): - return VolumeTaylorM2LWithFFT - else: - return VolumeTaylorM2LTranslation + return VolumeTaylorM2LWithFFT elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): return FourierBesselM2LTranslation else: From 1c6858e30e952f6a337f46d941b48102cc6b46a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kl=C3=B6ckner?= Date: Fri, 24 Jun 2022 23:06:50 -0500 Subject: [PATCH 008/335] Drop Conda version constraint for symengine --- .test-conda-env-py3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index 208f46e08..916e1a81c 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -12,6 +12,6 @@ dependencies: - islpy - pyopencl - python=3 -- python-symengine=0.6.0 +- python-symengine - pyfmmlib - pyrsistent From 43d21d84093215568822fcc83aaec70eb0ef03c4 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 27 Jun 2022 14:36:22 -0500 Subject: [PATCH 009/335] Add SpatialConstant (#86) * Add SpatialConstant * Add docs * Improve docs around SpatialConstant, ExpressionKernel Co-authored-by: Andreas Kloeckner --- doc/conf.py | 4 +++ doc/misc.rst | 2 ++ sumpy/kernel.py | 63 ++++++++++++++++++++++++++++------------------- sumpy/symbolic.py | 52 +++++++++++++++++++++++++++++++++++--- 4 files changed, 93 insertions(+), 28 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 5af7433cc..5dcae4e44 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -27,3 +27,7 @@ "https://docs.sympy.org/latest/": None, "https://matplotlib.org/stable/": None, } + +nitpick_ignore_regex = [ + ["py:class", r"symengine\.(.+)"], # :cry: + ] diff --git a/doc/misc.rst b/doc/misc.rst index b281d3785..10b5042d5 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -3,6 +3,8 @@ Misc Tools .. automodule:: sumpy.tools +.. automodule:: sumpy.symbolic + Installation ============ diff --git a/sumpy/kernel.py b/sumpy/kernel.py index ccc30bcc8..05efd4bb9 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -24,10 +24,10 @@ import loopy as lp import numpy as np from pymbolic.mapper import IdentityMapper, CSECachingMapperMixin -from sumpy.symbolic import pymbolic_real_norm_2 +from sumpy.symbolic import pymbolic_real_norm_2, SpatialConstant import sumpy.symbolic as sym from pymbolic.primitives import make_sym_vector -from pymbolic import var, parse +from pymbolic import var from pytools import memoize_method from collections import defaultdict @@ -286,27 +286,37 @@ def get_source_args(self): class ExpressionKernel(Kernel): - is_complex_valued = False + r""" + .. attribute:: expression + + A :mod:`pymbolic` expression depending on + variables *d_1* through *d_N* where *N* equals *dim*. + (These variables match what is returned from + :func:`pymbolic.primitives.make_sym_vector` with + argument `"d"`.) Any variable that is not *d* or + a :class:`~sumpy.symbolic.SpatialConstant` will be + viewed as potentially spatially varying. + + .. attribute:: global_scaling_const + + A constant :mod:`pymbolic` expression for the + global scaling of the kernel. Typically, this ensures that + the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` + with a constant of 1, where :math:`\mathcal L` is the PDE + operator associated with the kernel. Not to be confused with + *rscale*, which keeps expansion coefficients benignly scaled. + + .. attribute:: is_complex_valued + + .. automethod:: __init__ + .. automethod:: get_expression + """ init_arg_names = ("dim", "expression", "global_scaling_const", "is_complex_valued") def __init__(self, dim, expression, global_scaling_const, is_complex_valued): - r""" - :arg expression: A :mod:`pymbolic` expression depending on - variables *d_1* through *d_N* where *N* equals *dim*. - (These variables match what is returned from - :func:`pymbolic.primitives.make_sym_vector` with - argument `"d"`.) - :arg global_scaling_const: A constant :mod:`pymbolic` expression for the - global scaling of the kernel. Typically, this ensures that - the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` - with a constant of 1, where :math:`\mathcal L` is the PDE - operator associated with the kernel. Not to be confused with - *rscale*, which keeps expansion coefficients benignly scaled. - """ - # expression and global_scaling_const are pymbolic objects because # those pickle cleanly. D'oh, sympy! @@ -324,6 +334,8 @@ def __repr__(self): return f"ExprKnl{self.dim}D" def get_expression(self, scaled_dist_vec): + """Return :attr:`expression` as a :class:`sumpy.symbolic.Basic`.""" + from sumpy.symbolic import PymbolicToSympyMapperWithSymbols expr = PymbolicToSympyMapperWithSymbols()(self.expression) @@ -339,7 +351,8 @@ def get_expression(self, scaled_dist_vec): return expr def get_global_scaling_const(self): - """Return a global scaling of the kernel.""" + """Return a global scaling of the kernel as a :class:`sumpy.symbolic.Basic`. + """ from sumpy.symbolic import PymbolicToSympyMapperWithSymbols return PymbolicToSympyMapperWithSymbols()( @@ -488,7 +501,7 @@ def __init__(self, dim, helmholtz_k_name="k", :arg helmholtz_k_name: The argument name to use for the Helmholtz parameter when generating functions to evaluate this kernel. """ - k = var(helmholtz_k_name) + k = SpatialConstant(helmholtz_k_name) # Guard against code using the old positional interface. assert isinstance(allow_evanescent, bool) @@ -565,7 +578,7 @@ def __init__(self, dim, yukawa_lambda_name="lam"): :arg yukawa_lambda_name: The argument name to use for the Yukawa parameter when generating functions to evaluate this kernel. """ - lam = var(yukawa_lambda_name) + lam = SpatialConstant(yukawa_lambda_name) # NOTE: The Yukawa kernel is given by [1] # -1/(2 pi)**(n/2) * (lam/r)**(n/2-1) * K(n/2-1, lam r) @@ -658,11 +671,11 @@ def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): evaluate this kernel. Can also be a numeric value. """ if isinstance(viscosity_mu, str): - mu = parse(viscosity_mu) + mu = SpatialConstant(viscosity_mu) else: mu = viscosity_mu if isinstance(poisson_ratio, str): - nu = parse(poisson_ratio) + nu = SpatialConstant(poisson_ratio) else: nu = poisson_ratio @@ -769,7 +782,7 @@ def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): """ # mu is unused but kept for consistency with the Stokeslet. if isinstance(viscosity_mu, str): - mu = parse(viscosity_mu) + mu = SpatialConstant(viscosity_mu) else: mu = viscosity_mu @@ -854,11 +867,11 @@ def __init__(self, dim=3, axis=2, viscosity_mu="mu", poisson_ratio="nu"): evaluate this kernel. Can also be a numeric value. """ if isinstance(viscosity_mu, str): - mu = parse(viscosity_mu) + mu = SpatialConstant(viscosity_mu) else: mu = viscosity_mu if isinstance(poisson_ratio, str): - nu = parse(poisson_ratio) + nu = SpatialConstant(poisson_ratio) else: nu = poisson_ratio diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 53f73e3c0..4e1234ae2 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -20,6 +20,19 @@ THE SOFTWARE. """ +__doc__ = """ + + Symbolic Tools + ============== + + .. class:: Basic + + The expression base class for the "heavy-duty" computer algebra toolkit + in use. Either :class:`sympy.core.basic.Basic` or :class:`symengine.Basic`. + + .. autoclass:: SpatialConstant +""" + import numpy as np from pymbolic.mapper import IdentityMapper as IdentityMapperBase @@ -69,12 +82,13 @@ def _find_symbolic_backend(): if USE_SYMENGINE: import symengine as sym from pymbolic.interop.symengine import ( - PymbolicToSymEngineMapper as PymbolicToSympyMapper, - SymEngineToPymbolicMapper as SympyToPymbolicMapper) + PymbolicToSymEngineMapper as PymbolicToSympyMapperBase, + SymEngineToPymbolicMapper as SympyToPymbolicMapperBase) else: import sympy as sym from pymbolic.interop.sympy import ( - PymbolicToSympyMapper, SympyToPymbolicMapper) + PymbolicToSympyMapper as PymbolicToSympyMapperBase, + SympyToPymbolicMapper as SympyToPymbolicMapperBase) # Symbolic API common to SymEngine and sympy. # Before adding a function here, make sure it's present in both modules. @@ -241,6 +255,38 @@ def find_power_of(base, prod): return result[power] +class SpatialConstant(prim.Variable): + """A symbolic constant to represent a symbolic variable that + is spatially constant, like for example the wave-number :math:`k` + in the setting of a constant-coefficient Helmholtz problem. + For use in :attr:`sumpy.kernel.ExpressionKernel.expression`. + Any variable occurring there that is not a :class:`SpatialConstant` + is assumed to have a spatial dependency. + """ + + prefix = "_spatial_constant_" + mapper_method = "map_spatial_constant" + + def as_sympy(self): + return sym.Symbol(f"{self.prefix}{self.name}") + + @classmethod + def from_sympy(cls, expr): + return cls(expr.name[len(cls.prefix):]) + + +class PymbolicToSympyMapper(PymbolicToSympyMapperBase): + def map_spatial_constant(self, expr): + return expr.as_sympy() + + +class SympyToPymbolicMapper(SympyToPymbolicMapperBase): + def map_Symbol(self, expr): # noqa + if expr.name.startswith(SpatialConstant.prefix): + return SpatialConstant.from_sympy(expr) + return SympyToPymbolicMapperBase.map_Symbol(self, expr) + + class PymbolicToSympyMapperWithSymbols(PymbolicToSympyMapper): def map_variable(self, expr): if expr.name == "I": From 4e341182ee49bcea7d09279d9d70b21743732936 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 3 Jul 2022 12:01:38 -0500 Subject: [PATCH 010/335] Check, add ignores for bugbear B023 --- sumpy/cse.py | 2 +- sumpy/expansion/local.py | 2 +- test/test_fmm.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sumpy/cse.py b/sumpy/cse.py index 8c9776711..49ba690f2 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -305,7 +305,7 @@ def match_common_args(func_class, funcs, opt_subs): # This makes us try combining smaller matches first. common_arg_candidates = OrderedSet(sorted( common_arg_candidates_counts.keys(), - key=lambda k: (common_arg_candidates_counts[k], k))) + key=lambda k: (common_arg_candidates_counts[k], k))) # noqa: B023 while common_arg_candidates: j = common_arg_candidates.pop(last=False) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index d170aba9a..64919b17e 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -197,7 +197,7 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, # Following is a hack to make sure cse works. if 1: def save_temp(x): - return add_to_sac(sac, weight * x) + return add_to_sac(sac, weight * x) # noqa: B023 for i, mi in enumerate(self.get_coefficient_identifiers()): result[i] += taker.diff(mi, save_temp) diff --git a/test/test_fmm.py b/test/test_fmm.py index 4d6d0d480..3e8ebf0b9 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -204,10 +204,10 @@ def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, if order_varies_with_level: def fmm_level_to_order(kernel, kernel_args, tree, lev): - return order + lev % 2 + return order + lev % 2 # noqa: B023 else: def fmm_level_to_order(kernel, kernel_args, tree, lev): - return order + return order # noqa: B023 wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=fmm_level_to_order, From fd355ebfbcc7f3b4ee96640563c55e5bc6f88a76 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 31 Jul 2022 14:30:57 -0500 Subject: [PATCH 011/335] Fix lint missed by flake8<5 --- sumpy/e2p.py | 3 ++- sumpy/p2p.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 421547d36..0f0e1d166 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -275,7 +275,8 @@ def get_kernel(self): result[{resultidx}, itgt] = result[{resultidx}, itgt] + \ kernel_scaling * simul_reduce(sum, isrc_box, result_{resultidx}_p) {{id_prefix=write_result}} - """.format(resultidx=i) for i in range(len(result_names))] + [""" + """.format(resultidx=i) for i in range(len(result_names))] + + [""" end end """], diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 381918462..f70ecedfe 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -74,9 +74,9 @@ def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, target_kernels = [sxr(knl) for knl in target_kernels] else: for knl in source_kernels: - assert(txr(knl) == knl) + assert txr(knl) == knl for knl in target_kernels: - assert(sxr(knl) == knl) + assert sxr(knl) == knl base_source_kernel = single_valued(sxr(knl) for knl in source_kernels) base_target_kernel = single_valued(txr(knl) for knl in target_kernels) From 9849af5ab27cd57ee6a8a94664d25f6abba7bd6b Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 1 Aug 2022 15:52:46 -0500 Subject: [PATCH 012/335] FFT using pyvkfft and use loopy callables (#114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use a separate class for M2L translation * Fix docs and caching * Fix p2p warning * Use VkFFT for M2L generate data * Fix profiling events * simplify m2l data zeros * Add pyvkfft to requirements * Fix flake8 warning * Fix typo * VkFFT for M2L preprocess local * vkfft for postprocess local * Fix AggregateProfilingEvent * Fix another typo * M2L Translation Factory * vim markers * Fix tests * Fix toys * Fix test_m2l_toeplitz * Fix more tests * Use a better rscale to get the test passing * Use pytential dev branch * remove whitespace on blank line * Try 2r/order instead of r/order * fix using updated pytential * Fix tests * use pytential branch with pyvkfft req * Add explanation about caller being responsible for the FFT * Fix for bessel * Add pyvkfft to setup.py reqs * use list comprehension * Type annotations * fix vim marker * remove unused function * m2l_data_inner -> m2l_data * more descriptive name for child_knl * knl -> expr_knl for clarity * move loop unroll to optimized * Add explanation about translation_classes_dependent_data_loopy_knl * make coeffs output only and rewrite * Re-arrange m2l so that event processing is easier * flake8: single quotes -> double quotes * Fix data not being input * make args to cached_vkfft_app explicit * cache vkfftapp in wrangler * keep coeffs is_input and is_output for e2e * out-of-place fft * Use a separate queue for configuration * allocate array for out-of-place * fix typo * Remove caching of opencl fft app * Comment out pytentual fork * fix vkfft queues * use private API for now * Add comment on pyvkfft PR * remove inplace Co-authored-by: Andreas Klöckner --- .github/workflows/ci.yml | 6 +- .test-conda-env-py3.yml | 1 + requirements.txt | 1 + setup.py | 1 + sumpy/e2e.py | 237 +++++++++++------------------ sumpy/expansion/m2l.py | 311 +++++++++++++++++++++++++++++++++------ sumpy/fmm.py | 177 ++++++++++++++-------- sumpy/p2p.py | 2 +- sumpy/tools.py | 94 +++++++++++- test/test_fmm.py | 15 +- 10 files changed, 588 insertions(+), 257 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c369d1fc0..a66e81b72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,9 +88,9 @@ jobs: run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 - if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "m2l" ]]; then - DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@m2l_translation - fi + # if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "fft" ]]; then + # DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@pyvkfft + # fi test_downstream "$DOWNSTREAM_PROJECT" # vim: sw=4 diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index 916e1a81c..575e02e2a 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -15,3 +15,4 @@ dependencies: - python-symengine - pyfmmlib - pyrsistent +- pyvkfft diff --git a/requirements.txt b/requirements.txt index ed07527b7..a26c33e3b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ numpy sympy pyrsistent +pyvkfft git+https://github.com/inducer/pytools.git#egg=pytools git+https://github.com/inducer/pymbolic.git#egg=pymbolic git+https://github.com/inducer/islpy.git#egg=islpy diff --git a/setup.py b/setup.py index 5ca544177..f9f0be9be 100644 --- a/setup.py +++ b/setup.py @@ -106,5 +106,6 @@ def write_git_revision(package_name): "dataclasses>=0.7;python_version<='3.6'", "sympy>=0.7.2", "pymbolic>=2021.1", + "pyvkfft>=2022.1", ], ) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index b35f86cd1..5bd0ab2b3 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -361,16 +361,16 @@ def get_inner_loopy_kernel(self, result_dtype): domains = [] insns = self.get_translation_loopy_insns(result_dtype) - coeff = pymbolic.var("coeff") + tgt_coeffs = pymbolic.var("tgt_coeffs") for i in range(ncoeff_tgt): expr = pymbolic.var(f"tgt_coeff{i}") - insn = lp.Assignment(assignee=coeff[i], - expression=coeff[i] + expr) + insn = lp.Assignment(assignee=tgt_coeffs[i], + expression=tgt_coeffs[i] + expr) insns.append(insn) return lp.make_function(domains, insns, kernel_data=[ - lp.GlobalArg("coeff", shape=(ncoeff_tgt,), + lp.GlobalArg("tgt_coeffs", shape=(ncoeff_tgt,), is_output=True, is_input=True), lp.GlobalArg("src_coeffs", shape=(ncoeff_src,)), lp.GlobalArg("data", shape=(ndata,)), @@ -420,7 +420,8 @@ def get_kernel(self, result_dtype): <> isrc_start = src_box_starts[itgt_box] <> isrc_stop = src_box_starts[itgt_box+1] for icoeff_tgt - <> coeffs[icoeff_tgt] = 0 {id=init_coeffs, dup=icoeff_tgt} + <> tgt_expansion[icoeff_tgt] = 0 \ + {id=init_coeffs, dup=icoeff_tgt} end for isrc_box <> src_ibox = src_box_lists[isrc_box] \ @@ -430,8 +431,8 @@ def get_kernel(self, result_dtype): <> translation_class_rel = \ translation_class - translation_classes_level_start \ {id=translation_offset} - [icoeff_tgt]: coeffs[icoeff_tgt] = e2e( - [icoeff_tgt]: coeffs[icoeff_tgt], + [icoeff_tgt]: tgt_expansion[icoeff_tgt] = e2e( + [icoeff_tgt]: tgt_expansion[icoeff_tgt], [icoeff_src]: src_expansions[src_ibox - src_base_ibox, icoeff_src], [idep]: m2l_translation_classes_dependent_data[ @@ -441,7 +442,8 @@ def get_kernel(self, result_dtype): ) {dep=init_coeffs,id=update_coeffs} end tgt_expansions[tgt_ibox - tgt_base_ibox, icoeff_tgt] = \ - coeffs[icoeff_tgt] {dep=update_coeffs, dup=icoeff_tgt} + tgt_expansion[icoeff_tgt] \ + {dep=update_coeffs, dup=icoeff_tgt} end """], [ @@ -533,55 +535,34 @@ class M2LGenerateTranslationClassesDependentData(E2EBase): """ default_name = "m2l_generate_translation_classes_dependent_data" - def get_translation_loopy_insns(self, result_dtype): - from sumpy.symbolic import make_sym_vector - dvec = make_sym_vector("d", self.dim) - - src_rscale = sym.Symbol("src_rscale") - - m2l_translation = self.tgt_expansion.m2l_translation - - from sumpy.assignment_collection import SymbolicAssignmentCollection - sac = SymbolicAssignmentCollection() - tgt_coeff_names = [ - sac.assign_unique( - f"m2l_translation_classes_dependent_expr{i}", coeff_i) - for i, coeff_i in enumerate( - m2l_translation.translation_classes_dependent_data( - self.tgt_expansion, self.src_expansion, src_rscale, - dvec, sac=sac))] - - sac.run_global_cse() - - from sumpy.codegen import to_loopy_insns - return to_loopy_insns( - sac.assignments.items(), - vector_names={"d"}, - pymbolic_expr_maps=[self.tgt_expansion.get_code_transformer()], - retain_names=tgt_coeff_names, - complex_dtype=to_complex_dtype(result_dtype), - ) - def get_kernel(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation m2l_translation_classes_dependent_ndata = \ - self.tgt_expansion.m2l_translation.translation_classes_dependent_ndata( + m2l_translation.translation_classes_dependent_ndata( self.tgt_expansion, self.src_expansion) + + translation_classes_data_knl = \ + m2l_translation.translation_classes_dependent_data_loopy_knl( + self.tgt_expansion, self.src_expansion, result_dtype) + from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ "{[itr_class]: 0<=itr_class d[idim] = m2l_translation_vectors[idim, \ - itr_class + translation_classes_level_start] - - """] + self.get_translation_loopy_insns(result_dtype) + [""" - m2l_translation_classes_dependent_data[itr_class, {idx}] = \ - m2l_translation_classes_dependent_expr{idx} - """.format(idx=i) for i in range( - m2l_translation_classes_dependent_ndata)] + [""" + itr_class + translation_classes_level_start] \ + {id=set_d,dup=idim} + [idata]: m2l_translation_classes_dependent_data[ + itr_class, idata] = \ + m2l_data( + src_rscale, + [idim]: d[idim], + ) {id=update,dep=set_d} end """], [ @@ -600,14 +581,18 @@ def get_kernel(self, result_dtype): name=self.name, assumptions="ntranslation_classes>=1", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim), + fixed_parameters=dict( + dim=self.dim, + m2l_translation_classes_dependent_ndata=( + m2l_translation_classes_dependent_ndata)), lang_version=MOST_RECENT_LANGUAGE_VERSION ) - for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: - loopy_knl = knl.prepare_loopy_kernel(loopy_knl) + for expr_knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: + loopy_knl = expr_knl.prepare_loopy_kernel(loopy_knl) - loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") + loopy_knl = lp.merge([loopy_knl, translation_classes_data_knl]) + loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_data") loopy_knl = lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") @@ -616,6 +601,7 @@ def get_kernel(self, result_dtype): def get_optimized_kernel(self, result_dtype): # FIXME knl = self.get_kernel(result_dtype) + knl = lp.tag_inames(knl, "idim*:unr") knl = lp.tag_inames(knl, {"itr_class": "g.0"}) return knl @@ -656,54 +642,29 @@ class M2LPreprocessMultipole(E2EBase): default_name = "m2l_preprocess_multipole" - def get_loopy_insns(self, result_dtype): - src_coeff_exprs = [ - sym.Symbol(f"src_coeff{i}") - for i in range(len(self.src_expansion))] - - src_rscale = sym.Symbol("src_rscale") - - from sumpy.assignment_collection import SymbolicAssignmentCollection - sac = SymbolicAssignmentCollection() - - preprocessed_src_coeff_names = [ - sac.assign_unique(f"preprocessed_src_coeff{i}", coeff_i) - for i, coeff_i in enumerate( - self.tgt_expansion.m2l_translation.preprocess_multipole_exprs( - self.tgt_expansion, self.src_expansion, src_coeff_exprs, - sac=sac, src_rscale=src_rscale))] - - sac.run_global_cse() - - from sumpy.codegen import to_loopy_insns - return to_loopy_insns( - sac.assignments.items(), - vector_names={"d"}, - pymbolic_expr_maps=[self.tgt_expansion.get_code_transformer()], - retain_names=preprocessed_src_coeff_names, - complex_dtype=to_complex_dtype(result_dtype), - ) - def get_kernel(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation nsrc_coeffs = len(self.src_expansion) npreprocessed_src_coeffs = \ - self.tgt_expansion.m2l_translation.preprocess_multipole_nexprs( - self.tgt_expansion, self.src_expansion) + m2l_translation.preprocess_multipole_nexprs(self.tgt_expansion, + self.src_expansion) + single_box_preprocess_knl = m2l_translation.preprocess_multipole_loopy_knl( + self.tgt_expansion, self.src_expansion, result_dtype) + from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ "{[isrc_box]: 0<=isrc_box src_coeff{idx} = src_expansions[isrc_box, {idx}] - """.format(idx=i) for i in range(nsrc_coeffs)] + [ - ] + self.get_loopy_insns(result_dtype) + [""" - preprocessed_src_expansions[isrc_box, {idx}] = \ - preprocessed_src_coeff{idx} - """.format(idx=i) for i in range( - npreprocessed_src_coeffs)] + [""" + [itgt_coeff]: preprocessed_src_expansions[isrc_box, itgt_coeff] \ + = m2l_preprocess_inner( + src_rscale, + [isrc_coeff]: src_expansions[isrc_box, isrc_coeff], + ) end """], [ @@ -718,22 +679,27 @@ def get_kernel(self, result_dtype): ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), name=self.name, assumptions="nsrc_boxes>=1", + fixed_parameters=dict( + nsrc_coeffs=nsrc_coeffs, + npreprocessed_src_coeffs=npreprocessed_src_coeffs), default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim), - lang_version=MOST_RECENT_LANGUAGE_VERSION + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) for expn in [self.src_expansion.kernel, self.tgt_expansion.kernel]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) - loopy_knl = lp.set_options(loopy_knl, - enforce_variable_access_ordered="no_check") + loopy_knl = lp.merge([loopy_knl, single_box_preprocess_knl]) + loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_preprocess_inner") + return loopy_knl def get_optimized_kernel(self, result_dtype): # FIXME knl = self.get_kernel(result_dtype) - knl = lp.split_iname(knl, "isrc_box", 16, outer_tag="g.0") + knl = lp.split_iname(knl, "isrc_box", 64, outer_tag="g.0", + within=f"in_kernel:{self.name}") + knl = lp.add_inames_for_unused_hw_axes(knl) return knl def __call__(self, queue, **kwargs): @@ -744,8 +710,10 @@ def __call__(self, queue, **kwargs): preprocessed_src_expansions = kwargs.pop("preprocessed_src_expansions") result_dtype = preprocessed_src_expansions.dtype knl = self.get_cached_optimized_kernel(result_dtype=result_dtype) + return knl(queue, - preprocessed_src_expansions=preprocessed_src_expansions, **kwargs) + preprocessed_src_expansions=preprocessed_src_expansions, **kwargs) + # }}} @@ -756,68 +724,32 @@ class M2LPostprocessLocal(E2EBase): default_name = "m2l_postprocess_local" - def get_loopy_insns(self, result_dtype): + def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation - ncoeffs_before_postprocessing = \ + ntgt_coeffs = len(self.tgt_expansion) + ntgt_coeffs_before_postprocessing = \ m2l_translation.postprocess_local_nexprs(self.tgt_expansion, - self.src_expansion) - - tgt_coeff_exprs_before_postprocessing = [ - sym.Symbol(f"tgt_coeff_before_postprocessing{i}") - for i in range(ncoeffs_before_postprocessing)] - - src_rscale = sym.Symbol("src_rscale") - tgt_rscale = sym.Symbol("tgt_rscale") - - from sumpy.assignment_collection import SymbolicAssignmentCollection - sac = SymbolicAssignmentCollection() - - tgt_coeff_exprs = m2l_translation.postprocess_local_exprs( - self.tgt_expansion, self.src_expansion, - tgt_coeff_exprs_before_postprocessing, - sac=sac, src_rscale=src_rscale, tgt_rscale=tgt_rscale) - - if result_dtype in (np.float32, np.float64): - real_func = sym.Function("real") - tgt_coeff_exprs = [real_func(expr) for expr in - tgt_coeff_exprs] - - tgt_coeff_names = [ - sac.assign_unique(f"tgt_coeff{i}", coeff_i) - for i, coeff_i in enumerate(tgt_coeff_exprs)] - - sac.run_global_cse() + self.src_expansion) - from sumpy.codegen import to_loopy_insns - return to_loopy_insns( - sac.assignments.items(), - vector_names={"d"}, - pymbolic_expr_maps=[self.tgt_expansion.get_code_transformer()], - retain_names=tgt_coeff_names, - complex_dtype=to_complex_dtype(result_dtype), - ) + single_box_postprocess_knl = m2l_translation.postprocess_local_loopy_knl( + self.tgt_expansion, self.src_expansion, result_dtype) - def get_kernel(self, result_dtype): - ntgt_coeffs = len(self.tgt_expansion) - ntgt_coeffs_before_postprocessing = \ - self.tgt_expansion.m2l_translation.postprocess_local_nexprs( - self.tgt_expansion, self.src_expansion) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( [ "{[itgt_box]: 0<=itgt_box tgt_coeff_before_postprocessing{idx} = \ - tgt_expansions_before_postprocessing[itgt_box, {idx}] - """.format(idx=i) for i in range( - ntgt_coeffs_before_postprocessing)] - + self.get_loopy_insns(result_dtype) + [""" - tgt_expansions[itgt_box, {idx}] = \ - tgt_coeff{idx} - """.format(idx=i) for i in range(ntgt_coeffs)] + [""" + [itgt_coeff]: tgt_expansions[itgt_box, itgt_coeff] = \ + m2l_postprocess_inner( + tgt_rscale, + src_rscale, + [isrc_coeff]: tgt_expansions_before_postprocessing[ \ + itgt_box, isrc_coeff], + ) end """], [ @@ -834,13 +766,20 @@ def get_kernel(self, result_dtype): name=self.name, assumptions="ntgt_boxes>=1", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim), + fixed_parameters=dict( + dim=self.dim, + nsrc_coeffs=ntgt_coeffs_before_postprocessing, + ntgt_coeffs=ntgt_coeffs, + ), lang_version=MOST_RECENT_LANGUAGE_VERSION ) for expn in [self.src_expansion.kernel, self.tgt_expansion.kernel]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) + loopy_knl = lp.merge([loopy_knl, single_box_postprocess_knl]) + loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_postprocess_inner") + loopy_knl = lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") return loopy_knl @@ -859,8 +798,8 @@ def __call__(self, queue, **kwargs): tgt_expansions = kwargs.pop("tgt_expansions") result_dtype = tgt_expansions.dtype knl = self.get_cached_optimized_kernel(result_dtype=result_dtype) - return knl(queue, - tgt_expansions=tgt_expansions, **kwargs) + + return knl(queue, tgt_expansions=tgt_expansions, **kwargs) # }}} diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 3120595e1..796e951c8 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -24,10 +24,10 @@ import pymbolic import loopy as lp +import numpy as np import sumpy.symbolic as sym from sumpy.tools import ( - add_to_sac, fft, - matvec_toeplitz_upper_triangular) + add_to_sac, matvec_toeplitz_upper_triangular) import logging logger = logging.getLogger(__name__) @@ -164,6 +164,9 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, distance between per level, these can be precomputed for the tree. In :mod:`boxtree`, these distances are referred to as translation classes. + + When FFT is turned on, the output expressions are assumed to be + transformed into Fourier space at the end by the caller. """ return tuple() @@ -178,17 +181,27 @@ def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): """ return 0 + def translation_classes_dependent_data_loopy_knl(self, tgt_expansion, + src_expansion, result_dtype): + """Return a :mod:`loopy` kernel that calculates the data described by + :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. + :arg result_dtype: The :mod:`numpy` type of the result. + """ + return translation_classes_dependent_data_loopy_knl(tgt_expansion, + src_expansion, result_dtype) + def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): """Return the preprocessed multipole expansion for an optimized M2L. Preprocessing happens once per source box before M2L translation is done. - When FFT is turned on, the input expressions are transformed into Fourier - space. These expressions are used in a separate :mod:`loopy` kernel - to avoid having to transform for each target and source box pair. - When FFT is turned off, the expressions are equal to the multipole - expansion coefficients with zeros added - to make the M2L computation a circulant matvec. + These expressions are used in a separate :mod:`loopy` kernel + to avoid having to process for each target and source box pair. + When FFT is turned on, the output expressions are assumed to be + transformed into Fourier space at the end by the caller. + When FFT is turned off, the output expressions are equal to the multipole + expansion coefficients with zeros added to make the M2L computation a + circulant matvec. """ raise NotImplementedError @@ -211,8 +224,8 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, is done and before storing the expansion coefficients for the local expansion. - When FFT is turned on, the output expressions are transformed from Fourier - space back to the original space. + When FFT is turned on, the output expressions are assumed to have been + transformed from Fourier space back to the original space by the caller. """ raise NotImplementedError @@ -397,9 +410,9 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + circulant_matrix_mis, _, _ = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) circulant_matrix_ident_to_index = {ident: i for i, ident in enumerate(circulant_matrix_mis)} @@ -416,12 +429,65 @@ def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): circulant_matrix_mis, _, _ = \ self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + src_expansion) return len(circulant_matrix_mis) + def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, + result_dtype): + + circulant_matrix_mis, _, _ = \ + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion) + circulant_matrix_ident_to_index = dict((ident, i) for i, ident in + enumerate(circulant_matrix_mis)) + + ncoeff_src = len(src_expansion.get_coefficient_identifiers()) + ncoeff_preprocessed = self.preprocess_multipole_nexprs(tgt_expansion, + src_expansion) + + output_coeffs = pymbolic.var("output_coeffs") + input_coeffs = pymbolic.var("input_coeffs") + ioutput_coeff = pymbolic.var("ioutput_coeff") + + domains = [ + "{[ioutput_coeff]: 0<=ioutput_coeff rscale_ratio = tgt_rscale / src_rscale {id=rscale_ratio}"] + + rscale_arr = pymbolic.var("rscale_arr") + rscale_ratio = pymbolic.var("rscale_ratio") + iorder = pymbolic.var("iorder") + + insns += [ + lp.Assignment( + assignee=rscale_arr[0], + expression=1, + id="rscale_arr0", + depends_on="rscale_ratio", + ), + lp.Assignment( + assignee=rscale_arr[iorder], + expression=rscale_arr[iorder - 1]*rscale_ratio, + id="rscale_arr", + depends_on="rscale_arr0", + ), + ] + + output_coeffs = pymbolic.var("output_coeffs") + input_coeffs = pymbolic.var("input_coeffs") + + if self.use_fft and result_dtype in \ + (np.float64, np.float32): + result_func = pymbolic.var("real") + else: + def result_func(x): + return x + + for new_icoeff_tgt, term in enumerate( + tgt_expansion.get_coefficient_identifiers()): + if self.use_fft: + # since we reversed the M2L matrix, we reverse the result + # to get the correct result + n = len(circulant_matrix_mis) + icoeff_tgt = n - 1 - circulant_matrix_ident_to_index[term] + else: + icoeff_tgt = circulant_matrix_ident_to_index[term] + + insns += [ + lp.Assignment( + assignee=output_coeffs[new_icoeff_tgt], + expression=result_func( + input_coeffs[icoeff_tgt]) * rscale_arr[sum(term)], + id=f"coeff_insn_{new_icoeff_tgt}", + depends_on="rscale_arr", + ) + ] + + return lp.make_function(domains, insns, + kernel_data=[ + lp.ValueArg("src_rscale", None), + lp.ValueArg("tgt_rscale", None), + lp.GlobalArg("output_coeffs", None, + shape=ncoeff_tgt, is_input=False, + is_output=True), + lp.GlobalArg("input_coeffs", None, + shape=ncoeff_before_postprocessed, + is_output=False, is_input=True), + lp.TemporaryVariable("rscale_arr", + None, + shape=(order + 1,)), + ...], + name="m2l_postprocess_inner", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + fixed_parameters=fixed_parameters, + ) + # }}} VolumeTaylorM2LTranslation @@ -468,7 +627,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): icoeff_tgt = pymbolic.var("icoeff_tgt") domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] - coeff = pymbolic.var("coeff") + tgt_coeffs = pymbolic.var("tgt_coeffs") src_coeffs = pymbolic.var("src_coeffs") translation_classes_dependent_data = pymbolic.var("data") @@ -487,14 +646,17 @@ def loopy_translate(self, tgt_expansion, src_expansion): insns = [ lp.Assignment( - assignee=coeff[icoeff_tgt], - expression=coeff[icoeff_tgt] + expr), + assignee=tgt_coeffs[icoeff_tgt], + expression=tgt_coeffs[icoeff_tgt] + expr + ), ] return lp.make_function(domains, insns, kernel_data=[ - lp.GlobalArg("coeff, src_coeffs, data", - shape=lp.auto), - lp.ValueArg("src_rscale, tgt_rscale"), + lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, + is_output=True), + lp.GlobalArg("src_coeffs, data", + shape=lp.auto, is_input=True, is_output=False), + lp.ValueArg("src_rscale, tgt_rscale", is_input=True), ...], name="e2e", lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, @@ -519,7 +681,13 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, def translation_classes_dependent_data(self, tgt_expansion, src_expansion, src_rscale, dvec, sac): + """Return an iterable of expressions that needs to be precomputed + for multipole-to-local translations that depend only on the + distance between the multipole center and the local center which + is given as *dvec*. + The final result should be transformed using an FFT. + """ derivatives_full = super().translation_classes_dependent_data( tgt_expansion, src_expansion, src_rscale, dvec, sac) # Note that the matrix we have now is a mirror image of a @@ -527,14 +695,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, # first column for the circulant matrix and then finally # use the FFT for convolution represented by the circulant # matrix. - return fft(list(reversed(derivatives_full)), sac=sac) - - def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, - src_coeff_exprs, sac, src_rscale): - input_vector = super().preprocess_multipole_exprs( - tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale) - - return fft(input_vector, sac=sac) + return list(reversed(derivatives_full)) def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac): @@ -542,7 +703,6 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) n = len(circulant_matrix_mis) - m2l_result = fft(m2l_result, inverse=True, sac=sac) # since we reversed the M2L matrix, we reverse the result # to get the correct result m2l_result = list(reversed(m2l_result[:n])) @@ -665,7 +825,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): icoeff_tgt = pymbolic.var("icoeff_tgt") domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] - coeff = pymbolic.var("coeff") + tgt_coeffs = pymbolic.var("tgt_coeffs") src_coeffs = pymbolic.var("src_coeffs") translation_classes_dependent_data = pymbolic.var("data") @@ -681,14 +841,16 @@ def loopy_translate(self, tgt_expansion, src_expansion): insns = [ lp.Assignment( - assignee=coeff[icoeff_tgt], - expression=coeff[icoeff_tgt] + expr), + assignee=tgt_coeffs[icoeff_tgt], + expression=tgt_coeffs[icoeff_tgt] + expr), ] return lp.make_function(domains, insns, kernel_data=[ - lp.GlobalArg("coeff, src_coeffs, data", - shape=lp.auto), - lp.ValueArg("src_rscale, tgt_rscale"), + lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, + is_output=True), + lp.GlobalArg("src_coeffs, data", + shape=lp.auto, is_input=True, is_output=False), + lp.ValueArg("src_rscale, tgt_rscale", is_input=True), ...], name="e2e", lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, @@ -726,7 +888,6 @@ def loopy_translate(self, tgt_expansion, src_expansion): def translation_classes_dependent_data(self, tgt_expansion, src_expansion, src_rscale, dvec, sac): - from sumpy.tools import fft translation_classes_dependent_data = \ super().translation_classes_dependent_data(tgt_expansion, src_expansion, src_rscale, dvec, sac) @@ -748,26 +909,94 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, first_column_circulant = list(first_column_toeplitz) + \ list(reversed(first_row_toeplitz)) - return fft(first_column_circulant, sac) + return first_column_circulant def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): - from sumpy.tools import fft result = super().preprocess_multipole_exprs(tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale) result = list(reversed(result)) result += [0] * (len(result) - 1) - return fft(result, sac=sac) + return result def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac): - m2l_result = fft(m2l_result, inverse=True, sac=sac) m2l_result = m2l_result[:2*tgt_expansion.order+1] return super().postprocess_local_exprs(tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) + # }}} FourierBesselM2LWithFFT + +# {{{ translation_classes_dependent_data_loopy_knl + +def translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, + result_dtype): + """ + This is a helper function to create a loopy kernel to generate translation + classes dependent data. This function uses symbolic expressions given by the + M2L translation, converts them to pymbolic expressions and generates a loopy + kernel. Note that the loopy kernel returned has lots of expressions in it and + takes a long time. Therefore, this function should be used only as a fallback + when there is no "loop-y" kernel to calculate the data. + """ + src_rscale = sym.Symbol("src_rscale") + dvec = sym.make_sym_vector("d", tgt_expansion.dim) + from sumpy.assignment_collection import SymbolicAssignmentCollection + sac = SymbolicAssignmentCollection() + derivatives = tgt_expansion.m2l_translation.translation_classes_dependent_data( + tgt_expansion, src_expansion, src_rscale, dvec, sac) + + vec_name = "m2l_translation_classes_dependent_data" + + tgt_coeff_names = [ + sac.assign_unique("m2l_translation_classes_dependent_data%d" % i, + coeff_i) + for i, coeff_i in enumerate(derivatives)] + sac.run_global_cse() + + from sumpy.codegen import to_loopy_insns + from sumpy.tools import to_complex_dtype + insns = to_loopy_insns( + sac.assignments.items(), + vector_names=set(["d"]), + pymbolic_expr_maps=[tgt_expansion.get_code_transformer()], + retain_names=tgt_coeff_names, + complex_dtype=to_complex_dtype(result_dtype), + ) + + data = pymbolic.var("m2l_translation_classes_dependent_data") + depends_on = None + for i in range(len(insns)): + insn = insns[i] + if isinstance(insn, lp.Assignment) and \ + insn.assignee.name.startswith(vec_name): + idx = int(insn.assignee.name[len(vec_name):]) + insns[i] = lp.Assignment( + assignee=data[idx], + expression=insn.expression, + id=f"data_{idx}", + depends_on=depends_on, + ) + depends_on = frozenset([f"data_{idx}"]) + + knl = lp.make_function([], insns, + kernel_data=[ + lp.ValueArg("src_rscale", None), + lp.GlobalArg("d", None, shape=tgt_expansion.dim), + lp.GlobalArg(data.name, None, + shape=len(derivatives), is_input=False, + is_output=True), + ], + name="m2l_data", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + ) + + return knl + +# }}} translation_classes_dependent_data_loopy_knl + # vim: fdm=marker diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 42564444a..95afd2cc1 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -41,7 +41,10 @@ E2EFromChildren, E2EFromParent, M2LGenerateTranslationClassesDependentData, M2LPreprocessMultipole, M2LPostprocessLocal) -from sumpy.tools import to_complex_dtype +from sumpy.tools import (to_complex_dtype, AggregateProfilingEvent, + run_opencl_fft, get_opencl_fft_app) + +from typing import TypeVar, List, Union # {{{ tree-independent data for wrangler @@ -176,6 +179,11 @@ def p2p(self): exclude_self=self.exclude_self, strength_usage=self.strength_usage) + @memoize_method + def opencl_fft_app(self, shape, dtype): + with cl.CommandQueue(self.cl_context) as queue: + return get_opencl_fft_app(queue, shape, dtype) + # }}} @@ -184,16 +192,28 @@ def p2p(self): _SECONDS_PER_NANOSECOND = 1e-9 +""" +EventLike objects have an attribute native_event that returns +a cl.Event that indicates the end of the event. +""" +EventLike = TypeVar("CLEventLike") + + class UnableToCollectTimingData(UserWarning): pass class SumpyTimingFuture: - def __init__(self, queue, events): + def __init__(self, queue, events: List[Union[cl.Event, EventLike]]): self.queue = queue self.events = events + @property + def native_events(self) -> List[cl.Event]: + return [evt if isinstance(evt, cl.Event) else evt.native_event + for evt in self.events] + @memoize_method def result(self): from boxtree.timing import TimingResult @@ -208,7 +228,7 @@ def result(self): return TimingResult(wall_elapsed=None) if self.events: - pyopencl.wait_for_events(self.events) + pyopencl.wait_for_events(self.native_events) result = 0 for event in self.events: @@ -222,7 +242,7 @@ def done(self): return all( event.get_info(cl.event_info.COMMAND_EXECUTION_STATUS) == cl.command_execution_status.COMPLETE - for event in self.events) + for event in self.native_events) # }}} @@ -395,10 +415,18 @@ def local_expansion_zeros(self, template_ary): dtype=self.dtype) def m2l_translation_classes_dependent_data_zeros(self, queue): - return cl.array.zeros( - queue, - self.m2l_translation_classes_dependent_data_level_starts()[-1], - dtype=self.preprocessed_mpole_dtype) + result = [] + for level in range(self.tree.nlevels): + expn_start, expn_stop = \ + self.m2l_translation_classes_dependent_data_level_starts()[ + level:level+2] + translation_class_start, translation_class_stop = \ + self.m2l_translation_class_level_start_box_nrs()[level:level+2] + exprs_level = cl.array.zeros(queue, expn_stop - expn_start, + dtype=self.preprocessed_mpole_dtype) + result.append(exprs_level.reshape( + translation_class_stop - translation_class_start, -1)) + return result def multipole_expansions_view(self, mpole_exps, level): expn_start, expn_stop = \ @@ -418,14 +446,10 @@ def local_expansions_view(self, local_exps, level): def m2l_translation_classes_dependent_data_view(self, m2l_translation_classes_dependent_data, level): - expn_start, expn_stop = \ - self.m2l_translation_classes_dependent_data_level_starts()[level:level+2] - translation_class_start, translation_class_stop = \ + translation_class_start, _ = \ self.m2l_translation_class_level_start_box_nrs()[level:level+2] - - exprs_level = m2l_translation_classes_dependent_data[expn_start:expn_stop] - return (translation_class_start, exprs_level.reshape( - translation_class_stop - translation_class_start, -1)) + exprs_level = m2l_translation_classes_dependent_data[level] + return (translation_class_start, exprs_level) @memoize_method def m2l_preproc_mpole_expansions_level_starts(self): @@ -440,18 +464,19 @@ def order_to_size(order): level_starts=self.tree.level_start_box_nrs) def m2l_preproc_mpole_expansion_zeros(self, template_ary): - return cl.array.zeros( - template_ary.queue, - self.m2l_preproc_mpole_expansions_level_starts()[-1], - dtype=self.preprocessed_mpole_dtype) - - def m2l_preproc_mpole_expansions_view(self, mpole_exps, level): - expn_start, expn_stop = \ + result = [] + for level in range(self.tree.nlevels): + expn_start, expn_stop = \ self.m2l_preproc_mpole_expansions_level_starts()[level:level+2] - box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] + box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] + exprs_level = cl.array.zeros(template_ary.queue, expn_stop - expn_start, + dtype=self.preprocessed_mpole_dtype) + result.append(exprs_level.reshape(box_stop - box_start, -1)) + return result - return (box_start, - mpole_exps[expn_start:expn_stop].reshape(box_stop-box_start, -1)) + def m2l_preproc_mpole_expansions_view(self, mpole_exps, level): + box_start, _ = self.tree.level_start_box_nrs[level:level+2] + return (box_start, mpole_exps[level]) m2l_work_array_view = m2l_preproc_mpole_expansions_view m2l_work_array_zeros = m2l_preproc_mpole_expansion_zeros @@ -528,6 +553,10 @@ def box_target_list_kwargs(self): # }}} + def run_opencl_fft(self, queue, input_vec, inverse, wait_for): + app = self.tree_indep.opencl_fft_app(input_vec.shape, input_vec.dtype) + return run_opencl_fft(app, queue, input_vec, inverse, wait_for) + def form_multipoles(self, level_start_source_box_nrs, source_boxes, src_weight_vecs): @@ -653,6 +682,7 @@ def eval_direct(self, target_boxes, source_box_starts, @memoize_method def multipole_to_local_precompute(self): + result = [] with cl.CommandQueue(self.tree_indep.cl_context) as queue: m2l_translation_classes_dependent_data = \ self.m2l_translation_classes_dependent_data_zeros(queue) @@ -672,6 +702,8 @@ def multipole_to_local_precompute(self): m2l_translation_classes_dependent_data_view.shape[0] if ntranslation_classes == 0: + result.append(pyopencl.array.empty_like( + m2l_translation_classes_dependent_data_view)) continue data = self.translation_classes_data @@ -689,13 +721,19 @@ def multipole_to_local_precompute(self): ntranslation_vectors=m2l_translation_vectors.shape[1], **self.kernel_extra_kwargs ) - m2l_translation_classes_dependent_data.add_event(evt) - m2l_translation_classes_dependent_data.finish() + if self.tree_indep.m2l_translation.use_fft: + _, m2l_translation_classes_dependent_data_view = \ + self.run_opencl_fft(queue, + m2l_translation_classes_dependent_data_view, + inverse=False, wait_for=[evt]) + result.append(m2l_translation_classes_dependent_data_view) - m2l_translation_classes_dependent_data = \ - m2l_translation_classes_dependent_data.with_queue(None) - return m2l_translation_classes_dependent_data + for lev in range(self.tree.nlevels): + result[lev].finish() + + result = [arr.with_queue(None) for arr in result] + return result def _add_m2l_precompute_kwargs(self, kwargs_for_m2l, lev): @@ -723,14 +761,33 @@ def multipole_to_local(self, target_boxes, src_box_starts, src_box_lists, mpole_exps): - preprocess_evts = [] queue = mpole_exps.queue local_exps = self.local_expansion_zeros(mpole_exps) if self.tree_indep.m2l_translation.use_preprocessing: preprocessed_mpole_exps = \ self.m2l_preproc_mpole_expansion_zeros(mpole_exps) - for lev in range(self.tree.nlevels): + m2l_work_array = self.m2l_work_array_zeros(local_exps) + mpole_exps_view_func = self.m2l_preproc_mpole_expansions_view + local_exps_view_func = self.m2l_work_array_view + else: + preprocessed_mpole_exps = mpole_exps + m2l_work_array = local_exps + mpole_exps_view_func = self.multipole_expansions_view + local_exps_view_func = self.local_expansions_view + + preprocess_evts = [] + translate_evts = [] + postprocess_evts = [] + + for lev in range(self.tree.nlevels): + wait_for = [] + + start, stop = level_start_target_box_nrs[lev:lev+2] + if start == stop: + continue + + if self.tree_indep.m2l_translation.use_preprocessing: order = self.level_orders[lev] preprocess_mpole_kernel = \ self.tree_indep.m2l_preprocess_mpole_kernel(order, order) @@ -738,10 +795,6 @@ def multipole_to_local(self, _, source_mpoles_view = \ self.multipole_expansions_view(mpole_exps, lev) - _, preprocessed_source_mpoles_view = \ - self.m2l_preproc_mpole_expansions_view( - preprocessed_mpole_exps, lev) - tr_classes = self.m2l_translation_class_level_start_box_nrs() if tr_classes[lev] == tr_classes[lev + 1]: # There is no M2L happening in this level @@ -750,33 +803,29 @@ def multipole_to_local(self, evt, _ = preprocess_mpole_kernel( queue, src_expansions=source_mpoles_view, - preprocessed_src_expansions=preprocessed_source_mpoles_view, + preprocessed_src_expansions=preprocessed_mpole_exps[lev], src_rscale=self.level_to_rscale(lev), + wait_for=wait_for, **self.kernel_extra_kwargs ) - preprocess_evts.append(evt) - mpole_exps = preprocessed_mpole_exps - m2l_work_array = self.m2l_work_array_zeros(local_exps) - mpole_exps_view_func = self.m2l_preproc_mpole_expansions_view - local_exps_view_func = self.m2l_work_array_view - else: - m2l_work_array = local_exps - mpole_exps_view_func = self.multipole_expansions_view - local_exps_view_func = self.local_expansions_view + wait_for.append(evt) - translate_evts = [] + if self.tree_indep.m2l_translation.use_fft: + evt_fft, preprocessed_mpole_exps[lev] = \ + self.run_opencl_fft(queue, + preprocessed_mpole_exps[lev], + inverse=False, wait_for=wait_for) + wait_for.append(evt_fft.native_event) + evt = AggregateProfilingEvent([evt, evt_fft]) - for lev in range(self.tree.nlevels): - start, stop = level_start_target_box_nrs[lev:lev+2] - if start == stop: - continue + preprocess_evts.append(evt) order = self.level_orders[lev] m2l = self.tree_indep.m2l(order, order, self.supports_translation_classes) source_level_start_ibox, source_mpoles_view = \ - mpole_exps_view_func(mpole_exps, lev) + mpole_exps_view_func(preprocessed_mpole_exps, lev) target_level_start_ibox, target_locals_view = \ local_exps_view_func(m2l_work_array, lev) @@ -801,14 +850,11 @@ def multipole_to_local(self, kwargs["m2l_translation_classes_dependent_data"].size == 0: # There is nothing to do for this level continue - evt, _ = m2l(queue, **kwargs, wait_for=preprocess_evts) - + evt, _ = m2l(queue, **kwargs, wait_for=wait_for) + wait_for.append(evt) translate_evts.append(evt) - postprocess_evts = [] - - if self.tree_indep.m2l_translation.use_preprocessing: - for lev in range(self.tree.nlevels): + if self.tree_indep.m2l_translation.use_preprocessing: order = self.level_orders[lev] postprocess_local_kernel = \ self.tree_indep.m2l_postprocess_local_kernel(order, order) @@ -825,6 +871,13 @@ def multipole_to_local(self, # There is no M2L happening in this level continue + if self.tree_indep.m2l_translation.use_fft: + evt_fft, target_locals_before_postprocessing_view = \ + self.run_opencl_fft(queue, + target_locals_before_postprocessing_view, + inverse=True, wait_for=wait_for) + wait_for.append(evt_fft.native_event) + evt, _ = postprocess_local_kernel( queue, tgt_expansions=target_locals_view, @@ -832,10 +885,14 @@ def multipole_to_local(self, target_locals_before_postprocessing_view), src_rscale=self.level_to_rscale(lev), tgt_rscale=self.level_to_rscale(lev), - wait_for=translate_evts, + wait_for=wait_for, **self.kernel_extra_kwargs, ) - postprocess_evts.append(evt) + + if self.tree_indep.m2l_translation.use_fft: + postprocess_evts.append(AggregateProfilingEvent([evt, evt_fft])) + else: + postprocess_evts.append(evt) timing_events = preprocess_evts + translate_evts + postprocess_evts diff --git a/sumpy/p2p.py b/sumpy/p2p.py index f70ecedfe..7944e5562 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -468,7 +468,6 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, "{[iknl]: 0 <= iknl < noutputs}", "{[isrc_box]: isrc_box_start <= isrc_box < isrc_box_end}", "{[idim]: 0 <= idim < dim}", - "{[istrength]: 0 <= istrength < nstrengths}", "{[isrc]: isrc_start <= isrc < isrc_end}" ] @@ -483,6 +482,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, shape=(self.strength_count, max_nsources_in_one_box)), ] domains += [ + "{[istrength]: 0 <= istrength < nstrengths}", "{[inner]: 0 <= inner < nsplit}", "{[itgt_offset_outer]: 0 <= itgt_offset_outer <= tgt_outer_limit}", "{[isrc_offset_outer]: 0 <= isrc_offset_outer <= src_outer_limit}", diff --git a/sumpy/tools.py b/sumpy/tools.py index 14152d706..4c6c58910 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -39,11 +39,13 @@ from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import numbers -from collections import defaultdict +from collections import defaultdict, namedtuple from pymbolic.mapper import WalkMapper import numpy as np import sumpy.symbolic as sym +import pyopencl as cl +import pyopencl.array as cla import loopy as lp from typing import Dict, Tuple, Any @@ -931,6 +933,96 @@ def to_complex_dtype(dtype): except KeyError: raise RuntimeError(f"Unknown dtype: {dtype}") + +ProfileGetter = namedtuple("ProfileGetter", "start, end") + + +class AggregateProfilingEvent: + """An object to hold a list of events and provides compatibility + with some of the functionality of :class:`pyopencl.Event`. + Assumes that the last event waits on all of the previous events. + """ + def __init__(self, events): + self.events = events[:] + if isinstance(events[-1], cl.Event): + self.native_event = events[-1] + else: + self.native_event = events[-1].native_event + + @property + def profile(self): + total = sum(evt.profile.end - evt.profile.start for evt in self.events) + end = self.native_event.profile.end + return ProfileGetter(start=end - total, end=end) + + def wait(self): + return self.native_event.wait() + + +class MarkerBasedProfilingEvent: + """An object to hold two marker events and provides compatibility + with some of the functionality of :class:`pyopencl.Event`. + """ + def __init__(self, *, end_event, start_event): + self.native_event = end_event + self.start_event = start_event + + @property + def profile(self): + return ProfileGetter(start=self.start_event.profile.start, + end=self.native_event.profile.end) + + def wait(self): + return self.native_event.wait() + + +def get_opencl_fft_app(queue, shape, dtype): + """Setup an object for out-of-place FFT on with given shape and dtype + on given queue. Only supports in-order queues. + """ + if queue.properties & cl.command_queue_properties.OUT_OF_ORDER_EXEC_MODE_ENABLE: + raise RuntimeError("VkFFT does not support out of order queues yet.") + + assert dtype.type in (np.float32, np.float64, np.complex64, + np.complex128) + + from pyvkfft.opencl import VkFFTApp + app = VkFFTApp(shape=shape, dtype=dtype, queue=queue, ndim=1, inplace=False) + return app + + +def run_opencl_fft(vkfft_app, queue, input_vec, inverse=False, wait_for=None): + """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` + that indicate the end and start of the operations carried out and the output + vector. + Only supports in-order queues. + """ + if wait_for is None: + wait_for = [] + + start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) + + if vkfft_app.inplace: + raise RuntimeError("inplace fft is not supported") + else: + output_vec = cla.empty_like(input_vec, queue) + + # FIXME: use the public API once https://github.com/vincefn/pyvkfft/pull/17 is in + from pyvkfft.opencl import _vkfft_opencl + if inverse: + meth = _vkfft_opencl.ifft + else: + meth = _vkfft_opencl.fft + + meth(vkfft_app.app, int(input_vec.data.int_ptr), int(output_vec.data.int_ptr), + int(queue.int_ptr)) + + end_evt = cl.enqueue_marker(queue, wait_for=[start_evt]) + output_vec.add_event(end_evt) + + return (MarkerBasedProfilingEvent(end_event=end_evt, start_event=start_evt), + output_vec) + # }}} # vim: fdm=marker diff --git a/test/test_fmm.py b/test/test_fmm.py index 3e8ebf0b9..a63b64fdc 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -409,7 +409,8 @@ def test_unified_single_and_double(ctx_factory): assert rel_err < 1e-12 -def test_sumpy_fmm_timing_data_collection(ctx_factory): +@pytest.mark.parametrize("use_fft", [True, False]) +def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft): logging.basicConfig(level=logging.INFO) ctx = ctx_factory() @@ -448,10 +449,20 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory): from functools import partial + if use_fft: + from sumpy.expansion.m2l import FFTM2LTranslationClassFactory + m2l_translation_factory = FFTM2LTranslationClassFactory() + else: + from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory + m2l_translation_factory = NonFFTM2LTranslationClassFactory() + + m2l_translation = m2l_translation_factory.get_m2l_translation_class( + knl, local_expn_class)() + tree_indep = SumpyTreeIndependentDataForWrangler( ctx, partial(mpole_expn_class, knl), - partial(local_expn_class, knl), + partial(local_expn_class, knl, m2l_translation=m2l_translation), target_kernels) wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, From 1a4bc02ba81ea22ddb6f4a7a7063546b9fdfdb71 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 1 Aug 2022 13:58:12 -0500 Subject: [PATCH 013/335] Fix code folding after f-string use in P2P --- sumpy/p2p.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 7944e5562..83506a377 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -554,7 +554,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, + [f""" if cond_itgt result[{iknl}, itgt] = knl_{iknl}_scaling * acc[{iknl}] \ - {{id_prefix=write_csr,dep=update_acc_{iknl}}} + {{id_prefix=write_csr,dep=update_acc_{iknl} }} end """ for iknl in range(len(self.target_kernels))] + [""" @@ -600,7 +600,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, """] + [f""" result[{iknl}, itgt] = knl_{iknl}_scaling * acc[{iknl}] \ - {{id_prefix=write_csr,dep=update_acc_{iknl}}} + {{id_prefix=write_csr,dep=update_acc_{iknl} }} """ for iknl in range(len(self.target_kernels))] + [""" end From 4ace8ea35283db5f9ba8f038ba12f763086e44e2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 2 Aug 2022 08:36:36 -0500 Subject: [PATCH 014/335] Fix order in events for AggregateProfilingEvent --- sumpy/fmm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 95afd2cc1..348c55428 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -890,7 +890,7 @@ def multipole_to_local(self, ) if self.tree_indep.m2l_translation.use_fft: - postprocess_evts.append(AggregateProfilingEvent([evt, evt_fft])) + postprocess_evts.append(AggregateProfilingEvent([evt_fft, evt])) else: postprocess_evts.append(evt) From 3d2a57aadc55c57c457fdb26ed1e28410ee2f54c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 9 Aug 2022 18:51:16 -0500 Subject: [PATCH 015/335] Add a fallback for FFT when VkFFT is not found or broken (#130) * use loopy fft * fix inverse * Implement broadcasting FFT * use enum for fft backend * Add gh-129 link * unit test for loopy_fft * Unit test for loopy_fft and fix warnings * don't use vkfft only if x86 mac * Add missing import * Fix platform.machine() --- sumpy/fmm.py | 13 ++- sumpy/tools.py | 281 +++++++++++++++++++++++++++++++++++++++------ test/test_fmm.py | 25 +++- test/test_tools.py | 26 ++++- 4 files changed, 301 insertions(+), 44 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 348c55428..30ca38384 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -42,7 +42,7 @@ M2LGenerateTranslationClassesDependentData, M2LPreprocessMultipole, M2LPostprocessLocal) from sumpy.tools import (to_complex_dtype, AggregateProfilingEvent, - run_opencl_fft, get_opencl_fft_app) + run_opencl_fft, get_opencl_fft_app, get_native_event) from typing import TypeVar, List, Union @@ -180,9 +180,9 @@ def p2p(self): strength_usage=self.strength_usage) @memoize_method - def opencl_fft_app(self, shape, dtype): + def opencl_fft_app(self, shape, dtype, inverse): with cl.CommandQueue(self.cl_context) as queue: - return get_opencl_fft_app(queue, shape, dtype) + return get_opencl_fft_app(queue, shape, dtype, inverse) # }}} @@ -554,7 +554,8 @@ def box_target_list_kwargs(self): # }}} def run_opencl_fft(self, queue, input_vec, inverse, wait_for): - app = self.tree_indep.opencl_fft_app(input_vec.shape, input_vec.dtype) + app = self.tree_indep.opencl_fft_app(input_vec.shape, input_vec.dtype, + inverse) return run_opencl_fft(app, queue, input_vec, inverse, wait_for) def form_multipoles(self, @@ -815,7 +816,7 @@ def multipole_to_local(self, self.run_opencl_fft(queue, preprocessed_mpole_exps[lev], inverse=False, wait_for=wait_for) - wait_for.append(evt_fft.native_event) + wait_for.append(get_native_event(evt_fft)) evt = AggregateProfilingEvent([evt, evt_fft]) preprocess_evts.append(evt) @@ -876,7 +877,7 @@ def multipole_to_local(self, self.run_opencl_fft(queue, target_locals_before_postprocessing_view, inverse=True, wait_for=wait_for) - wait_for.append(evt_fft.native_event) + wait_for.append(get_native_event(evt_fft)) evt, _ = postprocess_local_kernel( queue, diff --git a/sumpy/tools.py b/sumpy/tools.py index 4c6c58910..d3b61b8d1 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -39,8 +39,14 @@ from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import numbers +import warnings +import os +import sys +import enum +import platform from collections import defaultdict, namedtuple from pymbolic.mapper import WalkMapper +import pymbolic import numpy as np import sumpy.symbolic as sym @@ -937,6 +943,10 @@ def to_complex_dtype(dtype): ProfileGetter = namedtuple("ProfileGetter", "start, end") +def get_native_event(evt): + return evt if isinstance(evt, cl.Event) else evt.native_event + + class AggregateProfilingEvent: """An object to hold a list of events and provides compatibility with some of the functionality of :class:`pyopencl.Event`. @@ -944,10 +954,7 @@ class AggregateProfilingEvent: """ def __init__(self, events): self.events = events[:] - if isinstance(events[-1], cl.Event): - self.native_event = events[-1] - else: - self.native_event = events[-1].native_event + self.native_event = get_native_event(events[-1]) @property def profile(self): @@ -976,52 +983,262 @@ def wait(self): return self.native_event.wait() -def get_opencl_fft_app(queue, shape, dtype): - """Setup an object for out-of-place FFT on with given shape and dtype - on given queue. Only supports in-order queues. - """ +def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, + name=None): + from pymbolic.algorithm import find_factors + from math import pi + + sign = 1 if not inverse else -1 + n = shape[-1] + + m = n + factors = [] + while m != 1: + N1, m = find_factors(m) # noqa: N806 + factors.append(N1) + + nfft = n + + broadcast_dims = tuple(pymbolic.var(f"j{d}") for d in range(len(shape) - 1)) + + domains = [ + "{[i]: 0<=i FFTBackend: + env_val = os.environ.get("SUMPY_FFT_BACKEND", None) + if env_val: + if env_val not in ["loopy", "pyvkfft"]: + raise ValueError("Expected 'loopy' or 'pyvkfft' for SUMPY_FFT_BACKEND. " + f"Found {env_val}.") + return FFTBackend[env_val] + + try: + import pyvkfft.opencl # noqa: F401 + except ImportError: + warnings.warn("VkFFT not found. FFT runs will be slower.") + return FFTBackend.loopy + if queue.properties & cl.command_queue_properties.OUT_OF_ORDER_EXEC_MODE_ENABLE: - raise RuntimeError("VkFFT does not support out of order queues yet.") + warnings.warn("VkFFT does not support out of order queues yet. " + "Falling back to slower implementation.") + return FFTBackend.loopy + + if (sys.platform == "darwin" + and platform.machine() == "x86_64" + and queue.context.devices[0].platform.name + == "Portable Computing Language"): + warnings.warn("Pocl miscompiles some VkFFT kernels. " + "See https://github.com/inducer/sumpy/issues/129. " + "Falling back to slower implementation.") + return FFTBackend.loopy + + return FFTBackend.pyvkfft + +def get_opencl_fft_app(queue, shape, dtype, inverse): + """Setup an object for out-of-place FFT on with given shape and dtype + on given queue. + """ assert dtype.type in (np.float32, np.float64, np.complex64, np.complex128) - from pyvkfft.opencl import VkFFTApp - app = VkFFTApp(shape=shape, dtype=dtype, queue=queue, ndim=1, inplace=False) - return app + backend = _get_fft_backend(queue) + + if backend == FFTBackend.loopy: + return loopy_fft(shape, inverse=inverse, complex_dtype=dtype.type), backend + elif backend == FFTBackend.pyvkfft: + from pyvkfft.opencl import VkFFTApp + app = VkFFTApp(shape=shape, dtype=dtype, queue=queue, ndim=1, inplace=False) + return app, backend + else: + raise RuntimeError(f"Unsupported FFT backend {backend}") -def run_opencl_fft(vkfft_app, queue, input_vec, inverse=False, wait_for=None): +def run_opencl_fft(fft_app, queue, input_vec, inverse=False, wait_for=None): """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. Only supports in-order queues. """ - if wait_for is None: - wait_for = [] + app, backend = fft_app - start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) + if backend == FFTBackend.loopy: + evt, (output_vec,) = app(queue, y=input_vec, wait_for=wait_for) + return (evt, output_vec) + elif backend == FFTBackend.pyvkfft: + if wait_for is None: + wait_for = [] - if vkfft_app.inplace: - raise RuntimeError("inplace fft is not supported") - else: - output_vec = cla.empty_like(input_vec, queue) + start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) - # FIXME: use the public API once https://github.com/vincefn/pyvkfft/pull/17 is in - from pyvkfft.opencl import _vkfft_opencl - if inverse: - meth = _vkfft_opencl.ifft - else: - meth = _vkfft_opencl.fft + if app.inplace: + raise RuntimeError("inplace fft is not supported") + else: + output_vec = cla.empty_like(input_vec, queue) - meth(vkfft_app.app, int(input_vec.data.int_ptr), int(output_vec.data.int_ptr), - int(queue.int_ptr)) + # FIXME: use the public API once + # https://github.com/vincefn/pyvkfft/pull/17 is in + from pyvkfft.opencl import _vkfft_opencl + if inverse: + meth = _vkfft_opencl.ifft + else: + meth = _vkfft_opencl.fft + + meth(app.app, int(input_vec.data.int_ptr), + int(output_vec.data.int_ptr), int(queue.int_ptr)) - end_evt = cl.enqueue_marker(queue, wait_for=[start_evt]) - output_vec.add_event(end_evt) + end_evt = cl.enqueue_marker(queue, wait_for=[start_evt]) + output_vec.add_event(end_evt) - return (MarkerBasedProfilingEvent(end_event=end_evt, start_event=start_evt), - output_vec) + return (MarkerBasedProfilingEvent(end_event=end_evt, start_event=start_evt), + output_vec) + else: + raise RuntimeError(f"Unsupported FFT backend {backend}") # }}} diff --git a/test/test_fmm.py b/test/test_fmm.py index a63b64fdc..58ec8b3ad 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -22,6 +22,8 @@ import sys +import os +from unittest.mock import patch import numpy as np import numpy.linalg as la import pyopencl as cl @@ -55,8 +57,9 @@ faulthandler.enable() -@pytest.mark.parametrize("use_translation_classes, use_fft", - [(False, False), (True, False), (True, True)]) +@pytest.mark.parametrize("use_translation_classes, use_fft, fft_backend", + [(False, False, None), (True, False, None), (True, True, "loopy"), + (True, True, "pyvkfft")]) @pytest.mark.parametrize( ("knl", "local_expn_class", "mpole_expn_class", "order_varies_with_level"), [ @@ -82,7 +85,8 @@ False), ]) def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, - order_varies_with_level, use_translation_classes, use_fft): + order_varies_with_level, use_translation_classes, use_fft, + fft_backend): logging.basicConfig(level=logging.INFO) if local_expn_class == VolumeTaylorLocalExpansion and use_fft: @@ -91,6 +95,21 @@ def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, if local_expn_class in [H2DLocalExpansion, Y2DLocalExpansion] and use_fft: pytest.skip("Fourier/Bessel based expansions with FFT is not supported yet.") + if use_fft: + with patch.dict(os.environ, {"SUMPY_FFT_BACKEND": fft_backend}): + _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, + order_varies_with_level, use_translation_classes, use_fft, + fft_backend) + else: + _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, + order_varies_with_level, use_translation_classes, use_fft, + fft_backend) + + +def _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, + order_varies_with_level, use_translation_classes, use_fft, + fft_backend): + ctx = ctx_factory() queue = cl.CommandQueue(ctx) diff --git a/test/test_tools.py b/test/test_tools.py index a3d2a9f1a..08a90689a 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -25,11 +25,18 @@ import sumpy.symbolic as sym from sumpy.tools import (fft_toeplitz_upper_triangular, - matvec_toeplitz_upper_triangular) + matvec_toeplitz_upper_triangular, loopy_fft, fft) import numpy as np +import pyopencl as cl +import pyopencl.array as cla +from pyopencl.tools import ( # noqa + pytest_generate_tests_for_pyopencl as pytest_generate_tests) -def test_fft(): +import pytest + + +def test_matvec_fft(): k = 5 v = np.random.rand(k) x = np.random.rand(k) @@ -41,7 +48,7 @@ def test_fft(): assert abs(fft[i] - matvec[i]) < 1e-14 -def test_fft_small_floats(): +def test_matvec_fft_small_floats(): k = 5 v = sym.make_sym_vector("v", k) x = sym.make_sym_vector("x", k) @@ -52,3 +59,16 @@ def test_fft_small_floats(): if f == 0: continue assert abs(f) > 1e-10 + + +@pytest.mark.parametrize("size", [1, 2, 7, 10, 30, 210]) +def test_fft(ctx_factory, size): + ctx = ctx_factory() + queue = cl.CommandQueue(ctx) + inp = np.arange(size, dtype=np.complex64) + inp_dev = cla.to_device(queue, inp) + out = fft(inp) + + fft_func = loopy_fft(inp.shape, inverse=False, complex_dtype=inp.dtype.type) + evt, (out_dev,) = fft_func(queue, y=inp_dev) + assert np.allclose(out_dev.get(), out) From 544787caa820875143dcfdb201614d3f66504d9e Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Aug 2022 13:19:08 -0500 Subject: [PATCH 016/335] Disable global barrier check in translation-classes-dep data generation --- sumpy/e2e.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 5bd0ab2b3..253f85592 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -594,7 +594,11 @@ def get_kernel(self, result_dtype): loopy_knl = lp.merge([loopy_knl, translation_classes_data_knl]) loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_data") loopy_knl = lp.set_options(loopy_knl, - enforce_variable_access_ordered="no_check") + enforce_variable_access_ordered="no_check", + # FIXME: Without this, Loopy spends an eternity checking + # scattered writes to global variables to see whether barriers + # need to be inserted. + disable_global_barriers=True) return loopy_knl From 7c277e6a1b6a26f1a29ad415636afd0a122accae Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 15 Aug 2022 17:16:05 -0500 Subject: [PATCH 017/335] loop-y kernel for m2l preprocess --- sumpy/expansion/m2l.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 796e951c8..261573a7b 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -447,31 +447,35 @@ def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, output_coeffs = pymbolic.var("output_coeffs") input_coeffs = pymbolic.var("input_coeffs") - ioutput_coeff = pymbolic.var("ioutput_coeff") + srcidx_sym = pymbolic.var("srcidx") + output_icoeff = pymbolic.var("output_icoeff") + input_icoeff = pymbolic.var("input_icoeff") domains = [ - "{[ioutput_coeff]: 0<=ioutput_coeff=", 0), + input_coeffs[input_icoeff], + 0, + ), + depends_on=frozenset(["input_icoeff"]), ) ] - prev_insn = "init" + + srcidx = np.full(ncoeff_preprocessed, -1, dtype=np.int32) for icoeff_src, term in enumerate( src_expansion.get_coefficient_identifiers()): new_icoeff_src = circulant_matrix_ident_to_index[term] - insns += [ - lp.Assignment( - assignee=output_coeffs[new_icoeff_src], - expression=input_coeffs[icoeff_src], - id=f"coeff_insn_{icoeff_src}", - depends_on=frozenset([prev_insn]) - ), - ] - prev_insn = f"coeff_insn_{icoeff_src}" + srcidx[new_icoeff_src] = icoeff_src return lp.make_function(domains, insns, kernel_data=[ @@ -479,6 +483,10 @@ def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, lp.GlobalArg("output_coeffs", None, shape=ncoeff_preprocessed, is_input=False, is_output=True), lp.GlobalArg("input_coeffs", None, shape=ncoeff_src), + lp.TemporaryVariable(input_icoeff.name, dtype=np.int32), + lp.TemporaryVariable( + srcidx_sym.name, initializer=srcidx, + address_space=lp.AddressSpace.GLOBAL, read_only=True), ...], name="m2l_preprocess_inner", lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, From b503385609a3deed2050114199fd49d59510d9a9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 20 Aug 2022 15:36:22 -0500 Subject: [PATCH 018/335] loop-y kernel for m2l postprocess local --- sumpy/expansion/m2l.py | 52 +++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 261573a7b..e7c4793f3 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -558,9 +558,6 @@ def postprocess_local_loopy_knl(self, tgt_expansion, src_expansion, ), ] - output_coeffs = pymbolic.var("output_coeffs") - input_coeffs = pymbolic.var("input_coeffs") - if self.use_fft and result_dtype in \ (np.float64, np.float32): result_func = pymbolic.var("real") @@ -568,25 +565,42 @@ def postprocess_local_loopy_knl(self, tgt_expansion, src_expansion, def result_func(x): return x - for new_icoeff_tgt, term in enumerate( + output_coeffs = pymbolic.var("output_coeffs") + input_coeffs = pymbolic.var("input_coeffs") + src_idx_sym = pymbolic.var("src_idx") + rscale_idx_arr_sym = pymbolic.var("rscale_idx_arr") + output_icoeff_sym = pymbolic.var("output_icoeff") + + src_idx = np.full(ncoeff_tgt, -1, dtype=np.int32) + for output_icoeff, term in enumerate( tgt_expansion.get_coefficient_identifiers()): if self.use_fft: # since we reversed the M2L matrix, we reverse the result # to get the correct result n = len(circulant_matrix_mis) - icoeff_tgt = n - 1 - circulant_matrix_ident_to_index[term] + input_icoeff = n - 1 - circulant_matrix_ident_to_index[term] else: - icoeff_tgt = circulant_matrix_ident_to_index[term] - - insns += [ - lp.Assignment( - assignee=output_coeffs[new_icoeff_tgt], - expression=result_func( - input_coeffs[icoeff_tgt]) * rscale_arr[sum(term)], - id=f"coeff_insn_{new_icoeff_tgt}", - depends_on="rscale_arr", - ) - ] + input_icoeff = circulant_matrix_ident_to_index[term] + src_idx[output_icoeff] = input_icoeff + + rscale_idx_arr = np.full(ncoeff_tgt, -1, dtype=np.int32) + for output_icoeff, term in enumerate( + tgt_expansion.get_coefficient_identifiers()): + rscale_idx_arr[output_icoeff] = sum(term) + + insns += [ + lp.Assignment( + assignee=output_coeffs[output_icoeff_sym], + expression=(result_func(input_coeffs[src_idx_sym[output_icoeff_sym]]) + * rscale_arr[rscale_idx_arr_sym[output_icoeff_sym]]), + id="coeff_insn", + depends_on=frozenset(["rscale_arr"]), + ) + ] + + domains += [ + "{[output_icoeff]: 0<=output_icoeff Date: Sat, 20 Aug 2022 20:01:30 +0300 Subject: [PATCH 019/335] add array context skeleton --- requirements.txt | 1 + setup.py | 1 + sumpy/array_context.py | 77 +++++++++++++ sumpy/expansion/multipole.py | 2 +- sumpy/qbx.py | 2 +- test/test_codegen.py | 15 ++- test/test_cse.py | 213 +++++++++++++++++++++++++---------- 7 files changed, 245 insertions(+), 66 deletions(-) create mode 100644 sumpy/array_context.py diff --git a/requirements.txt b/requirements.txt index a26c33e3b..ff9ca871b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,4 +8,5 @@ git+https://github.com/inducer/islpy.git#egg=islpy git+https://github.com/inducer/pyopencl.git#egg=pyopencl git+https://github.com/inducer/boxtree.git#egg=boxtree git+https://github.com/inducer/loopy.git#egg=loopy +git+https://github.com/inducer/arraycontext.git#egg=arraycontext git+https://github.com/inducer/pyfmmlib.git#egg=pyfmmlib diff --git a/setup.py b/setup.py index f9f0be9be..19ca094fc 100644 --- a/setup.py +++ b/setup.py @@ -101,6 +101,7 @@ def write_git_revision(package_name): "pytools>=2021.1.1", "loopy>=2021.1", "boxtree>=2018.1", + "arraycontext", "pytest>=2.3", "pyrsistent>=0.16.0", "dataclasses>=0.7;python_version<='3.6'", diff --git a/sumpy/array_context.py b/sumpy/array_context.py new file mode 100644 index 000000000..760f7d5d8 --- /dev/null +++ b/sumpy/array_context.py @@ -0,0 +1,77 @@ +__copyright__ = "Copyright (C) 2022 Alexandru Fikl" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from boxtree.array_context import PyOpenCLArrayContext as PyOpenCLArrayContextBase +from arraycontext.pytest import ( + _PytestPyOpenCLArrayContextFactoryWithClass, + register_pytest_array_context_factory) + +__doc__ = """ +.. autoclass:: PyOpenCLArrayContext +""" + + +# {{{ PyOpenCLArrayContext + +class PyOpenCLArrayContext(PyOpenCLArrayContextBase): + def transform_loopy_program(self, t_unit): + default_ep = t_unit.default_entrypoint + options = default_ep.options + + if not (options.return_dict and options.no_numpy): + raise ValueError("Loopy kernel passed to call_loopy must " + "have return_dict and no_numpy options set. " + "Did you use arraycontext.make_loopy_program " + "to create this kernel?") + + return super().transform_loopy_program(t_unit) + +# }}} + + +# {{{ pytest + +def _acf(): + import pyopencl as cl + ctx = cl.create_some_context() + queue = cl.CommandQueue(ctx) + + return PyOpenCLArrayContext(queue, force_device_scalars=True) + + +class PytestPyOpenCLArrayContextFactory( + _PytestPyOpenCLArrayContextFactoryWithClass): + actx_class = PyOpenCLArrayContext + + def __call__(self): + # NOTE: prevent any cache explosions during testing! + from sympy.core.cache import clear_cache + clear_cache() + + return super().__call__() + + +register_pytest_array_context_factory( + "sumpy.pyopencl", + PytestPyOpenCLArrayContextFactory) + +# }}} diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index fd5a3b1d1..1924e6c7f 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -203,7 +203,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # └───⬏ ↑ # └─────┘ # - # For the second hyperplane, data is propogated rightwards first + # For the second hyperplane, data is propagated rightwards first # and then upwards second which is opposite to that of the first # hyperplane. # diff --git a/sumpy/qbx.py b/sumpy/qbx.py index b479e1db3..de2598881 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -104,7 +104,7 @@ def _evaluate(self, sac, avec, bvec, rscale, expansion_nr, coefficients): # In LineTaylorLocalExpansion.evaluate, we can't run # postprocess_at_target because the coefficients are assigned # symbols and postprocess with a derivative will make them zero. - # Instead run postprocess here before the coeffients are assigned. + # Instead run postprocess here before the coefficients are assigned. coefficients = [tgt_knl.postprocess_at_target(coeff, bvec) for coeff in coefficients] diff --git a/test/test_codegen.py b/test/test_codegen.py index 815b92dd9..9c092e58e 100644 --- a/test/test_codegen.py +++ b/test/test_codegen.py @@ -20,13 +20,15 @@ THE SOFTWARE. """ - +import pytest import sys import logging logger = logging.getLogger(__name__) +# {{{ test_symbolic_assignment_name_uniqueness + def test_symbolic_assignment_name_uniqueness(): # https://gitlab.tiker.net/inducer/sumpy/issues/13 from sumpy.assignment_collection import SymbolicAssignmentCollection @@ -43,6 +45,10 @@ def test_symbolic_assignment_name_uniqueness(): assert len(sac.assignments) == 3 +# }}} + + +# {{{ test_line_taylor_coeff_growth def test_line_taylor_coeff_growth(): # Regression test for LineTaylorLocalExpansion. @@ -70,15 +76,16 @@ def test_line_taylor_coeff_growth(): max_order = 2 assert np.polyfit(np.log(indices), np.log(counts), deg=1)[0] < max_order +# }}} + # You can test individual routines by typing -# $ python test_fmm.py "test_sumpy_fmm(cl.create_some_context)" +# $ python test_codegen.py 'test_line_taylor_coeff_growth()' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker diff --git a/test/test_cse.py b/test/test_cse.py index ba9986bed..68352c905 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -67,26 +67,22 @@ import pytest import sys -from sumpy.symbolic import ( - Add, Pow, exp, sqrt, symbols, sympify, cos, sin, Function, USE_SYMENGINE) +import sumpy.symbolic as sym +from sumpy.cse import cse, preprocess_for_cse, postprocess_for_cse -if not USE_SYMENGINE: +if not sym.USE_SYMENGINE: from sympy.simplify.cse_opts import sub_pre, sub_post from sympy.functions.special.hyper import meijerg from sympy.simplify import cse_opts -from sumpy.cse import ( - cse, preprocess_for_cse, postprocess_for_cse) +import logging +logger = logging.getLogger(__name__) - -w, x, y, z = symbols("w,x,y,z") -x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12 = symbols("x:13") +w, x, y, z = sym.symbols("w,x,y,z") +x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12 = sym.symbols("x:13") sympyonly = ( - pytest.mark.skipif(USE_SYMENGINE, reason="uses a sympy-only feature")) - - -# Dummy "optimization" functions for testing. + pytest.mark.skipif(sym.USE_SYMENGINE, reason="uses a sympy-only feature")) def opt1(expr): @@ -97,6 +93,8 @@ def opt2(expr): return expr*z +# {{{ test_preprocess_for_cse + def test_preprocess_for_cse(): assert preprocess_for_cse(x, [(opt1, None)]) == x + y assert preprocess_for_cse(x, [(None, opt1)]) == x @@ -105,6 +103,10 @@ def test_preprocess_for_cse(): assert preprocess_for_cse( x, [(opt1, None), (opt2, None)]) == (x + y)*z +# }}} + + +# {{{ test_postprocess_for_cse def test_postprocess_for_cse(): assert postprocess_for_cse(x, [(opt1, None)]) == x @@ -115,19 +117,27 @@ def test_postprocess_for_cse(): assert postprocess_for_cse( x, [(None, opt1), (None, opt2)]) == x*z + y +# }}} + + +# {{{ test_cse_single def test_cse_single(): # Simple substitution. - e = Add(Pow(x + y, 2), sqrt(x + y)) + e = sym.Add(sym.Pow(x + y, 2), sym.sqrt(x + y)) substs, reduced = cse([e]) assert substs == [(x0, x + y)] - assert reduced == [sqrt(x0) + x0**2] + assert reduced == [sym.sqrt(x0) + x0**2] + +# }}} + +# {{{ @sympyonly def test_cse_not_possible(): # No substitution possible. - e = Add(x, y) + e = sym.Add(x, y) substs, reduced = cse([e]) assert substs == [] assert reduced == [x + y] @@ -136,34 +146,46 @@ def test_cse_not_possible(): + meijerg((1, 3), (y, 4), (5,), [], x)) assert cse(eq) == ([], [eq]) +# }}} + + +# {{{ test_nested_substitution def test_nested_substitution(): # Substitution within a substitution. - e = Add(Pow(w*x + y, 2), sqrt(w*x + y)) + e = sym.Add(sym.Pow(w*x + y, 2), sym.sqrt(w*x + y)) substs, reduced = cse([e]) assert substs == [(x0, w*x + y)] - assert reduced == [sqrt(x0) + x0**2] + assert reduced == [sym.sqrt(x0) + x0**2] +# }}} + + +# {{{ test_subtraction_opt @sympyonly def test_subtraction_opt(): # Make sure subtraction is optimized. - e = (x - y)*(z - y) + exp((x - y)*(z - y)) + e = (x - y)*(z - y) + sym.exp((x - y)*(z - y)) substs, reduced = cse( [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) assert substs == [(x0, (x - y)*(y - z))] - assert reduced == [-x0 + exp(-x0)] - e = -(x - y)*(z - y) + exp(-(x - y)*(z - y)) + assert reduced == [-x0 + sym.exp(-x0)] + e = -(x - y)*(z - y) + sym.exp(-(x - y)*(z - y)) substs, reduced = cse( [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) assert substs == [(x0, (x - y)*(y - z))] - assert reduced == [x0 + exp(x0)] + assert reduced == [x0 + sym.exp(x0)] # issue 4077 n = -1 + 1/x e = n/x/(-n)**2 - 1/n/x assert cse(e, optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) == \ ([], [0]) +# }}} + + +# {{{ test_multiple_expressions def test_multiple_expressions(): e1 = (x + y)*z @@ -181,7 +203,7 @@ def test_multiple_expressions(): rsubsts, _ = cse(reversed(l_)) assert substs == rsubsts assert reduced == [x1, x1 + z, x0] - f = Function("f") + f = sym.Function("f") l_ = [f(x - z, y - z), x - z, y - z] substs, reduced = cse(l_) rsubsts, _ = cse(reversed(l_)) @@ -195,31 +217,46 @@ def test_multiple_expressions(): assert cse([x*y, z + x*y, x*y*z + 3]) == \ ([(x0, x*y)], [x0, z + x0, 3 + x0*z]) +# }}} + + +# {{{ test_issue_4203 def test_issue_4203(): - assert cse(sin(x**x)/x**x) == ([(x0, x**x)], [sin(x0)/x0]) + assert cse(sym.sin(x**x)/x**x) == ([(x0, x**x)], [sym.sin(x0)/x0]) + +# }}} +# {{{ test_dont_cse_subs + def test_dont_cse_subs(): - f = Function("f") - g = Function("g") + f = sym.Function("f") + g = sym.Function("g") name_val, (expr,) = cse(f(x+y).diff(x) + g(x+y).diff(x)) assert name_val == [] +# }}} + + +# {{{ test_dont_cse_derivative def test_dont_cse_derivative(): - from sumpy.symbolic import Derivative - f = Function("f") + f = sym.Function("f") - deriv = Derivative(f(x+y), x) + deriv = sym.Derivative(f(x+y), x) name_val, (expr,) = cse(x + y + deriv) assert name_val == [] assert expr == x + y + deriv +# }}} + + +# {{{ test_pow_invpow def test_pow_invpow(): assert cse(1/x**2 + x**2) == \ @@ -228,39 +265,64 @@ def test_pow_invpow(): ([(x0, x**2), (x1, 1/x0)], [x0 + x1*(x1 + 1)]) assert cse(1/x**2 + (1 + 1/x**2)*x**2) == \ ([(x0, x**2), (x1, 1/x0)], [x0*(x1 + 1) + x1]) - assert cse(cos(1/x**2) + sin(1/x**2)) == \ - ([(x0, x**(-2))], [sin(x0) + cos(x0)]) - assert cse(cos(x**2) + sin(x**2)) == \ - ([(x0, x**2)], [sin(x0) + cos(x0)]) + assert cse(sym.cos(1/x**2) + sym.sin(1/x**2)) == \ + ([(x0, x**(-2))], [sym.sin(x0) + sym.cos(x0)]) + assert cse(sym.cos(x**2) + sym.sin(x**2)) == \ + ([(x0, x**2)], [sym.sin(x0) + sym.cos(x0)]) assert cse(y/(2 + x**2) + z/x**2/y) == \ ([(x0, x**2)], [y/(x0 + 2) + z/(x0*y)]) - assert cse(exp(x**2) + x**2*cos(1/x**2)) == \ - ([(x0, x**2)], [x0*cos(1/x0) + exp(x0)]) + assert cse(sym.exp(x**2) + x**2*sym.cos(1/x**2)) == \ + ([(x0, x**2)], [x0*sym.cos(1/x0) + sym.exp(x0)]) assert cse((1 + 1/x**2)/x**2) == \ ([(x0, x**(-2))], [x0*(x0 + 1)]) assert cse(x**(2*y) + x**(-2*y)) == \ ([(x0, x**(2*y))], [x0 + 1/x0]) +# }}} + + +# {{{ test_issue_4499 @sympyonly def test_issue_4499(): # previously, this gave 16 constants from sympy.abc import a, b from sympy import Tuple, S - B = Function("B") # noqa - G = Function("G") # noqa - t = Tuple( - *(a, a + S(1)/2, 2*a, b, 2*a - b + 1, (sqrt(z)/2)**(-2*a + 1)*B(2*a - - b, sqrt(z))*B(b - 1, sqrt(z))*G(b)*G(2*a - b + 1), # noqa - sqrt(z)*(sqrt(z)/2)**(-2*a + 1)*B(b, sqrt(z))*B(2*a - b, # noqa - sqrt(z))*G(b)*G(2*a - b + 1), sqrt(z)*(sqrt(z)/2)**(-2*a + 1)*B(b - 1, - sqrt(z))*B(2*a - b + 1, sqrt(z))*G(b)*G(2*a - b + 1), - (sqrt(z)/2)**(-2*a + 1)*B(b, sqrt(z))*B(2*a - b + 1, # noqa - sqrt(z))*G(b)*G(2*a - b + 1), 1, 0, S(1)/2, z/2, -b + 1, -2*a + b, # noqa - -2*a)) # noqa + + B = sym.Function("B") # noqa: N806 + G = sym.Function("G") # noqa: N806 + t = Tuple(*( + a, + a + S(1)/2, + 2*a, + b, + 2*a - b + 1, + (sym.sqrt(z)/2)**(-2*a + 1) + * B(2*a-b, sym.sqrt(z)) + * B(b - 1, sym.sqrt(z))*G(b)*G(2*a - b + 1), + sym.sqrt(z)*(sym.sqrt(z)/2)**(-2*a + 1) + * B(b, sym.sqrt(z)) + * B(2*a - b, sym.sqrt(z))*G(b)*G(2*a - b + 1), + sym.sqrt(z)*(sym.sqrt(z)/2)**(-2*a + 1) + * B(b - 1, sym.sqrt(z)) + * B(2*a - b + 1, sym.sqrt(z))*G(b)*G(2*a - b + 1), + (sym.sqrt(z)/2)**(-2*a + 1) + * B(b, sym.sqrt(z)) + * B(2*a - b + 1, sym.sqrt(z))*G(b)*G(2*a - b + 1), + 1, + 0, + S(1)/2, + z/2, + -b + 1, + -2*a + b, + -2*a)) c = cse(t) assert len(c[0]) == 11 +# }}} + + +# {{{ test_issue_6169 @sympyonly def test_issue_6169(): @@ -271,14 +333,17 @@ def test_issue_6169(): # mechanism assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y +# }}} + + +# {{{ test_cse_Indexed @sympyonly -def test_cse_Indexed(): # noqa +def test_cse_indexed(): from sympy import IndexedBase, Idx len_y = 5 y = IndexedBase("y", shape=(len_y,)) x = IndexedBase("x", shape=(len_y,)) - Dy = IndexedBase("Dy", shape=(len_y-1,)) # noqa i = Idx("i", len_y-1) expr1 = (y[i+1]-y[i])/(x[i+1]-x[i]) @@ -286,9 +351,13 @@ def test_cse_Indexed(): # noqa replacements, reduced_exprs = cse([expr1, expr2]) assert len(replacements) > 0 +# }}} + + +# {{{ test_Piecewise @sympyonly -def test_Piecewise(): # noqa +def test_piecewise(): from sympy import Piecewise, Eq f = Piecewise((-z + x*y, Eq(y, 0)), (-z - x*y, True)) ans = cse(f) @@ -296,41 +365,57 @@ def test_Piecewise(): # noqa [Piecewise((x0+x1, Eq(y, 0)), (x0 - x1, True))]) assert ans == actual_ans +# }}} + + +# {{{ test_name_conflict def test_name_conflict(): z1 = x0 + y z2 = x2 + x3 - l_ = [cos(z1) + z1, cos(z2) + z2, x0 + x2] + l_ = [sym.cos(z1) + z1, sym.cos(z2) + z2, x0 + x2] substs, reduced = cse(l_) assert [e.subs(dict(substs)) for e in reduced] == l_ +# }}} + + +# {{{ test_name_conflict_cust_symbols def test_name_conflict_cust_symbols(): z1 = x0 + y z2 = x2 + x3 - l_ = [cos(z1) + z1, cos(z2) + z2, x0 + x2] - substs, reduced = cse(l_, symbols("x:10")) + l_ = [sym.cos(z1) + z1, sym.cos(z2) + z2, x0 + x2] + substs, reduced = cse(l_, sym.symbols("x:10")) assert [e.subs(dict(substs)) for e in reduced] == l_ +# }}} + + +# {{{ test_symbols_exhausted_error def test_symbols_exhausted_error(): - l_ = cos(x+y)+x+y+cos(w+y)+sin(w+y) - sym = [x, y, z] + l_ = sym.cos(x+y)+x+y+sym.cos(w+y)+sym.sin(w+y) + s = [x, y, z] with pytest.raises(ValueError): - print(cse(l_, symbols=sym)) + logger.info("cse:\n%s", cse(l_, symbols=s)) + +# }}} + +# {{{ test_issue_7840 @sympyonly def test_issue_7840(): # daveknippers' example - C393 = sympify( # noqa + C393 = sym.sympify( # noqa: N806 "Piecewise((C391 - 1.65, C390 < 0.5), (Piecewise((C391 - 1.65, \ C391 > 2.35), (C392, True)), True))" ) - C391 = sympify( # noqa + C391 = sym.sympify( # noqa: N806 "Piecewise((2.05*C390**(-1.03), C390 < 0.5), (2.5*C390**(-0.625), True))" ) - C393 = C393.subs("C391",C391) # noqa + C393 = C393.subs("C391", C391) # noqa: N806 # simple substitution sub = {} sub["C390"] = 0.703451854 @@ -345,7 +430,7 @@ def test_issue_7840(): assert ss_answer == cse_answer # GitRay's example - expr = sympify( + expr = sym.sympify( "Piecewise((Symbol('ON'), Equality(Symbol('mode'), Symbol('ON'))), \ (Piecewise((Piecewise((Symbol('OFF'), StrictLessThan(Symbol('x'), \ Symbol('threshold'))), (Symbol('ON'), S.true)), Equality(Symbol('mode'), \ @@ -357,6 +442,10 @@ def test_issue_7840(): # there should not be any replacements assert len(substitutions) < 1 +# }}} + + +# {{{ test_recursive_matching def test_recursive_matching(): assert cse([x+y, 2+x+y, x+y+z, 3+x+y+z]) == \ @@ -372,12 +461,16 @@ def test_recursive_matching(): assert cse([2*x*x, x*x*y, x*x*y*w, x*x*y*w*x0, x*x*y*w*x2]) == \ ([(x1, x**2), (x3, x1*y), (x4, w*x3)], [2*x1, x3, x4, x0*x4, x2*x4]) +# }}} + + +# You can test individual routines by typing +# $ python test_cse.py 'test_recursive_matching()' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From f7fa3a035a55f51ce0ff748d83271be6b5133486 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:01:42 +0300 Subject: [PATCH 020/335] port test_fmm to arraycontext --- test/test_fmm.py | 369 ++++++++++++++++++++++++----------------------- 1 file changed, 185 insertions(+), 184 deletions(-) diff --git a/test/test_fmm.py b/test/test_fmm.py index 58ec8b3ad..f447999cf 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -20,42 +20,47 @@ THE SOFTWARE. """ - +import pytest import sys import os -from unittest.mock import patch +from functools import partial + import numpy as np import numpy.linalg as la -import pyopencl as cl -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) -from sumpy.kernel import (LaplaceKernel, HelmholtzKernel, YukawaKernel, + +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) + +from sumpy.kernel import ( + LaplaceKernel, + HelmholtzKernel, + YukawaKernel, BiharmonicKernel) from sumpy.expansion.multipole import ( VolumeTaylorMultipoleExpansion, - H2DMultipoleExpansion, Y2DMultipoleExpansion, + H2DMultipoleExpansion, + Y2DMultipoleExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion) from sumpy.expansion.local import ( VolumeTaylorLocalExpansion, - H2DLocalExpansion, Y2DLocalExpansion, + H2DLocalExpansion, + Y2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion) from sumpy.fmm import ( - SumpyTreeIndependentDataForWrangler, - SumpyExpansionWrangler) + SumpyTreeIndependentDataForWrangler, + SumpyExpansionWrangler) -import pytest import logging logger = logging.getLogger(__name__) +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) -try: - import faulthandler -except ImportError: - pass -else: - faulthandler.enable() +# {{{ test_sumpy_fmm @pytest.mark.parametrize("use_translation_classes, use_fft, fft_backend", [(False, False, None), (True, False, None), (True, True, "loopy"), @@ -84,10 +89,11 @@ (YukawaKernel(2), Y2DLocalExpansion, Y2DMultipoleExpansion, False), ]) -def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, +def test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, order_varies_with_level, use_translation_classes, use_fft, - fft_backend): - logging.basicConfig(level=logging.INFO) + fft_backend, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) if local_expn_class == VolumeTaylorLocalExpansion and use_fft: pytest.skip("VolumeTaylorExpansion with FFT takes a lot of resources.") @@ -96,68 +102,66 @@ def test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, pytest.skip("Fourier/Bessel based expansions with FFT is not supported yet.") if use_fft: + from unittest.mock import patch + with patch.dict(os.environ, {"SUMPY_FFT_BACKEND": fft_backend}): - _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, + _test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, order_varies_with_level, use_translation_classes, use_fft, fft_backend) else: - _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, + _test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, order_varies_with_level, use_translation_classes, use_fft, fft_backend) -def _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, +def _test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, order_varies_with_level, use_translation_classes, use_fft, fft_backend): - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() nsources = 1000 ntargets = 300 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) if 1: offset = np.zeros(knl.dim) offset[0] = 0.1 - - targets = ( - p_normal(queue, ntargets, knl.dim, dtype, seed=18) - + offset) + targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) del offset else: from sumpy.visualization import FieldPlotter fp = FieldPlotter(np.array([0.5, 0]), extent=3, npoints=200) + from pytools.obj_array import make_obj_array - targets = make_obj_array( - [fp.points[i] for i in range(knl.dim)]) + targets = make_obj_array([fp.points[i] for i in range(knl.dim)]) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, targets=targets, + tree, _ = tb(actx.queue, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) # {{{ plot tree if 0: - host_tree = tree.get(queue) - host_trav = trav.get(queue) + host_tree = tree.get(actx.queue) + host_trav = trav.get(actx.queue) if 0: - print("src_box", host_tree.find_box_nr_for_source(403)) - print("tgt_box", host_tree.find_box_nr_for_target(28)) - print(list(host_trav.target_or_target_parent_boxes).index(37)) - print(host_trav.get_box_list("sep_bigger", 22)) + logger.info("src_box: %s", host_tree.find_box_nr_for_source(403)) + logger.info("tgt_box: %s", host_tree.find_box_nr_for_target(28)) + logger.info("%s", + list(host_trav.target_or_target_parent_boxes).index(37)) + logger.info("%s", host_trav.get_box_list("sep_bigger", 22)) from boxtree.visualization import TreePlotter plotter = TreePlotter(host_tree) @@ -170,14 +174,11 @@ def _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, # }}} - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx, seed=44) - weights = rng.uniform(queue, nsources, dtype=np.float64) - + rng = np.random.default_rng(44) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) logger.info("computing direct (reference) result") from pytools.convergence import PConvergenceVerifier - pconv_verifier = PConvergenceVerifier() extra_kwargs = {} @@ -201,7 +202,6 @@ def _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, elif knl.dim == 2 and issubclass(local_expn_class, Y2DLocalExpansion): order_values = [10, 12] - from functools import partial for order in order_values: target_kernels = [knl] @@ -216,7 +216,7 @@ def _test_sumpy_fmm(ctx_factory, knl, local_expn_class, mpole_expn_class, knl, local_expn_class)() tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl, m2l_translation=m2l_translation), target_kernels) @@ -238,60 +238,60 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): pot, = drive_fmm(wrangler, (weights,)) from sumpy import P2P - p2p = P2P(ctx, target_kernels, exclude_self=False) - evt, (ref_pot,) = p2p(queue, targets, sources, (weights,), + p2p = P2P(actx.context, target_kernels, exclude_self=False) + evt, (ref_pot,) = p2p(actx.queue, targets, sources, (weights,), **extra_kwargs) - pot = pot.get() - ref_pot = ref_pot.get() + pot = actx.to_numpy(pot) + ref_pot = actx.to_numpy(ref_pot) rel_err = la.norm(pot - ref_pot, np.inf) / la.norm(ref_pot, np.inf) logger.info("order %d -> relative l2 error: %g", order, rel_err) pconv_verifier.add_data_point(order, rel_err) - print(pconv_verifier) + logger.info("\n%s", pconv_verifier) pconv_verifier() +# }}} + + +# {{{ test_coeff_magnitude_rscale @pytest.mark.parametrize("knl", [LaplaceKernel(2), BiharmonicKernel(2)]) -def test_coeff_magnitude_rscale(ctx_factory, knl): +def test_coeff_magnitude_rscale(actx_factory, knl): """Checks that the rscale used keeps the coefficient magnitude difference small """ local_expn_class = LinearPDEConformingVolumeTaylorLocalExpansion mpole_expn_class = LinearPDEConformingVolumeTaylorMultipoleExpansion - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() nsources = 1000 ntargets = 300 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) offset = np.zeros(knl.dim) offset[0] = 0.1 - targets = ( - p_normal(queue, ntargets, knl.dim, dtype, seed=18) + offset) + targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, targets=targets, + tree, _ = tb(actx.queue, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx, seed=44) - weights = rng.uniform(queue, nsources, dtype=np.float64) + rng = np.random.default_rng(31) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) extra_kwargs = {} dtype = np.float64 @@ -304,11 +304,10 @@ def test_coeff_magnitude_rscale(ctx_factory, knl): extra_kwargs["lam"] = 2 dtype = np.complex128 - from functools import partial target_kernels = [knl] tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels) @@ -330,21 +329,28 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): trav.from_sep_bigger_lists, (weights,)) - result = np.abs(wrangler.local_expansions_view(local_result, 5)[1][0]) + result = actx.to_numpy( + actx.np.abs(wrangler.local_expansions_view(local_result, 5)[1][0]) + ) + + result_ratio = np.max(result) / np.min(result) + assert result_ratio < 10**6, result_ratio + +# }}} - assert np.max(result) / np.min(result) < 10**6 +# {{{ test_unified_single_and_double -def test_unified_single_and_double(ctx_factory): +def test_unified_single_and_double(actx_factory, visualize=False): """ Test that running one FMM for single layer + double layer gives the same result as running one FMM for each and adding the results together at the end """ - logging.basicConfig(level=logging.INFO) + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() knl = LaplaceKernel(2) local_expn_class = LinearPDEConformingVolumeTaylorLocalExpansion @@ -354,42 +360,36 @@ def test_unified_single_and_double(ctx_factory): ntargets = 300 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) offset = np.zeros(knl.dim) offset[0] = 0.1 - targets = ( - p_normal(queue, ntargets, knl.dim, dtype, seed=18) - + offset) - + targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) del offset from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, targets=targets, + tree, _ = tb(actx.queue, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx, seed=44) + rng = np.random.default_rng(44) weights = ( - rng.uniform(queue, nsources, dtype=np.float64), - rng.uniform(queue, nsources, dtype=np.float64), - ) + actx.from_numpy(rng.random(nsources, dtype=np.float64)), + actx.from_numpy(rng.random(nsources, dtype=np.float64)) + ) logger.info("computing direct (reference) result") dtype = np.float64 order = 3 - from functools import partial from sumpy.kernel import DirectionalSourceDerivative, AxisTargetDerivative deriv_knl = DirectionalSourceDerivative(knl, "dir_vec") @@ -407,7 +407,7 @@ def test_unified_single_and_double(ctx_factory): if deriv_knl in source_kernels: source_extra_kwargs["dir_vec"] = dir_vec tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=target_kernels, source_kernels=source_kernels, @@ -419,7 +419,7 @@ def test_unified_single_and_double(ctx_factory): from boxtree.fmm import drive_fmm pot = drive_fmm(wrangler, weights) - results.append(np.array([pot[0].get(), pot[1].get()])) + results.append(np.array([actx.to_numpy(pot[0]), actx.to_numpy(pot[1])])) ref_pot = results[0] + results[1] pot = results[2] @@ -427,47 +427,50 @@ def test_unified_single_and_double(ctx_factory): assert rel_err < 1e-12 +# }}} + + +# {{{ test_sumpy_fmm_timing_data_collection @pytest.mark.parametrize("use_fft", [True, False]) -def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft): - logging.basicConfig(level=logging.INFO) +def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) + + import pyopencl as cl + from sumpy.array_context import PyOpenCLArrayContext ctx = ctx_factory() - queue = cl.CommandQueue( - ctx, - properties=cl.command_queue_properties.PROFILING_ENABLE) + queue = cl.CommandQueue(ctx, + properties=cl.command_queue_properties.PROFILING_ENABLE) + actx = PyOpenCLArrayContext(queue, force_device_scalars=True) nsources = 500 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal knl = LaplaceKernel(2) local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion order = 1 - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, - max_particles_in_box=30, debug=True) + tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx) - weights = rng.uniform(queue, nsources, dtype=np.float64) + rng = np.random.default_rng(44) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) target_kernels = [knl] - from functools import partial - if use_fft: from sumpy.expansion.m2l import FFTM2LTranslationClassFactory m2l_translation_factory = FFTM2LTranslationClassFactory() @@ -479,7 +482,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft): knl, local_expn_class)() tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl, m2l_translation=m2l_translation), target_kernels) @@ -490,52 +493,48 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft): timing_data = {} pot, = drive_fmm(wrangler, (weights,), timing_data=timing_data) - print(timing_data) + logger.info("timing_data:\n%s", timing_data) + assert timing_data -def test_sumpy_fmm_exclude_self(ctx_factory): - logging.basicConfig(level=logging.INFO) +def test_sumpy_fmm_exclude_self(actx_factory, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() nsources = 500 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal knl = LaplaceKernel(2) local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion order = 10 - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, - max_particles_in_box=30, debug=True) + tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx) - weights = rng.uniform(queue, nsources, dtype=np.float64) + rng = np.random.default_rng(44) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) target_to_source = np.arange(tree.ntargets, dtype=np.int32) self_extra_kwargs = {"target_to_source": target_to_source} target_kernels = [knl] - from functools import partial - tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels, @@ -550,65 +549,65 @@ def test_sumpy_fmm_exclude_self(ctx_factory): pot, = drive_fmm(wrangler, (weights,)) from sumpy import P2P - p2p = P2P(ctx, target_kernels, exclude_self=True) - evt, (ref_pot,) = p2p(queue, sources, sources, (weights,), + p2p = P2P(actx.context, target_kernels, exclude_self=True) + evt, (ref_pot,) = p2p(actx.queue, sources, sources, (weights,), **self_extra_kwargs) - pot = pot.get() - ref_pot = ref_pot.get() + pot = actx.to_numpy(pot) + ref_pot = actx.to_numpy(ref_pot) rel_err = la.norm(pot - ref_pot) / la.norm(ref_pot) logger.info("order %d -> relative l2 error: %g", order, rel_err) assert np.isclose(rel_err, 0, atol=1e-7) +# }}} -def test_sumpy_axis_source_derivative(ctx_factory): - logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) +# {{{ test_sumpy_axis_source_derivative + +def test_sumpy_axis_source_derivative(actx_factory, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) + + actx = actx_factory() nsources = 500 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal knl = LaplaceKernel(2) local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion order = 10 - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, + tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx, seed=12) - weights = rng.uniform(queue, nsources, dtype=np.float64) + rng = np.random.default_rng(12) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) target_to_source = np.arange(tree.ntargets, dtype=np.int32) self_extra_kwargs = {"target_to_source": target_to_source} - from functools import partial - from sumpy.kernel import AxisTargetDerivative, AxisSourceDerivative pots = [] - for tgt_knl, src_knl in [(AxisTargetDerivative(0, knl), knl), + for tgt_knl, src_knl in [ + (AxisTargetDerivative(0, knl), knl), (knl, AxisSourceDerivative(0, knl))]: - tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=[tgt_knl], @@ -622,53 +621,53 @@ def test_sumpy_axis_source_derivative(ctx_factory): from boxtree.fmm import drive_fmm pot, = drive_fmm(wrangler, (weights,)) - pots.append(pot.get()) + pots.append(actx.to_numpy(pot)) rel_err = la.norm(pots[0] + pots[1]) / la.norm(pots[0]) logger.info("order %d -> relative l2 error: %g", order, rel_err) assert np.isclose(rel_err, 0, atol=1e-5) +# }}} + + +# {{{ test_sumpy_target_point_multiplier @pytest.mark.parametrize("deriv_axes", [(), (0,), (1,)]) -def test_sumpy_target_point_multiplier(ctx_factory, deriv_axes): - logging.basicConfig(level=logging.INFO) +def test_sumpy_target_point_multiplier(actx_factory, deriv_axes, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() nsources = 500 dtype = np.float64 - from boxtree.tools import ( - make_normal_particle_array as p_normal) + from boxtree.tools import make_normal_particle_array as p_normal knl = LaplaceKernel(2) local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion order = 5 - sources = p_normal(queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(ctx) + tb = TreeBuilder(actx.context) - tree, _ = tb(queue, sources, + tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(ctx) - trav, _ = tbuild(queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx.context) + trav, _ = tbuild(actx.queue, tree, debug=True) - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(ctx, seed=12) - weights = rng.uniform(queue, nsources, dtype=np.float64) + rng = np.random.default_rng(12) + weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) target_to_source = np.arange(tree.ntargets, dtype=np.int32) self_extra_kwargs = {"target_to_source": target_to_source} - from functools import partial - from sumpy.kernel import TargetPointMultiplier, AxisTargetDerivative tgt_knls = [TargetPointMultiplier(0, knl), knl, knl] @@ -677,7 +676,7 @@ def test_sumpy_target_point_multiplier(ctx_factory, deriv_axes): tgt_knls[1] = AxisTargetDerivative(axis, tgt_knls[1]) tree_indep = SumpyTreeIndependentDataForWrangler( - ctx, + actx.context, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=tgt_knls, @@ -691,27 +690,29 @@ def test_sumpy_target_point_multiplier(ctx_factory, deriv_axes): from boxtree.fmm import drive_fmm pot0, pot1, pot2 = drive_fmm(wrangler, (weights,)) - pot0, pot1, pot2 = pot0.get(), pot1.get(), pot2.get() + pot0, pot1, pot2 = actx.to_numpy(pot0), actx.to_numpy(pot1), actx.to_numpy(pot2) if deriv_axes == (0,): - ref_pot = pot1 * sources[0].get() + pot2 + ref_pot = pot1 * actx.to_numpy(sources[0]) + pot2 else: - ref_pot = pot1 * sources[0].get() + ref_pot = pot1 * actx.to_numpy(sources[0]) rel_err = la.norm(pot0 - ref_pot) / la.norm(ref_pot) logger.info("order %d -> relative l2 error: %g", order, rel_err) assert np.isclose(rel_err, 0, atol=1e-5) +# }}} + # You can test individual routines by typing -# $ python test_fmm.py 'test_sumpy_fmm(cl.create_some_context, LaplaceKernel(2), -# VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False, False)' +# $ python test_fmm.py 'test_sumpy_fmm(_acf, LaplaceKernel(2), +# VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False, False, +# visualize=True)' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From 3277bde9b46b4b8b322afa657d2de41eb9cc709c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:23:50 +0300 Subject: [PATCH 021/335] port test_kernels to arraycontext --- sumpy/symbolic.py | 6 + test/test_kernels.py | 287 ++++++++++++++++++++++--------------------- 2 files changed, 150 insertions(+), 143 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 4e1234ae2..ab4c25dcf 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -137,9 +137,15 @@ def UnevaluatedExpr(x): # noqa if USE_SYMENGINE: + def doit(expr): + return expr + def unevaluated_pow(a, b): return sym.Pow(a, b) else: + def doit(expr): + return expr.doit() + def unevaluated_pow(a, b): return sym.Pow(a, b, evaluate=False) diff --git a/test/test_kernels.py b/test/test_kernels.py index f2d89b860..bf03f00d4 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -20,55 +20,62 @@ THE SOFTWARE. """ +import pytest +import sys + import numpy as np import numpy.linalg as la -import sys -import pytest -import pyopencl as cl -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) +from pytools.convergence import PConvergenceVerifier +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) +import sumpy.symbolic as sym from sumpy.expansion.multipole import ( - VolumeTaylorMultipoleExpansion, H2DMultipoleExpansion, - VolumeTaylorMultipoleExpansionBase, - LinearPDEConformingVolumeTaylorMultipoleExpansion) + VolumeTaylorMultipoleExpansion, + H2DMultipoleExpansion, + VolumeTaylorMultipoleExpansionBase, + LinearPDEConformingVolumeTaylorMultipoleExpansion) from sumpy.expansion.local import ( - VolumeTaylorLocalExpansion, H2DLocalExpansion, - LinearPDEConformingVolumeTaylorLocalExpansion) + VolumeTaylorLocalExpansion, + H2DLocalExpansion, + LinearPDEConformingVolumeTaylorLocalExpansion) from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory -from sumpy.kernel import (LaplaceKernel, HelmholtzKernel, AxisTargetDerivative, - DirectionalSourceDerivative, BiharmonicKernel, StokesletKernel) -import sumpy.symbolic as sym -from pytools.convergence import PConvergenceVerifier +from sumpy.kernel import ( + LaplaceKernel, + HelmholtzKernel, + BiharmonicKernel, + StokesletKernel, + AxisTargetDerivative, + DirectionalSourceDerivative) import logging logger = logging.getLogger(__name__) -try: - import faulthandler -except ImportError: - pass -else: - faulthandler.enable() +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + +# {{{ test_p2p @pytest.mark.parametrize("exclude_self", (True, False)) -def test_p2p(ctx_factory, exclude_self): - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) +def test_p2p(actx_factory, exclude_self): + actx = actx_factory() dimensions = 3 n = 5000 from sumpy.p2p import P2P lknl = LaplaceKernel(dimensions) - knl = P2P(ctx, + knl = P2P(actx.context, [lknl, AxisTargetDerivative(0, lknl)], exclude_self=exclude_self) - targets = np.random.rand(dimensions, n) - sources = targets if exclude_self else np.random.rand(dimensions, n) + rng = np.random.default_rng(42) + targets = rng.random(size=(dimensions, n)) + sources = targets if exclude_self else rng.random(size=(dimensions, n)) strengths = np.ones(n, dtype=np.float64) @@ -78,7 +85,7 @@ def test_p2p(ctx_factory, exclude_self): extra_kwargs["target_to_source"] = np.arange(n, dtype=np.int32) evt, (potential, x_derivative) = knl( - queue, targets, sources, [strengths], + actx.queue, targets, sources, [strengths], out_host=True, **extra_kwargs) potential_ref = np.empty_like(potential) @@ -99,24 +106,22 @@ def test_p2p(ctx_factory, exclude_self): potential_ref *= 1/(4*np.pi) rel_err = la.norm(potential - potential_ref)/la.norm(potential_ref) - print(rel_err) + logger.info("error: %.12e", rel_err) + assert rel_err < 1e-3 +# }}} + + +# {{{ test_p2e_multiple @pytest.mark.parametrize(("base_knl", "expn_class"), [ (LaplaceKernel(2), LinearPDEConformingVolumeTaylorLocalExpansion), (LaplaceKernel(2), LinearPDEConformingVolumeTaylorMultipoleExpansion), ]) -def test_p2e_multiple(ctx_factory, base_knl, expn_class): - - from sympy.core.cache import clear_cache - clear_cache() - +def test_p2e_multiple(actx_factory, base_knl, expn_class): order = 4 - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) - - np.random.seed(17) + actx = actx_factory() nsources = 100 @@ -139,9 +144,11 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): from sumpy import P2EFromSingleBox + rng = np.random.default_rng(14) center = np.array([2, 1, 0][:knl.dim], np.float64) - sources = (0.7*(-0.5+np.random.rand(knl.dim, nsources).astype(np.float64)) - + center[:, np.newaxis]) + sources = ( + 0.7 * (-0.5 + rng.random(size=(knl.dim, nsources), dtype=np.float64)) + + center[:, np.newaxis]) strengths = [ np.ones(nsources, dtype=np.float64) * (1/nsources), @@ -167,8 +174,11 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): rscale = 0.5 # pick something non-1 # apply p2e at the same time - p2e = P2EFromSingleBox(ctx, expn, kernels=source_kernels, strength_usage=[0, 1]) - evt, (mpoles,) = p2e(queue, + p2e = P2EFromSingleBox(actx.context, expn, + kernels=source_kernels, + strength_usage=[0, 1]) + + evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -179,7 +189,6 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): tgt_base_ibox=0, rscale=rscale, - #flags="print_hl_cl", out_host=True, dir_vec=dir_vec, **extra_kwargs) @@ -192,9 +201,11 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): extra_source_kwargs = extra_kwargs.copy() if isinstance(source_kernel, DirectionalSourceDerivative): extra_source_kwargs["dir_vec"] = dir_vec - p2e = P2EFromSingleBox(ctx, expn, + + p2e = P2EFromSingleBox(actx.context, expn, kernels=[source_kernel], strength_usage=[i]) - evt, (mpoles,) = p2e(queue, + + evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -205,13 +216,16 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): tgt_base_ibox=0, rscale=rscale, - #flags="print_hl_cl", out_host=True, **extra_source_kwargs) expected_result += mpoles norm = la.norm(actual_result - expected_result)/la.norm(expected_result) assert norm < 1e-12 +# }}} + + +# {{{ test_p2e2p @pytest.mark.parametrize("order", [4]) @pytest.mark.parametrize(("base_knl", "expn_class"), [ @@ -245,17 +259,8 @@ def test_p2e_multiple(ctx_factory, base_knl, expn_class): False, True ]) -# Sample: test_p2e2p(cl._csc, LaplaceKernel(2), VolumeTaylorLocalExpansion, 4, False) -def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative): - #logging.basicConfig(level=logging.INFO) - - from sympy.core.cache import clear_cache - clear_cache() - - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) - - np.random.seed(17) +def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative): + actx = actx_factory() res = 100 nsources = 100 @@ -281,9 +286,9 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) expn = expn_class(knl, order=order) from sumpy import P2EFromSingleBox, E2PFromSingleBox, P2P - p2e = P2EFromSingleBox(ctx, expn, kernels=[knl]) - e2p = E2PFromSingleBox(ctx, expn, kernels=target_kernels) - p2p = P2P(ctx, target_kernels, exclude_self=False) + p2e = P2EFromSingleBox(actx.context, expn, kernels=[knl]) + e2p = E2PFromSingleBox(actx.context, expn, kernels=target_kernels) + p2p = P2P(actx.context, target_kernels, exclude_self=False) from pytools.convergence import EOCRecorder eoc_rec_pot = EOCRecorder() @@ -295,11 +300,13 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) else: h_values = [1/2, 1/3, 1/5] + rng = np.random.default_rng(19) center = np.array([2, 1, 0][:knl.dim], np.float64) - sources = (0.7*(-0.5+np.random.rand(knl.dim, nsources).astype(np.float64)) - + center[:, np.newaxis]) + sources = ( + 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + + center[:, np.newaxis]) - strengths = np.ones(nsources, dtype=np.float64) * (1/nsources) + strengths = np.ones(nsources, dtype=np.float64) / nsources source_boxes = np.array([0], dtype=np.int32) box_source_starts = np.array([0], dtype=np.int32) @@ -331,7 +338,7 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) # {{{ apply p2e - evt, (mpoles,) = p2e(queue, + evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -342,7 +349,6 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) tgt_base_ibox=0, rscale=rscale, - #flags="print_hl_cl", out_host=True, **extra_source_kwargs) # }}} @@ -355,7 +361,7 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) box_target_counts_nonchild = np.array([ntargets], dtype=np.int32) evt, (pot, grad_x, ) = e2p( - queue, + actx.queue, src_expansions=mpoles, src_base_ibox=0, target_boxes=source_boxes, @@ -365,7 +371,6 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) targets=targets, rscale=rscale, - #flags="print_hl_cl", out_host=True, **extra_kwargs) # }}} @@ -373,7 +378,7 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) # {{{ compute (direct) reference solution evt, (pot_direct, grad_x_direct, ) = p2p( - queue, + actx.queue, targets, sources, (strengths,), out_host=True, **extra_source_kwargs) @@ -410,11 +415,11 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) eoc_rec_pot.add_data_point(h, err_pot) eoc_rec_grad_x.add_data_point(h, err_grad_x) - print(expn_class, knl, order) - print("POTENTIAL:") - print(eoc_rec_pot) - print("X TARGET DERIVATIVE:") - print(eoc_rec_grad_x) + logger.info("expn_cls %s knl %s order %d", expn_class, knl, order) + logger.info("POTENTIAL:") + logger.info("%s", eoc_rec_pot) + logger.info("X TARGET DERIVATIVE:") + logger.info("%s", eoc_rec_grad_x) tgt_order = order + 1 if issubclass(expn_class, LocalExpansionBase): @@ -451,6 +456,10 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) assert eoc_rec_pot.order_estimate() > tgt_order - slack assert eoc_rec_grad_x.order_estimate() > tgt_order_grad - grad_slack +# }}} + + +# {{{ test_translations @pytest.mark.parametrize("knl, local_expn_class, mpole_expn_class", [ (LaplaceKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), @@ -471,16 +480,12 @@ def test_p2e2p(ctx_factory, base_knl, expn_class, order, with_source_derivative) (StokesletKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion), ]) -def test_translations(ctx_factory, knl, local_expn_class, mpole_expn_class): - logging.basicConfig(level=logging.INFO) - - from sympy.core.cache import clear_cache - clear_cache() +def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, + visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) - - np.random.seed(17) + actx = actx_factory() res = 20 nsources = 15 @@ -494,9 +499,11 @@ def test_translations(ctx_factory, knl, local_expn_class, mpole_expn_class): extra_kwargs["mu"] = 0.05 # Just to make sure things also work away from the origin + rng = np.random.default_rng(18) origin = np.array([2, 1, 0][:knl.dim], np.float64) - sources = (0.7*(-0.5+np.random.rand(knl.dim, nsources).astype(np.float64)) - + origin[:, np.newaxis]) + sources = ( + 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + + origin[:, np.newaxis]) strengths = np.ones(nsources, dtype=np.float64) * (1/nsources) pconv_verifier_p2m2p = PConvergenceVerifier() @@ -543,7 +550,7 @@ def eval_at(e2p, source_box_nr, rscale): e2p_box_target_counts_nonchild[source_box_nr] = ntargets evt, (pot,) = e2p( - queue, + actx.queue, src_expansions=mpoles, src_base_ibox=0, @@ -569,13 +576,13 @@ def eval_at(e2p, source_box_nr, rscale): l_expn = local_expn_class(knl, order=order, m2l_translation=m2l_translation) from sumpy import P2EFromSingleBox, E2PFromSingleBox, P2P, E2EFromCSR - p2m = P2EFromSingleBox(ctx, m_expn) - m2m = E2EFromCSR(ctx, m_expn, m_expn) - m2p = E2PFromSingleBox(ctx, m_expn, target_kernels) - m2l = E2EFromCSR(ctx, m_expn, l_expn) - l2l = E2EFromCSR(ctx, l_expn, l_expn) - l2p = E2PFromSingleBox(ctx, l_expn, target_kernels) - p2p = P2P(ctx, target_kernels, exclude_self=False) + p2m = P2EFromSingleBox(actx.context, m_expn) + m2m = E2EFromCSR(actx.context, m_expn, m_expn) + m2p = E2PFromSingleBox(actx.context, m_expn, target_kernels) + m2l = E2EFromCSR(actx.context, m_expn, l_expn) + l2l = E2EFromCSR(actx.context, l_expn, l_expn) + l2p = E2PFromSingleBox(actx.context, l_expn, target_kernels) + p2p = P2P(actx.context, target_kernels, exclude_self=False) fp = FieldPlotter(centers[:, -1], extent=0.3, npoints=res) targets = fp.points @@ -583,7 +590,7 @@ def eval_at(e2p, source_box_nr, rscale): # {{{ compute (direct) reference solution evt, (pot_direct,) = p2p( - queue, + actx.queue, targets, sources, (strengths,), out_host=True, **extra_kwargs) @@ -603,7 +610,7 @@ def eval_at(e2p, source_box_nr, rscale): p2m_box_source_counts_nonchild = np.array([nsources, 0, 0, 0], dtype=np.int32) - evt, (mpoles,) = p2m(queue, + evt, (mpoles,) = p2m(actx.queue, source_boxes=p2m_source_boxes, box_source_starts=p2m_box_source_starts, box_source_counts_nonchild=p2m_box_source_counts_nonchild, @@ -615,7 +622,6 @@ def eval_at(e2p, source_box_nr, rscale): tgt_base_ibox=0, - #flags="print_hl_wrapper", out_host=True, **extra_kwargs) # }}} @@ -635,7 +641,7 @@ def eval_at(e2p, source_box_nr, rscale): m2m_src_box_starts = np.array([0, 1], dtype=np.int32) m2m_src_box_lists = np.array([0], dtype=np.int32) - evt, (mpoles,) = m2m(queue, + evt, (mpoles,) = m2m(actx.queue, src_expansions=mpoles, src_base_ibox=0, tgt_base_ibox=0, @@ -650,7 +656,6 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=m1_rscale, tgt_rscale=m2_rscale, - #flags="print_hl_cl", out_host=True, **extra_kwargs) # }}} @@ -668,7 +673,7 @@ def eval_at(e2p, source_box_nr, rscale): m2l_src_box_starts = np.array([0, 1], dtype=np.int32) m2l_src_box_lists = np.array([1], dtype=np.int32) - evt, (mpoles,) = m2l(queue, + evt, (mpoles,) = m2l(actx.queue, src_expansions=mpoles, src_base_ibox=0, tgt_base_ibox=0, @@ -682,7 +687,6 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=m2_rscale, tgt_rscale=l1_rscale, - #flags="print_hl_cl", out_host=True, **extra_kwargs) # }}} @@ -700,7 +704,7 @@ def eval_at(e2p, source_box_nr, rscale): l2l_src_box_starts = np.array([0, 1], dtype=np.int32) l2l_src_box_lists = np.array([2], dtype=np.int32) - evt, (mpoles,) = l2l(queue, + evt, (mpoles,) = l2l(actx.queue, src_expansions=mpoles, src_base_ibox=0, tgt_base_ibox=0, @@ -714,7 +718,6 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=l1_rscale, tgt_rscale=l2_rscale, - #flags="print_hl_wrapper", out_host=True, **extra_kwargs) # }}} @@ -732,13 +735,18 @@ def eval_at(e2p, source_box_nr, rscale): ("p2m2m2l2p", pconv_verifier_p2m2m2l2p), ("full", pconv_verifier_full), ]: - print(30*"-") - print(name) - print(30*"-") - print(verifier) - print(30*"-") + logger.info(30*"-") + logger.info("name: %s", name) + logger.info(30*"-") + logger.info("result: %s", verifier) + logger.info(30*"-") + verifier() +# }}} + + +# {{{ test_m2m_and_l2l_exprs_simpler @pytest.mark.parametrize("order", [4]) @pytest.mark.parametrize(("base_knl", "local_expn_class", "mpole_expn_class"), [ @@ -750,12 +758,6 @@ def eval_at(e2p, source_box_nr, rscale): ]) def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, order, with_source_derivative): - - from sympy.core.cache import clear_cache - clear_cache() - - np.random.seed(17) - extra_kwargs = {} if isinstance(base_knl, HelmholtzKernel): if base_knl.allow_evanescent: @@ -773,9 +775,8 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, mpole_expn = mpole_expn_class(knl, order=order) local_expn = local_expn_class(knl, order=order) - from sumpy.symbolic import make_sym_vector, Symbol, USE_SYMENGINE - dvec = make_sym_vector("d", knl.dim) - src_coeff_exprs = [Symbol(f"src_coeff{i}") for i in range(len(mpole_expn))] + dvec = sym.make_sym_vector("d", knl.dim) + src_coeff_exprs = [sym.Symbol(f"src_coeff{i}") for i in range(len(mpole_expn))] src_rscale = 3 tgt_rscale = 2 @@ -785,30 +786,23 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, slower_m2m = mpole_expn.translate_from(mpole_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) - def _check_equal(expr1, expr2): - if USE_SYMENGINE: - return float((expr1 - expr2).expand()) == 0.0 - else: - # with sympy we are using UnevaluatedExpr and expand doesn't expand it - # Running doit replaces UnevaluatedExpr with evaluated exprs - return float((expr1 - expr2).doit().expand()) == 0.0 - for expr1, expr2 in zip(faster_m2m, slower_m2m): - assert _check_equal(expr1, expr2) + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 faster_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale) slower_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) for expr1, expr2 in zip(faster_l2l, slower_l2l): - assert _check_equal(expr1, expr2) + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 + +# }}} # {{{ test toeplitz def _m2l_translate_simple(tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale): - if not tgt_expansion.use_rscale: src_rscale = 1 tgt_rscale = 1 @@ -839,12 +833,14 @@ def _m2l_translate_simple(tgt_expansion, src_expansion, src_coeff_exprs, src_rsc local_result.append( coeff * kernel_deriv * tgt_rscale**sum(deriv)) result.append(sym.Add(*local_result)) + return result def test_m2l_toeplitz(): dim = 3 knl = LaplaceKernel(dim) + local_expn_class = LinearPDEConformingVolumeTaylorLocalExpansion mpole_expn_class = LinearPDEConformingVolumeTaylorMultipoleExpansion m2l_factory = NonFFTM2LTranslationClassFactory() @@ -854,19 +850,24 @@ def test_m2l_toeplitz(): mpole_expn = mpole_expn_class(knl, order=5) dvec = sym.make_sym_vector("d", dim) - src_coeff_exprs = list(1 + np.random.randn(len(mpole_expn))) + + rng = np.random.default_rng(44) + src_coeff_exprs = list(1 + rng.standard_normal(len(mpole_expn))) src_rscale = 2.0 tgt_rscale = 1.0 - expected_output = _m2l_translate_simple(local_expn, mpole_expn, src_coeff_exprs, - src_rscale, dvec, tgt_rscale) - actual_output = local_expn.translate_from(mpole_expn, src_coeff_exprs, - src_rscale, dvec, tgt_rscale, sac=None) + expected_output = _m2l_translate_simple( + local_expn, mpole_expn, src_coeff_exprs, + src_rscale, dvec, tgt_rscale) + actual_output = local_expn.translate_from( + mpole_expn, src_coeff_exprs, + src_rscale, dvec, tgt_rscale, sac=None) - replace_dict = {d: np.random.rand(1)[0] for d in dvec} + replace_dict = {d: rng.random() for d in dvec} for sym_a, sym_b in zip(expected_output, actual_output): num_a = sym_a.xreplace(replace_dict) num_b = sym_b.xreplace(replace_dict) + assert abs(num_a - num_b)/abs(num_a) < 1e-10 # }}} @@ -876,10 +877,11 @@ def test_m2l_toeplitz(): @pytest.mark.parametrize("dim", [2, 3]) @pytest.mark.parametrize("order", [2, 4, 6]) -def test_m2m_compressed_error_helmholtz(ctx_factory, dim, order): - import sumpy.toys as t +def test_m2m_compressed_error_helmholtz(actx_factory, dim, order): + from sumpy import toys + + actx = actx_factory() - ctx = ctx_factory() knl = HelmholtzKernel(dim) extra_kernel_kwargs = {"k": 5} @@ -914,24 +916,24 @@ def test_m2m_compressed_error_helmholtz(ctx_factory, dim, order): m2m_vals = [0, 0] for i, (mpole_expn_class, local_expn_class) in \ enumerate(zip(mpole_expn_classes, local_expn_classes)): - tctx = t.ToyContext( - ctx, + tctx = toys.ToyContext( + actx.context, knl, extra_kernel_kwargs=extra_kernel_kwargs, local_expn_class=local_expn_class, mpole_expn_class=mpole_expn_class, ) - pt_src = t.PointSources( + pt_src = toys.PointSources( tctx, sources, np.ones(sources.shape[-1]) ) - mexp = t.multipole_expand(pt_src, + mexp = toys.multipole_expand(pt_src, center=mpole_center.reshape(dim), order=order, rscale=h) - mexp2 = t.multipole_expand(mexp, + mexp2 = toys.multipole_expand(mexp, center=second_center.reshape(dim), order=order, rscale=h) @@ -941,20 +943,19 @@ def test_m2m_compressed_error_helmholtz(ctx_factory, dim, order): / np.linalg.norm(m2m_vals[1]) eoc_rec.add_data_point(furthest_source, err) - print(eoc_rec) + logger.info("\n%s", eoc_rec) assert eoc_rec.order_estimate() >= order + 1 # }}} # You can test individual routines by typing -# $ python test_kernels.py 'test_p2p(cl.create_some_context)' +# $ python test_kernels.py 'test_p2p(_acf, True)' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From faf8c9cee4abd662948fd874990c1985294dd846 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:36:32 +0300 Subject: [PATCH 022/335] port test_matrixgen to arraycontext --- test/test_matrixgen.py | 151 ++++++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 70 deletions(-) diff --git a/test/test_matrixgen.py b/test/test_matrixgen.py index ed90ee1e5..4baf30312 100644 --- a/test/test_matrixgen.py +++ b/test/test_matrixgen.py @@ -20,28 +20,25 @@ THE SOFTWARE. """ +import pytest import sys + import numpy as np import numpy.linalg as la -import pyopencl as cl -import pyopencl.array # noqa - -from sumpy.tools import vector_to_device - -import pytest -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) - +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) import logging logger = logging.getLogger(__name__) -import faulthandler -faulthandler.enable() +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) -def _build_geometry(queue, ntargets, nsources, mode, target_radius=1.0): +def _build_geometry(actx, ntargets, nsources, mode, target_radius=1.0): # source points t = np.linspace(0.0, 2.0 * np.pi, nsources, endpoint=False) sources = np.array([np.cos(t), np.sin(t)]) @@ -59,14 +56,14 @@ def _build_geometry(queue, ntargets, nsources, mode, target_radius=1.0): centers = (1.0 - radius) * targets expansion_radii = np.full(ntargets, radius) - return (cl.array.to_device(queue, targets), - cl.array.to_device(queue, sources), - vector_to_device(queue, centers), - cl.array.to_device(queue, expansion_radii), - cl.array.to_device(queue, sigma)) + return (actx.from_numpy(targets), + actx.from_numpy(sources), + actx.from_numpy(centers), + actx.from_numpy(expansion_radii), + actx.from_numpy(sigma)) -def _build_subset_indices(queue, ntargets, nsources, factor): +def _build_subset_indices(actx, ntargets, nsources, factor): tgtindices = np.arange(0, ntargets) srcindices = np.arange(0, nsources) @@ -82,17 +79,19 @@ def _build_subset_indices(queue, ntargets, nsources, factor): tgtindices, srcindices = np.meshgrid(tgtindices, srcindices) return ( - cl.array.to_device(queue, tgtindices.ravel()).with_queue(None), - cl.array.to_device(queue, srcindices.ravel()).with_queue(None)) + actx.freeze(actx.from_numpy(tgtindices.ravel())), + actx.freeze(actx.from_numpy(srcindices.ravel()))) +# {{{ test_qbx_direct + @pytest.mark.parametrize("factor", [1.0, 0.6]) @pytest.mark.parametrize("lpot_id", [1, 2]) -def test_qbx_direct(ctx_factory, factor, lpot_id): - logging.basicConfig(level=logging.INFO) +def test_qbx_direct(actx_factory, factor, lpot_id, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() ndim = 2 order = 12 @@ -106,79 +105,88 @@ def test_qbx_direct(ctx_factory, factor, lpot_id): base_knl = LaplaceKernel(ndim) knl = DirectionalSourceDerivative(base_knl, dir_vec_name="dsource_vec") else: - raise ValueError("unknow lpot_id") + raise ValueError(f"unknown lpot_id: {lpot_id}") from sumpy.expansion.local import LineTaylorLocalExpansion expn = LineTaylorLocalExpansion(knl, order) from sumpy.qbx import LayerPotential - lpot = LayerPotential(ctx, expansion=expn, source_kernels=(knl,), + lpot = LayerPotential(actx.context, expansion=expn, source_kernels=(knl,), target_kernels=(base_knl,)) from sumpy.qbx import LayerPotentialMatrixGenerator - mat_gen = LayerPotentialMatrixGenerator(ctx, expansion=expn, - source_kernels=(knl,), target_kernels=(base_knl,)) + mat_gen = LayerPotentialMatrixGenerator(actx.context, + expansion=expn, + source_kernels=(knl,), + target_kernels=(base_knl,)) from sumpy.qbx import LayerPotentialMatrixSubsetGenerator - blk_gen = LayerPotentialMatrixSubsetGenerator(ctx, expansion=expn, - source_kernels=(knl,), target_kernels=(base_knl,)) + blk_gen = LayerPotentialMatrixSubsetGenerator(actx.context, + expansion=expn, + source_kernels=(knl,), + target_kernels=(base_knl,)) for n in [200, 300, 400]: targets, sources, centers, expansion_radii, sigma = \ - _build_geometry(queue, n, n, mode_nr, target_radius=1.2) + _build_geometry(actx, n, n, mode_nr, target_radius=1.2) h = 2 * np.pi / n strengths = (sigma * h,) - tgtindices, srcindices = _build_subset_indices(queue, + tgtindices, srcindices = _build_subset_indices(actx, ntargets=n, nsources=n, factor=factor) extra_kwargs = {} if lpot_id == 2: from pytools.obj_array import make_obj_array - extra_kwargs["dsource_vec"] = \ - vector_to_device(queue, make_obj_array(np.ones((ndim, n)))) + extra_kwargs["dsource_vec"] = ( + actx.from_numpy(make_obj_array(np.ones((ndim, n)))) + ) - _, (result_lpot,) = lpot(queue, + _, (result_lpot,) = lpot(actx.queue, targets=targets, sources=sources, centers=centers, expansion_radii=expansion_radii, strengths=strengths, **extra_kwargs) - result_lpot = result_lpot.get() + result_lpot = actx.to_numpy(result_lpot) - _, (mat,) = mat_gen(queue, + _, (mat,) = mat_gen(actx.queue, targets=targets, sources=sources, centers=centers, expansion_radii=expansion_radii, **extra_kwargs) - mat = mat.get() - result_mat = mat.dot(strengths[0].get()) + mat = actx.to_numpy(mat) + result_mat = mat @ actx.to_numpy(strengths[0]) - _, (blk,) = blk_gen(queue, + _, (blk,) = blk_gen(actx.queue, targets=targets, sources=sources, centers=centers, expansion_radii=expansion_radii, tgtindices=tgtindices, srcindices=srcindices, **extra_kwargs) - blk = blk.get() + blk = actx.to_numpy(blk) - tgtindices = tgtindices.get(queue) - srcindices = srcindices.get(queue) + tgtindices = actx.to_numpy(tgtindices) + srcindices = actx.to_numpy(srcindices) eps = 1.0e-10 * la.norm(result_lpot) assert la.norm(result_mat - result_lpot) < eps assert la.norm(blk - mat[tgtindices, srcindices]) < eps +# }}} + + +# {{{ test_p2p_direct @pytest.mark.parametrize("exclude_self", [True, False]) @pytest.mark.parametrize("factor", [1.0, 0.6]) @pytest.mark.parametrize("lpot_id", [1, 2]) -def test_p2p_direct(ctx_factory, exclude_self, factor, lpot_id): - logging.basicConfig(level=logging.INFO) +def test_p2p_direct(actx_factory, exclude_self, factor, lpot_id, visualize=False): + if visualize: + logging.basicConfig(level=logging.INFO) - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() ndim = 2 mode_nr = 25 @@ -190,70 +198,73 @@ def test_p2p_direct(ctx_factory, exclude_self, factor, lpot_id): lknl = LaplaceKernel(ndim) lknl = DirectionalSourceDerivative(lknl, dir_vec_name="dsource_vec") else: - raise ValueError("unknow lpot_id") + raise ValueError(f"unknown lpot_id: '{lpot_id}'") from sumpy.p2p import P2P - lpot = P2P(ctx, [lknl], exclude_self=exclude_self) + lpot = P2P(actx.context, [lknl], exclude_self=exclude_self) from sumpy.p2p import P2PMatrixGenerator - mat_gen = P2PMatrixGenerator(ctx, [lknl], exclude_self=exclude_self) + mat_gen = P2PMatrixGenerator(actx.context, [lknl], exclude_self=exclude_self) from sumpy.p2p import P2PMatrixSubsetGenerator - blk_gen = P2PMatrixSubsetGenerator(ctx, [lknl], exclude_self=exclude_self) + blk_gen = P2PMatrixSubsetGenerator( + actx.context, [lknl], exclude_self=exclude_self) for n in [200, 300, 400]: - targets, sources, _, _, sigma = \ - _build_geometry(queue, n, n, mode_nr, target_radius=1.2) + targets, sources, _, _, sigma = ( + _build_geometry(actx, n, n, mode_nr, target_radius=1.2)) h = 2 * np.pi / n strengths = (sigma * h,) - tgtindices, srcindices = _build_subset_indices(queue, + tgtindices, srcindices = _build_subset_indices(actx, ntargets=n, nsources=n, factor=factor) extra_kwargs = {} if exclude_self: - extra_kwargs["target_to_source"] = \ - cl.array.arange(queue, 0, n, dtype=np.int32) + extra_kwargs["target_to_source"] = ( + actx.from_numpy(np.arange(n, dtype=np.int32)) + ) if lpot_id == 2: from pytools.obj_array import make_obj_array - extra_kwargs["dsource_vec"] = \ - vector_to_device(queue, make_obj_array(np.ones((ndim, n)))) + extra_kwargs["dsource_vec"] = ( + actx.from_numpy(make_obj_array(np.ones((ndim, n))))) - _, (result_lpot,) = lpot(queue, + _, (result_lpot,) = lpot(actx.queue, targets=targets, sources=sources, strength=strengths, **extra_kwargs) - result_lpot = result_lpot.get() + result_lpot = actx.to_numpy(result_lpot) - _, (mat,) = mat_gen(queue, + _, (mat,) = mat_gen(actx.queue, targets=targets, sources=sources, **extra_kwargs) - mat = mat.get() - result_mat = mat.dot(strengths[0].get()) + mat = actx.to_numpy(mat) + result_mat = mat @ actx.to_numpy(strengths[0]) - _, (blk,) = blk_gen(queue, + _, (blk,) = blk_gen(actx.queue, targets=targets, sources=sources, tgtindices=tgtindices, srcindices=srcindices, **extra_kwargs) - blk = blk.get() + blk = actx.to_numpy(blk) - tgtindices = tgtindices.get(queue) - srcindices = srcindices.get(queue) + tgtindices = actx.to_numpy(tgtindices) + srcindices = actx.to_numpy(srcindices) eps = 1.0e-10 * la.norm(result_lpot) assert la.norm(result_mat - result_lpot) < eps assert la.norm(blk - mat[tgtindices, srcindices]) < eps +# }}} + # You can test individual routines by typing -# $ python test_kernels.py "test_p2p(cl.create_some_context)" +# $ python test_matrixgen.py 'test_p2p_direct(_acf, True, 1.0, 1, visualize=True)' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From 432db1e7713a5e884d7cdefb4c085bf7b201bfd3 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:47:35 +0300 Subject: [PATCH 023/335] port test_misc to arraycontext --- test/test_misc.py | 124 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 91 insertions(+), 33 deletions(-) diff --git a/test/test_misc.py b/test/test_misc.py index 9aeb7f124..5032e2fc9 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -20,6 +20,7 @@ THE SOFTWARE. """ +import pytest import sys from dataclasses import dataclass from typing import Any, Callable @@ -27,19 +28,33 @@ import numpy as np import numpy.linalg as la +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) + import sumpy.toys as t import sumpy.symbolic as sym -import pytest -import pyopencl as cl # noqa: F401 -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) - -from sumpy.kernel import (LaplaceKernel, HelmholtzKernel, - BiharmonicKernel, YukawaKernel, StokesletKernel, StressletKernel, - ElasticityKernel, LineOfCompressionKernel, ExpressionKernel) -from sumpy.expansion.diff_op import (make_identity_diff_op, gradient, - divergence, laplacian, concat, as_scalar_pde, curl, diff) +from sumpy.kernel import ( + LaplaceKernel, + HelmholtzKernel, + BiharmonicKernel, + YukawaKernel, + StokesletKernel, + StressletKernel, + ElasticityKernel, + LineOfCompressionKernel, + ExpressionKernel) +from sumpy.expansion.diff_op import ( + make_identity_diff_op, concat, as_scalar_pde, diff, + gradient, divergence, laplacian, curl) + +import logging +logger = logging.getLogger(__name__) + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) # {{{ pde check for kernels @@ -93,15 +108,17 @@ def nderivs(self): KernelInfo(LineOfCompressionKernel(3, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 1), mu=5, nu=0.2), ]) -def test_pde_check_kernels(ctx_factory, knl_info, order=5): +def test_pde_check_kernels(actx_factory, knl_info, order=5): + actx = actx_factory() + dim = knl_info.kernel.dim - tctx = t.ToyContext(ctx_factory(), knl_info.kernel, + tctx = t.ToyContext(actx.context, knl_info.kernel, extra_source_kwargs=knl_info.extra_kwargs) - np.random.seed(17) + rng = np.random.default_rng(42) pt_src = t.PointSources( tctx, - np.random.rand(dim, 50) - 0.5, + rng.random(size=(dim, 50)) - 0.5, np.ones(50)) from pytools.convergence import EOCRecorder @@ -117,12 +134,14 @@ def test_pde_check_kernels(ctx_factory, knl_info, order=5): err = la.norm(pde) eoc_rec.add_data_point(h, err) - print(eoc_rec) + logger.info("eoc:\n%s", eoc_rec) assert eoc_rec.order_estimate() > order - knl_info.nderivs + 1 - 0.1 # }}} +# {{{ test_pde_check + @pytest.mark.parametrize("dim", [1, 2, 3]) def test_pde_check(dim, order=4): from sumpy.point_calculus import CalculusPatch @@ -138,15 +157,19 @@ def test_pde_check(dim, order=4): err = la.norm(df_num-df_true) eoc_rec.add_data_point(h, err) - print(eoc_rec) + logger.info("eoc:\n%s", eoc_rec) assert eoc_rec.order_estimate() > order-2-0.1 +# }}} + +# {{{ test_order_finder + +@dataclass(frozen=True) class FakeTree: - def __init__(self, dimensions, root_extent, stick_out_factor): - self.dimensions = dimensions - self.root_extent = root_extent - self.stick_out_factor = stick_out_factor + dimensions: int + root_extent: float + stick_out_factor: float @pytest.mark.parametrize("knl", [ @@ -161,7 +184,7 @@ def test_order_finder(knl): orders = [ ofind(knl, frozenset([("k", 5)]), tree, level) for level in range(30)] - print(orders) + logger.info("orders: %s", orders) # Order should not increase with level assert (np.diff(orders) <= 0).all() @@ -180,11 +203,13 @@ def test_fmmlib_order_finder(knl): orders = [ ofind(knl, frozenset([("k", 5)]), tree, level) for level in range(30)] - print(orders) + logger.info("orders: %s", orders) # Order should not increase with level assert (np.diff(orders) <= 0).all() +# }}} + # {{{ expansion toys p2e2e2p test cases @@ -193,7 +218,7 @@ def approx_convergence_factor(orders, errors): return np.exp(poly[0]) -@dataclass +@dataclass(frozen=True) class P2E2E2PTestCase: source: np.ndarray target: np.ndarray @@ -243,12 +268,14 @@ def dim(self): # }}} +# {{{ test_toy_p2e2e2p + ORDERS_P2E2E2P = (3, 4, 5) RTOL_P2E2E2P = 1e-2 @pytest.mark.parametrize("case", P2E2E2P_TEST_CASES) -def test_toy_p2e2e2p(ctx_factory, case): +def test_toy_p2e2e2p(actx_factory, case): dim = case.dim src = case.source.reshape(dim, -1) @@ -269,8 +296,8 @@ def test_toy_p2e2e2p(ctx_factory, case): from sumpy.expansion import VolumeTaylorExpansionFactory - cl_ctx = ctx_factory() - ctx = t.ToyContext(cl_ctx, + actx = actx_factory() + ctx = t.ToyContext(actx.context, LaplaceKernel(dim), expansion_factory=VolumeTaylorExpansionFactory()) @@ -289,6 +316,10 @@ def test_toy_p2e2e2p(ctx_factory, case): assert conv_factor <= min(1, case_conv_factor * (1 + RTOL_P2E2E2P)), \ (conv_factor, case_conv_factor * (1 + RTOL_P2E2E2P)) +# }}} + + +# {{{ test_cse_matvec def test_cse_matvec(): from sumpy.expansion import CSEMatVecOperator @@ -309,16 +340,21 @@ def test_cse_matvec(): op = CSEMatVecOperator(input_coeffs, output_coeffs, shape=(4, 2)) m = np.array([[2, 0], [6, 0], [0, 1], [30, 16]]) - vec = np.random.random(2) + rng = np.random.default_rng(42) + vec = rng.random(2) expected_result = m @ vec actual_result = op.matvec(vec) assert np.allclose(expected_result, actual_result) - vec = np.random.random(4) + vec = rng.random(4) expected_result = m.T @ vec actual_result = op.transpose_matvec(vec) assert np.allclose(expected_result, actual_result) +# }}} + + +# {{{ test_diff_op_stokes def test_diff_op_stokes(): from sumpy.symbolic import symbols, Function @@ -341,6 +377,10 @@ def test_diff_op_stokes(): assert expected_output == actual_output +# }}} + + +# {{{ test_as_scalar_pde_stokes def test_as_scalar_pde_stokes(): diff_op = make_identity_diff_op(3, 4) @@ -350,13 +390,17 @@ def test_as_scalar_pde_stokes(): # velocity components in Stokes should satisfy Biharmonic for i in range(3): - print(as_scalar_pde(pde, i)) - print(laplacian(laplacian(u[i]))) + logger.info("pde\n%s", as_scalar_pde(pde, i)) + logger.info("\n%s", laplacian(laplacian(u[i]))) assert as_scalar_pde(pde, i) == laplacian(laplacian(u[0])) # pressure should satisfy Laplace assert as_scalar_pde(pde, 3) == laplacian(u[0]) +# }}} + + +# {{{ test_as_scalar_pde_maxwell def test_as_scalar_pde_maxwell(): from sumpy.symbolic import symbols @@ -374,6 +418,10 @@ def test_as_scalar_pde_maxwell(): assert as_scalar_pde(pde, i) == \ laplacian(op[0]) - mu*epsilon*diff(diff(op[0], t), t) +# }}} + + +# {{{ test_as_scalar_pde_elasticity def test_as_scalar_pde_elasticity(): @@ -408,6 +456,10 @@ def test_as_scalar_pde_elasticity(): assert scalar_pde == laplacian(laplacian(diff_op[0])) assert scalar_pde.order == 4 +# }}} + + +# {{{ test_elasticity_new def test_elasticity_new(): from pickle import dumps, loads @@ -424,6 +476,10 @@ def test_elasticity_new(): assert not isinstance(knl, StokesletKernel) assert loads(dumps(knl)) == knl +# }}} + + +# {{{ test_weird_kernel w = make_identity_diff_op(2) @@ -457,15 +513,17 @@ def get_pde_as_diff_op(self): assert fft_size == order +# }}} + # You can test individual routines by typing -# $ python test_misc.py 'test_p2p(cl.create_some_context)' +# $ python test_misc.py 'test_pde_check_kernels(_acf, +# KernelInfo(HelmholtzKernel(2), k=5), order=5)' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From 308b988171f93f44781ed7f943cefbd0a8871c82 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:54:36 +0300 Subject: [PATCH 024/335] port test_qbx to arraycontext --- test/test_qbx.py | 78 +++++++++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/test/test_qbx.py b/test/test_qbx.py index 379ef0e22..c2b61c3b5 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -20,33 +20,41 @@ THE SOFTWARE. """ -import numpy as np +import pytest import sys -import pyopencl as cl -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) +import numpy as np + +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) + +from sumpy.expansion.local import ( + LineTaylorLocalExpansion, + VolumeTaylorLocalExpansion) import logging logger = logging.getLogger(__name__) -from sumpy.expansion.local import ( - LineTaylorLocalExpansion, VolumeTaylorLocalExpansion) -import pytest +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +# {{{ test_direct_qbx_vs_eigval @pytest.mark.parametrize("expn_class", [ LineTaylorLocalExpansion, VolumeTaylorLocalExpansion, ]) -def test_direct_qbx_vs_eigval(ctx_factory, expn_class): +def test_direct_qbx_vs_eigval(actx_factory, expn_class, visualize=False): """This evaluates a single layer potential on a circle using a known eigenvalue/eigenvector combination. """ + if visualize: + logging.basicConfig(level=logging.INFO) - logging.basicConfig(level=logging.INFO) - - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() from sumpy.kernel import LaplaceKernel lknl = LaplaceKernel(2) @@ -55,8 +63,10 @@ def test_direct_qbx_vs_eigval(ctx_factory, expn_class): from sumpy.qbx import LayerPotential - lpot = LayerPotential(ctx, expansion=expn_class(lknl, order), - target_kernels=(lknl,), source_kernels=(lknl,)) + lpot = LayerPotential(actx.context, + expansion=expn_class(lknl, order), + target_kernels=(lknl,), + source_kernels=(lknl,)) mode_nr = 25 @@ -85,30 +95,36 @@ def test_direct_qbx_vs_eigval(ctx_factory, expn_class): expansion_radii = np.ones(n) * radius strengths = (sigma * h,) - evt, (result_qbx,) = lpot(queue, targets, sources, centers, strengths, + evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, expansion_radii=expansion_radii) eocrec.add_data_point(h, np.max(np.abs(result_ref - result_qbx))) - print(eocrec) + logger.info("eoc:\n%s", eocrec) slack = 1.5 assert eocrec.order_estimate() > order - slack +# }}} + + +# {{{ test_direct_qbx_vs_eigval_with_tgt_deriv @pytest.mark.parametrize("expn_class", [ LineTaylorLocalExpansion, VolumeTaylorLocalExpansion, ]) -def test_direct_qbx_vs_eigval_with_tgt_deriv(ctx_factory, expn_class): +def test_direct_qbx_vs_eigval_with_tgt_deriv( + actx_factory, expn_class, visualize=False): """This evaluates a single layer potential on a circle using a known eigenvalue/eigenvector combination. """ + if visualize: + logging.basicConfig(level=logging.INFO) - logging.basicConfig(level=logging.INFO) - - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) + actx = actx_factory() from sumpy.kernel import LaplaceKernel, AxisTargetDerivative lknl = LaplaceKernel(2) @@ -117,9 +133,9 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv(ctx_factory, expn_class): from sumpy.qbx import LayerPotential - lpot_dx = LayerPotential(ctx, expansion=expn_class(lknl, order), + lpot_dx = LayerPotential(actx.context, expansion=expn_class(lknl, order), target_kernels=(AxisTargetDerivative(0, lknl),), source_kernels=(lknl,)) - lpot_dy = LayerPotential(ctx, expansion=expn_class(lknl, order), + lpot_dy = LayerPotential(actx.context, expansion=expn_class(lknl, order), target_kernels=(AxisTargetDerivative(1, lknl),), source_kernels=(lknl,)) mode_nr = 15 @@ -151,9 +167,11 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv(ctx_factory, expn_class): strengths = (sigma * h,) - evt, (result_qbx_dx,) = lpot_dx(queue, targets, sources, centers, strengths, + evt, (result_qbx_dx,) = lpot_dx(actx.queue, + targets, sources, centers, strengths, expansion_radii=expansion_radii) - evt, (result_qbx_dy,) = lpot_dy(queue, targets, sources, centers, strengths, + evt, (result_qbx_dy,) = lpot_dy(actx.queue, + targets, sources, centers, strengths, expansion_radii=expansion_radii) normals = unit_circle @@ -162,17 +180,21 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv(ctx_factory, expn_class): eocrec.add_data_point(h, np.max(np.abs(result_ref - result_qbx))) if expn_class is not LineTaylorLocalExpansion: - print(eocrec) + logger.info("eoc:\n%s", eocrec) slack = 1.5 assert eocrec.order_estimate() > order - slack +# }}} + + +# You can test individual routines by typing +# $ python test_qbx.py 'test_direct_qbx_vs_eigval(_acf, LineTaylorLocalExpansion)' if __name__ == "__main__": if len(sys.argv) > 1: exec(sys.argv[1]) else: - from pytest import main - main([__file__]) + pytest.main([__file__]) # vim: fdm=marker From c60c926e5ea8e222f28db66b8d29c06d7b0bd41a Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 20:54:42 +0300 Subject: [PATCH 025/335] port test_tools to arraycontext --- test/test_tools.py | 71 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 53 insertions(+), 18 deletions(-) diff --git a/test/test_tools.py b/test/test_tools.py index 08a90689a..09c88b78e 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -20,26 +20,38 @@ THE SOFTWARE. """ -import logging -logger = logging.getLogger(__name__) +import pytest +import sys -import sumpy.symbolic as sym -from sumpy.tools import (fft_toeplitz_upper_triangular, - matvec_toeplitz_upper_triangular, loopy_fft, fft) import numpy as np -import pyopencl as cl -import pyopencl.array as cla -from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) +from arraycontext import pytest_generate_tests_for_array_contexts +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, _acf) -import pytest +import sumpy.symbolic as sym +from sumpy.tools import ( + fft_toeplitz_upper_triangular, + matvec_toeplitz_upper_triangular, + loopy_fft, + fft) +import logging +logger = logging.getLogger(__name__) + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +# {{{ test_matvec_fft def test_matvec_fft(): k = 5 - v = np.random.rand(k) - x = np.random.rand(k) + + rng = np.random.default_rng(42) + v = rng.random(k) + x = rng.random(k) fft = fft_toeplitz_upper_triangular(v, x) matvec = matvec_toeplitz_upper_triangular(v, x) @@ -47,6 +59,10 @@ def test_matvec_fft(): for i in range(k): assert abs(fft[i] - matvec[i]) < 1e-14 +# }}} + + +# {{{ test_matvec_fft_small_floats def test_matvec_fft_small_floats(): k = 5 @@ -60,15 +76,34 @@ def test_matvec_fft_small_floats(): continue assert abs(f) > 1e-10 +# }}} + + +# {{{ test_fft @pytest.mark.parametrize("size", [1, 2, 7, 10, 30, 210]) -def test_fft(ctx_factory, size): - ctx = ctx_factory() - queue = cl.CommandQueue(ctx) +def test_fft(actx_factory, size): + actx = actx_factory() + inp = np.arange(size, dtype=np.complex64) - inp_dev = cla.to_device(queue, inp) + inp_dev = actx.from_numpy(inp) out = fft(inp) fft_func = loopy_fft(inp.shape, inverse=False, complex_dtype=inp.dtype.type) - evt, (out_dev,) = fft_func(queue, y=inp_dev) - assert np.allclose(out_dev.get(), out) + evt, (out_dev,) = fft_func(actx.queue, y=inp_dev) + + assert np.allclose(actx.to_numpy(out_dev), out) + +# }}} + + +# You can test individual routines by typing +# $ python test_tools.py 'test_fft(_acf, 30)' + +if __name__ == "__main__": + if len(sys.argv) > 1: + exec(sys.argv[1]) + else: + pytest.main([__file__]) + +# vim: fdm=marker From cd7b54f8b553cf635c29fa86e8aa31c62d5831fb Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 20 Aug 2022 21:22:05 +0300 Subject: [PATCH 026/335] port examples to arraycontext --- examples/curve-pot.py | 82 ++++++++++++++++++++-------------- examples/expansion-toys.py | 35 ++++++++++----- examples/sym-exp-complexity.py | 19 +++++--- 3 files changed, 85 insertions(+), 51 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 810990ad1..8d1a91a21 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -1,16 +1,22 @@ -import pyopencl as cl import numpy as np import numpy.linalg as la +import pyopencl as cl + try: import matplotlib.pyplot as plt -except ModuleNotFoundError: - plt = None + USE_MATPLOTLIB = True +except ImportError: + USE_MATPLOTLIB = False try: from mayavi import mlab -except ModuleNotFoundError: - mlab = None + USE_MAYAVI = True +except ImportError: + USE_MAYAVI = False + +import logging +logging.basicConfig(level=logging.INFO) def process_kernel(knl, what_operator): @@ -45,17 +51,16 @@ def draw_pot_figure(aspect_ratio, ovsmp_center_exp=0.66, force_center_side=None): - import logging - logging.basicConfig(level=logging.INFO) - if novsmp is None: novsmp = 4*nsrc if what_operator_lpot is None: what_operator_lpot = what_operator + from sumpy.array_context import PyOpenCLArrayContext ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) + actx = PyOpenCLArrayContext(queue, force_device_scalars=True) # {{{ make plot targets @@ -86,7 +91,7 @@ def draw_pot_figure(aspect_ratio, knl_kwargs = {} vol_source_knl, vol_target_knl = process_kernel(knl, what_operator) - p2p = P2P(ctx, source_kernels=(vol_source_knl,), + p2p = P2P(actx.context, source_kernels=(vol_source_knl,), target_kernels=(vol_target_knl,), exclude_self=False, value_dtypes=np.complex128) @@ -94,8 +99,10 @@ def draw_pot_figure(aspect_ratio, lpot_source_knl, lpot_target_knl = process_kernel(knl, what_operator_lpot) from sumpy.qbx import LayerPotential - lpot = LayerPotential(ctx, expansion=expn_class(knl, order=order), - source_kernels=(lpot_source_knl,), target_kernels=(lpot_target_knl,), + lpot = LayerPotential(actx.context, + expansion=expn_class(knl, order=order), + source_kernels=(lpot_source_knl,), + target_kernels=(lpot_target_knl,), value_dtypes=np.complex128) # }}} @@ -142,8 +149,9 @@ def map_to_curve(t): + center_side[:, np.newaxis] * center_dist*native_curve.normal) - #native_curve.plot() - #plt.show() + if 0: + native_curve.plot() + plt.show() volpot_kwargs = knl_kwargs.copy() lpot_kwargs = knl_kwargs.copy() @@ -169,7 +177,9 @@ def map_to_curve(t): def apply_lpot(x): xovsmp = np.dot(fim, x) - evt, (y,) = lpot(queue, native_curve.pos, ovsmp_curve.pos, + evt, (y,) = lpot(actx.queue, + native_curve.pos, + ovsmp_curve.pos, centers, [xovsmp * ovsmp_curve.speed * ovsmp_weights], expansion_radii=np.ones(centers.shape[1]), @@ -191,10 +201,14 @@ def apply_lpot(x): mode_nr = 0 density = np.cos(mode_nr*2*np.pi*native_t).astype(np.complex128) ovsmp_density = np.cos(mode_nr*2*np.pi*ovsmp_t).astype(np.complex128) - evt, (vol_pot,) = p2p(queue, fp.points, native_curve.pos, + evt, (vol_pot,) = p2p(actx.queue, + fp.points, + native_curve.pos, [native_curve.speed*native_weights*density], **volpot_kwargs) - evt, (curve_pot,) = lpot(queue, native_curve.pos, ovsmp_curve.pos, + evt, (curve_pot,) = lpot(actx.queue, + native_curve.pos, + ovsmp_curve.pos, centers, [ovsmp_density * ovsmp_curve.speed * ovsmp_weights], expansion_radii=np.ones(centers.shape[1]), @@ -202,7 +216,7 @@ def apply_lpot(x): # }}} - if 0: + if USE_MATPLOTLIB: # {{{ plot on-surface potential in 2D plt.plot(curve_pot, label="pot") @@ -216,7 +230,7 @@ def apply_lpot(x): ("potential", vol_pot.real) ]) - if 0: + if USE_MATPLOTLIB: # {{{ 2D false-color plot plt.clf() @@ -230,12 +244,8 @@ def apply_lpot(x): # close the curve plt.plot(src[-1::-len(src)+1, 0], src[-1::-len(src)+1, 1], "o-k") - #plt.gca().set_aspect("equal", "datalim") cb = plt.colorbar(shrink=0.9) cb.set_label(r"$\log_{10}(\mathdefault{Error})$") - #from matplotlib.ticker import NullFormatter - #plt.gca().xaxis.set_major_formatter(NullFormatter()) - #plt.gca().yaxis.set_major_formatter(NullFormatter()) fp.set_matplotlib_limits() # }}} @@ -261,7 +271,7 @@ def apply_lpot(x): plotval_vol[outlier_flag] = sum( nb[outlier_flag] for nb in neighbors)/len(neighbors) - if mlab is not None: + if USE_MAYAVI: fp.show_scalar_in_mayavi(scale*plotval_vol, max_val=1) mlab.colorbar() if 1: @@ -275,17 +285,23 @@ def apply_lpot(x): if __name__ == "__main__": - draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=(35+4j)*0.3, + draw_pot_figure( + aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=(35+4j)*0.3, what_operator="D", what_operator_lpot="D", force_center_side=1) + if USE_MATPLOTLIB: + plt.savefig("eigvals-ext-nsrc100-novsmp100.pdf") + plt.clf() -# plt.savefig("eigvals-ext-nsrc100-novsmp100.pdf") - #plt.clf() - #draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=0, - # what_operator="D", what_operator_lpot="D", force_center_side=-1) - #plt.savefig("eigvals-int-nsrc100-novsmp100.pdf") - #plt.clf() - #draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=200, helmholtz_k=0, - # what_operator="D", what_operator_lpot="D", force_center_side=-1) - #plt.savefig("eigvals-int-nsrc100-novsmp200.pdf") + # draw_pot_figure( + # aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=0, + # what_operator="D", what_operator_lpot="D", force_center_side=-1) + # plt.savefig("eigvals-int-nsrc100-novsmp100.pdf") + # plt.clf() + + # draw_pot_figure( + # aspect_ratio=1, nsrc=100, novsmp=200, helmholtz_k=0, + # what_operator="D", what_operator_lpot="D", force_center_side=-1) + # plt.savefig("eigvals-int-nsrc100-novsmp200.pdf") + # plt.clf() # vim: fdm=marker diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index e774b17ae..48647d0ee 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -1,21 +1,32 @@ +import numpy as np + import pyopencl as cl + import sumpy.toys as t -import numpy as np from sumpy.visualization import FieldPlotter +from sumpy.kernel import ( # noqa: F401 + YukawaKernel, + HelmholtzKernel, + LaplaceKernel) + try: import matplotlib.pyplot as plt -except ModuleNotFoundError: - plt = None + USE_MATPLOTLIB = True +except ImportError: + USE_MATPLOTLIB = False def main(): - from sumpy.kernel import ( # noqa: F401 - YukawaKernel, HelmholtzKernel, LaplaceKernel) + from sumpy.array_context import PyOpenCLArrayContext + ctx = cl.create_some_context() + queue = cl.CommandQueue(ctx) + actx = PyOpenCLArrayContext(queue, force_device_scalars=True) + tctx = t.ToyContext( - cl.create_some_context(), - #LaplaceKernel(2), + actx.context, + # LaplaceKernel(2), YukawaKernel(2), extra_kernel_kwargs={"lam": 5}, - #HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3}, + # HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3}, ) pt_src = t.PointSources( @@ -25,7 +36,7 @@ def main(): fp = FieldPlotter([3, 0], extent=8) - if 0 and plt is not None: + if USE_MATPLOTLIB: t.logplot(fp, pt_src, cmap="jet") plt.colorbar() plt.show() @@ -35,12 +46,12 @@ def main(): lexp = t.local_expand(mexp, [3, 0]) lexp2 = t.local_expand(lexp, [3, 1], 3) - #diff = mexp - pt_src - #diff = mexp2 - pt_src + # diff = mexp - pt_src + # diff = mexp2 - pt_src diff = lexp2 - pt_src print(t.l_inf(diff, 1.2, center=lexp2.center)) - if 1 and plt is not None: + if USE_MATPLOTLIB: t.logplot(fp, diff, cmap="jet", vmin=-3, vmax=0) plt.colorbar() plt.show() diff --git a/examples/sym-exp-complexity.py b/examples/sym-exp-complexity.py index ae91a932c..779bfc360 100644 --- a/examples/sym-exp-complexity.py +++ b/examples/sym-exp-complexity.py @@ -1,6 +1,8 @@ import numpy as np -import pyopencl as cl import loopy as lp + +import pyopencl as cl + from sumpy.kernel import LaplaceKernel, HelmholtzKernel from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, @@ -9,14 +11,19 @@ LinearPDEConformingVolumeTaylorMultipoleExpansion, ) from sumpy.e2e import E2EFromCSR + try: import matplotlib.pyplot as plt -except ModuleNotFoundError: - plt = None + USE_MATPLOTLIB = True +except ImportError: + USE_MATPLOTLIB = False def find_flops(): + from sumpy.array_context import PyOpenCLArrayContext ctx = cl.create_some_context() + queue = cl.CommandQueue(ctx) + actx = PyOpenCLArrayContext(queue, force_device_scalars=True) if 0: knl = LaplaceKernel(2) @@ -35,7 +42,7 @@ def find_flops(): print(order) m_expn = m_expn_cls(knl, order) l_expn = l_expn_cls(knl, order) - m2l = E2EFromCSR(ctx, m_expn, l_expn) + m2l = E2EFromCSR(actx.context, m_expn, l_expn) loopy_knl = m2l.get_kernel() loopy_knl = lp.add_and_infer_dtypes( @@ -74,7 +81,7 @@ def plot_flops(): flops = [45, 194, 474, 931, 1650, 2632, 3925, 5591, 7706, 10272] filename = "helmholtz-m2l-complexity-2d.pdf" - if plt is not None: + if USE_MATPLOTLIB: plt.rc("font", size=16) plt.title(case) plt.ylabel("Flop count") @@ -86,5 +93,5 @@ def plot_flops(): if __name__ == "__main__": - #find_flops() + # find_flops() plot_flops() From 49ff8aea21ee9c2773ba8cd303f8894586f6144d Mon Sep 17 00:00:00 2001 From: Hao Gao Date: Sun, 21 Aug 2022 21:48:27 -0700 Subject: [PATCH 027/335] Add DistributedSumpyExpansionWrangler --- .test-conda-env-py3.yml | 1 + sumpy/distributed.py | 98 ++++++++++++++++++++ test/test_distributed.py | 187 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 286 insertions(+) create mode 100644 sumpy/distributed.py create mode 100644 test/test_distributed.py diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index 575e02e2a..fa9b319dc 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -16,3 +16,4 @@ dependencies: - pyfmmlib - pyrsistent - pyvkfft +- mpi4py diff --git a/sumpy/distributed.py b/sumpy/distributed.py new file mode 100644 index 000000000..1707e5e6a --- /dev/null +++ b/sumpy/distributed.py @@ -0,0 +1,98 @@ +__copyright__ = "Copyright (C) 2022 Hao Gao" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from boxtree.distributed.calculation import DistributedExpansionWrangler +from sumpy.fmm import SumpyExpansionWrangler +import pyopencl as cl + + +class DistributedSumpyExpansionWrangler( + DistributedExpansionWrangler, SumpyExpansionWrangler): + def __init__( + self, context, comm, tree_indep, local_traversal, global_traversal, + dtype, fmm_level_to_order, communicate_mpoles_via_allreduce=False, + **kwarg): + DistributedExpansionWrangler.__init__( + self, context, comm, global_traversal, True, + communicate_mpoles_via_allreduce=communicate_mpoles_via_allreduce) + SumpyExpansionWrangler.__init__( + self, tree_indep, local_traversal, dtype, fmm_level_to_order, **kwarg) + + def distribute_source_weights(self, src_weight_vecs, src_idx_all_ranks): + src_weight_vecs_host = [src_weight.get() for src_weight in src_weight_vecs] + + local_src_weight_vecs_host = super().distribute_source_weights( + src_weight_vecs_host, src_idx_all_ranks) + + local_src_weight_vecs_device = [ + cl.array.to_device(src_weight.queue, local_src_weight) + for local_src_weight, src_weight in + zip(local_src_weight_vecs_host, src_weight_vecs)] + + return local_src_weight_vecs_device + + def gather_potential_results(self, potentials, tgt_idx_all_ranks): + mpi_rank = self.comm.Get_rank() + + potentials_host_vec = [potentials_dev.get() for potentials_dev in potentials] + + gathered_potentials_host_vec = [] + for potentials_host in potentials_host_vec: + gathered_potentials_host_vec.append( + super().gather_potential_results(potentials_host, tgt_idx_all_ranks)) + + if mpi_rank == 0: + from pytools.obj_array import make_obj_array + return make_obj_array([ + cl.array.to_device(potentials_dev.queue, gathered_potentials_host) + for gathered_potentials_host, potentials_dev in + zip(gathered_potentials_host_vec, potentials)]) + else: + return None + + def reorder_sources(self, source_array): + if self.comm.Get_rank() == 0: + return source_array.with_queue(source_array.queue)[ + self.global_traversal.tree.user_source_ids] + else: + return source_array + + def reorder_potentials(self, potentials): + if self.comm.Get_rank() == 0: + from pytools.obj_array import obj_array_vectorize + import numpy as np + assert ( + isinstance(potentials, np.ndarray) + and potentials.dtype.char == "O") + + def reorder(x): + return x[self.global_traversal.tree.sorted_target_ids] + + return obj_array_vectorize(reorder, potentials) + else: + return None + + def communicate_mpoles(self, mpole_exps, return_stats=False): + mpole_exps_host = mpole_exps.get() + stats = super().communicate_mpoles(mpole_exps_host, return_stats) + mpole_exps[:] = mpole_exps_host + return stats diff --git a/test/test_distributed.py b/test/test_distributed.py new file mode 100644 index 000000000..dd21b224f --- /dev/null +++ b/test/test_distributed.py @@ -0,0 +1,187 @@ +__copyright__ = "Copyright (C) 2022 Hao Gao" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +import os +from functools import partial +import pyopencl as cl +import numpy as np +import pytest + +# Note: Do not import mpi4py.MPI object at the module level, because OpenMPI does not +# support recursive invocations. + + +def set_cache_dir(mpirank): + """Make each rank use a differnt cache location to avoid conflict.""" + import platformdirs + cache_dir = platformdirs.user_cache_dir("sumpy", "sumpy") + + # FIXME: should clean up this directory after running the tests + os.environ["XDG_CACHE_HOME"] = os.path.join(cache_dir, str(mpirank)) + + +# {{{ _test_against_single_rank + +def _test_against_single_rank( + dims, nsources, ntargets, dtype, communicate_mpoles_via_allreduce=False): + from mpi4py import MPI + + # Get the current rank + comm = MPI.COMM_WORLD + mpi_rank = comm.Get_rank() + set_cache_dir(mpi_rank) + + # Configure array context + cl_context = cl.create_some_context() + queue = cl.CommandQueue(cl_context) + + def fmm_level_to_order(base_kernel, kernel_arg_set, tree, level): + return max(level, 3) + + from boxtree.traversal import FMMTraversalBuilder + traversal_builder = FMMTraversalBuilder(cl_context, well_sep_is_n_away=2) + + from sumpy.kernel import LaplaceKernel + from sumpy.expansion import DefaultExpansionFactory + kernel = LaplaceKernel(dims) + expansion_factory = DefaultExpansionFactory() + local_expansion_factory = expansion_factory.get_local_expansion_class(kernel) + local_expansion_factory = partial(local_expansion_factory, kernel) + multipole_expansion_factory = \ + expansion_factory.get_multipole_expansion_class(kernel) + multipole_expansion_factory = partial(multipole_expansion_factory, kernel) + + from sumpy.fmm import SumpyTreeIndependentDataForWrangler + tree_indep = SumpyTreeIndependentDataForWrangler( + cl_context, multipole_expansion_factory, local_expansion_factory, [kernel]) + + global_tree_dev = None + sources_weights = cl.array.empty(queue, 0, dtype=dtype) + + if mpi_rank == 0: + # Generate random particles and source weights + from boxtree.tools import make_normal_particle_array as p_normal + sources = p_normal(queue, nsources, dims, dtype, seed=15) + targets = p_normal(queue, ntargets, dims, dtype, seed=18) + + # FIXME: Use arraycontext instead of raw PyOpenCL arrays + from pyopencl.clrandom import PhiloxGenerator + rng = PhiloxGenerator(cl_context, seed=20) + sources_weights = rng.uniform(queue, nsources, dtype=np.float64) + + rng = PhiloxGenerator(cl_context, seed=22) + target_radii = rng.uniform( + queue, ntargets, a=0, b=0.05, dtype=np.float64) + + # Build the tree and interaction lists + from boxtree import TreeBuilder + tb = TreeBuilder(cl_context) + global_tree_dev, _ = tb( + queue, sources, targets=targets, target_radii=target_radii, + stick_out_factor=0.25, max_particles_in_box=30, debug=True) + + global_trav_dev, _ = traversal_builder(queue, global_tree_dev, debug=True) + + from sumpy.fmm import SumpyExpansionWrangler + wrangler = SumpyExpansionWrangler(tree_indep, global_trav_dev, dtype, + fmm_level_to_order) + + # Compute FMM with one MPI rank + from boxtree.fmm import drive_fmm + shmem_potential = drive_fmm(wrangler, [sources_weights]) + + # Compute FMM using the distributed implementation + + def wrangler_factory(local_traversal, global_traversal): + from sumpy.distributed import DistributedSumpyExpansionWrangler + return DistributedSumpyExpansionWrangler( + cl_context, comm, tree_indep, local_traversal, global_traversal, dtype, + fmm_level_to_order, + communicate_mpoles_via_allreduce=communicate_mpoles_via_allreduce) + + from boxtree.distributed import DistributedFMMRunner + distribued_fmm_info = DistributedFMMRunner( + queue, global_tree_dev, traversal_builder, wrangler_factory, comm=comm) + + timing_data = {} + distributed_potential = distribued_fmm_info.drive_dfmm( + [sources_weights], timing_data=timing_data) + assert timing_data + + if mpi_rank == 0: + assert shmem_potential.shape == (1,) + assert distributed_potential.shape == (1,) + + shmem_potential = shmem_potential[0].get() + distributed_potential = distributed_potential[0].get() + + error = (np.linalg.norm(distributed_potential - shmem_potential, ord=np.inf) + / np.linalg.norm(shmem_potential, ord=np.inf)) + print(error) + assert error < 1e-14 + + +@pytest.mark.mpi +@pytest.mark.parametrize( + "num_processes, dims, nsources, ntargets, communicate_mpoles_via_allreduce", [ + (4, 3, 10000, 10000, True), + (4, 3, 10000, 10000, False) + ] +) +def test_against_single_rank( + num_processes, dims, nsources, ntargets, communicate_mpoles_via_allreduce): + pytest.importorskip("mpi4py") + + from boxtree.tools import run_mpi + run_mpi(__file__, num_processes, { + "PYTEST": "against_single_rank", + "dims": dims, + "nsources": nsources, + "ntargets": ntargets, + "OMP_NUM_THREADS": 1, + "communicate_mpoles_via_allreduce": communicate_mpoles_via_allreduce + }) + +# }}} + + +if __name__ == "__main__": + if "PYTEST" in os.environ: + if os.environ["PYTEST"] == "against_single_rank": + # Run "test_against_single_rank" test case + dims = int(os.environ["dims"]) + nsources = int(os.environ["nsources"]) + ntargets = int(os.environ["ntargets"]) + + from distutils.util import strtobool + communicate_mpoles_via_allreduce = bool( + strtobool(os.environ["communicate_mpoles_via_allreduce"])) + + _test_against_single_rank( + dims, nsources, ntargets, np.float64, + communicate_mpoles_via_allreduce) + else: + # You can test individual routines by typing + # $ python test_distributed.py + # 'test_against_single_rank(4, 3, 10000, 10000, False)' + import sys + exec(sys.argv[1]) From 4ad3d286e6c44875720180d7bc4ac585a250de5d Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 12 Sep 2022 09:25:59 -0500 Subject: [PATCH 028/335] Add some package dependencies of MPI-based tests --- .gitlab-ci.yml | 4 ++-- requirements.txt | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6a79583bc..52c76990a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,7 +26,7 @@ Pytest POCL: script: - export PY_EXE=python3 - export PYOPENCL_TEST=portable:pthread - - export EXTRA_INSTALL="pybind11 numpy mako" + - export EXTRA_INSTALL="pybind11 numpy mako mpi4py" - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh - ". ./build-and-test-py-project.sh" tags: @@ -43,7 +43,7 @@ Pytest Titan V: script: - py_version=3 - export PYOPENCL_TEST=nvi:titan - - EXTRA_INSTALL="pybind11 numpy mako" + - EXTRA_INSTALL="pybind11 numpy mako mpi4py" - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh - ". ./build-and-test-py-project.sh" tags: diff --git a/requirements.txt b/requirements.txt index ff9ca871b..da6a8fd21 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,10 @@ numpy sympy pyrsistent pyvkfft + +# used in mpi-based tests +platformdirs + git+https://github.com/inducer/pytools.git#egg=pytools git+https://github.com/inducer/pymbolic.git#egg=pymbolic git+https://github.com/inducer/islpy.git#egg=islpy From 2b3de3812e3f14cf3729bfefb59b193e315f00dd Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Sep 2022 17:32:30 -0500 Subject: [PATCH 029/335] Add TargetPointMultiplier to docs (#141) --- sumpy/kernel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 05efd4bb9..ba7282c03 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -77,6 +77,7 @@ .. autoclass:: AxisTargetDerivativeRemover .. autoclass:: SourceDerivativeRemover .. autoclass:: TargetDerivativeRemover +.. autoclass:: TargetPointMultiplier .. autoclass:: DerivativeCounter """ From 424cf43770717d0d9fa433bb3c94e10896db8fcf Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 15 Sep 2022 13:29:45 +0300 Subject: [PATCH 030/335] add missing mpi pytest marker --- setup.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup.cfg b/setup.cfg index 9c1172912..039e45f21 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,3 +7,7 @@ docstring-quotes = """ multiline-quotes = """ # enable-flake8-bugbear + +[tool:pytest] +markers = + mpi: test distributed FMM From 7a2b91c0a95d12facd68475d9717db4cb64fd15d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 15 Sep 2022 11:00:32 +0300 Subject: [PATCH 031/335] fix PMap.keys() returning a PSet that is not indexable --- sumpy/expansion/diff_op.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 8cb277a11..e6d540c5d 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -119,7 +119,8 @@ def total_dims(self): """ Returns the total number of dimensions including time """ - return len(self.eqs[0].keys()[0].mi) + did = next(iter(self.eqs[0].keys())) + return len(did.mi) def to_sym(self, fnames=None): from sumpy.symbolic import make_sym_vector, Function From 21671f2d7f2a25dd4f6f31a9c2a44ea6a317adb9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 22 Sep 2022 11:33:15 -0500 Subject: [PATCH 032/335] Fix src_boxes view --- sumpy/fmm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 30ca38384..00ac1f380 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -837,7 +837,7 @@ def multipole_to_local(self, tgt_base_ibox=target_level_start_ibox, target_boxes=target_boxes[start:stop], - src_box_starts=src_box_starts[start:stop], + src_box_starts=src_box_starts[start:stop+1], src_box_lists=src_box_lists, centers=self.tree.box_centers, From dfa0d9a4566412662d667a9b9eadcbffca4fe6fe Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 18 Sep 2022 10:35:55 +0300 Subject: [PATCH 033/335] fix obvious pylint errors and warnings --- .pylintrc-local.yml | 2 ++ examples/curve-pot.py | 8 +++---- sumpy/codegen.py | 2 -- sumpy/e2e.py | 9 +++++-- sumpy/e2p.py | 6 +++-- sumpy/expansion/level_to_order.py | 24 ++++++++++++------- sumpy/kernel.py | 14 +++++++++-- sumpy/p2e.py | 9 +++++-- sumpy/p2p.py | 6 +++-- sumpy/point_calculus.py | 6 +++-- sumpy/qbx.py | 6 +++-- sumpy/symbolic.py | 40 ++++++++++++++++--------------- sumpy/tools.py | 34 ++++++++++++++++++++++++-- sumpy/toys.py | 2 +- sumpy/visualization.py | 9 +++---- 15 files changed, 122 insertions(+), 55 deletions(-) create mode 100644 .pylintrc-local.yml diff --git a/.pylintrc-local.yml b/.pylintrc-local.yml new file mode 100644 index 000000000..d0095f0e8 --- /dev/null +++ b/.pylintrc-local.yml @@ -0,0 +1,2 @@ +- arg: extension-pkg-whitelist + val: mayavi diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 8d1a91a21..023bd7e19 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -25,11 +25,11 @@ def process_kernel(knl, what_operator): if what_operator == "S": pass elif what_operator == "S0": - from sumpy.kernel import TargetDerivative - target_knl = TargetDerivative(0, knl) + from sumpy.kernel import AxisTargetDerivative + target_knl = AxisTargetDerivative(0, knl) elif what_operator == "S1": - from sumpy.kernel import TargetDerivative - target_knl = TargetDerivative(1, knl) + from sumpy.kernel import AxisTargetDerivative + target_knl = AxisTargetDerivative(1, knl) elif what_operator == "D": from sumpy.kernel import DirectionalSourceDerivative source_knl = DirectionalSourceDerivative(knl) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index ef7e059a1..147dc4992 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -667,8 +667,6 @@ def to_loopy_insns(assignments, vector_names=frozenset(), pymbolic_expr_maps=(), bik = BigIntegerKiller() cmr = ComplexRewriter(complex_dtype) - cmb_mapper = combine_mappers(bdr, btog, vcr, pwr, ssg, bik, cmr) - if 0: # https://github.com/inducer/sumpy/pull/40#issuecomment-852635444 cmb_mapper = combine_mappers(bdr, btog, vcr, pwr, ssg, bik, cmr) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 253f85592..bcb02f126 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -26,7 +26,7 @@ import pymbolic from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import KernelCacheWrapper, to_complex_dtype +from sumpy.tools import KernelCacheMixin, to_complex_dtype from pytools import memoize_method import logging @@ -48,7 +48,9 @@ # {{{ translation base class -class E2EBase(KernelCacheWrapper): +class E2EBase(KernelCacheMixin): + default_name = "e2e" + def __init__(self, ctx, src_expansion, tgt_expansion, name=None, device=None): """ @@ -130,6 +132,9 @@ def get_cache_key(self): self.tgt_expansion, ) + def get_kernel(self): + raise NotImplementedError + def get_optimized_kernel(self): # FIXME knl = self.get_kernel() diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 0f0e1d166..34bdd5f52 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -24,7 +24,7 @@ import loopy as lp import sumpy.symbolic as sym -from sumpy.tools import KernelCacheWrapper +from sumpy.tools import KernelCacheMixin from loopy.version import MOST_RECENT_LANGUAGE_VERSION @@ -42,7 +42,9 @@ # {{{ E2P base class -class E2PBase(KernelCacheWrapper): +class E2PBase(KernelCacheMixin): + default_name = "e2p" + def __init__(self, ctx, expansion, kernels, name=None, device=None): """ diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 5d00c5b01..82db1aef2 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -48,38 +48,44 @@ def __init__(self, tol, extra_order=0): self.extra_order = extra_order def __call__(self, kernel, kernel_args, tree, level): - import pyfmmlib - + from pyfmmlib import ( # pylint: disable=no-name-in-module + l2dterms, l3dterms, h2dterms, h3dterms) from sumpy.kernel import LaplaceKernel, HelmholtzKernel - assert isinstance(kernel, (LaplaceKernel, HelmholtzKernel)) - assert tree.dimensions in (2, 3) - if isinstance(kernel, LaplaceKernel): if tree.dimensions == 2: - nterms, ier = pyfmmlib.l2dterms(self.tol) + nterms, ier = l2dterms(self.tol) if ier: raise RuntimeError(f"l2dterms returned error code '{ier}'") elif tree.dimensions == 3: - nterms, ier = pyfmmlib.l3dterms(self.tol) + nterms, ier = l3dterms(self.tol) if ier: raise RuntimeError(f"l3dterms returned error code '{ier}'") + else: + raise ValueError(f"unsupported dimension: {tree.dimensions}") + elif isinstance(kernel, HelmholtzKernel): helmholtz_k = dict(kernel_args)[kernel.helmholtz_k_name] size = tree.root_extent / 2 ** level if tree.dimensions == 2: - nterms, ier = pyfmmlib.h2dterms(size, helmholtz_k, self.tol) + nterms, ier = h2dterms(size, helmholtz_k, self.tol) if ier: raise RuntimeError(f"h2dterms returned error code '{ier}'") elif tree.dimensions == 3: - nterms, ier = pyfmmlib.h3dterms(size, helmholtz_k, self.tol) + nterms, ier = h3dterms(size, helmholtz_k, self.tol) if ier: raise RuntimeError(f"h3dterms returned error code '{ier}'") + else: + raise ValueError(f"unsupported dimension: {tree.dimensions}") + + else: + raise TypeError(f"unsupported kernel: '{type(kernel).__name__}'") + return nterms + self.extra_order diff --git a/sumpy/kernel.py b/sumpy/kernel.py index ba7282c03..70dd14e25 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -20,6 +20,7 @@ THE SOFTWARE. """ +from typing import ClassVar, Tuple import loopy as lp import numpy as np @@ -111,7 +112,7 @@ def __ne__(self, other): # Needed for python2 return not self == other - def __hash__(self): + def __hash__(self): # pylint: disable=invalid-hash-returned return (type(self), self.loopy_arg) @@ -136,6 +137,8 @@ class Kernel: .. automethod:: get_source_args """ + init_arg_names: ClassVar[Tuple[str, ...]] + def __init__(self, dim): self.dim = dim @@ -164,6 +167,9 @@ def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) key_builder.rec(key_hash, self.__getinitargs__()) + def __getinitargs__(self): + return (self.dim,) + def __getstate__(self): return self.__getinitargs__() @@ -1083,6 +1089,7 @@ def map_subscript(self, expr): class DirectionalDerivative(DerivativeBase): + directional_kind: ClassVar[str] init_arg_names = ("inner_kernel", "dir_vec_name") def __init__(self, inner_kernel, dir_vec_name=None): @@ -1307,6 +1314,9 @@ def rec(self, kernel): class KernelCombineMapper(KernelMapper): + def combine(self, values): + raise NotImplementedError + def map_difference_kernel(self, kernel): return self.combine([ self.rec(kernel.kernel_plus), @@ -1408,7 +1418,7 @@ def to_kernel_and_args(kernel_like): if not isinstance(kernel_like, Kernel): if kernel_like == 0: - return LaplaceKernel(), {} + return LaplaceKernel(None), {} elif isinstance(kernel_like, str): return HelmholtzKernel(None), {"k": var(kernel_like)} else: diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 177d0b586..21551aefa 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -24,7 +24,7 @@ import loopy as lp from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import KernelCacheWrapper, KernelComputation +from sumpy.tools import KernelCacheMixin, KernelComputation import logging logger = logging.getLogger(__name__) @@ -43,12 +43,14 @@ # {{{ P2E base class -class P2EBase(KernelComputation, KernelCacheWrapper): +class P2EBase(KernelCacheMixin, KernelComputation): """Common input processing for kernel computations. .. automethod:: __init__ """ + default_name = "p2e" + def __init__(self, ctx, expansion, kernels=None, name=None, device=None, strength_usage=None): """ @@ -122,6 +124,9 @@ def get_cache_key(self): return (type(self).__name__, self.name, self.expansion, tuple(self.source_kernels), tuple(self.strength_usage)) + def get_kernel(self): + raise NotImplementedError + def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = self.get_kernel() diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 83506a377..abd5df065 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -28,7 +28,7 @@ from loopy.version import MOST_RECENT_LANGUAGE_VERSION from sumpy.tools import ( - KernelComputation, KernelCacheWrapper, is_obj_array_like) + KernelComputation, KernelCacheMixin, is_obj_array_like) __doc__ = """ @@ -50,7 +50,9 @@ # {{{ p2p base class -class P2PBase(KernelComputation, KernelCacheWrapper): +class P2PBase(KernelCacheMixin, KernelComputation): + default_name = "p2p" + def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, value_dtypes=None, name=None, device=None, source_kernels=None): """ diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index b80ab51f0..2e17c41a1 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -120,7 +120,7 @@ def basis(self): """ from pytools import indices_in_shape - from scipy.special import eval_chebyt + from scipy.special import eval_chebyt # pylint: disable=no-name-in-module def eval_basis(ind, x): result = 1 @@ -240,8 +240,10 @@ def eval_at_center(self, f_values): :returns: a scalar. """ f_values = f_values.reshape(*self._pshape) + zero_eval_vec_1d = self._zero_eval_vec_1d + for _ in range(self.dim): - f_values = self._zero_eval_vec_1d.dot(f_values) + f_values = zero_eval_vec_1d @ f_values return f_values diff --git a/sumpy/qbx.py b/sumpy/qbx.py index de2598881..f5e505706 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -32,7 +32,7 @@ from pymbolic import parse, var from sumpy.tools import ( - KernelComputation, KernelCacheWrapper, is_obj_array_like) + KernelComputation, KernelCacheMixin, is_obj_array_like) import logging logger = logging.getLogger(__name__) @@ -66,7 +66,9 @@ def stringify_expn_index(i): # {{{ base class -class LayerPotentialBase(KernelComputation, KernelCacheWrapper): +class LayerPotentialBase(KernelCacheMixin, KernelComputation): + default_name = "qbx" + def __init__(self, ctx, expansion, strength_usage=None, value_dtypes=None, name=None, device=None, source_kernels=None, target_kernels=None): diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index ab4c25dcf..01adb6e83 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -41,6 +41,8 @@ import logging logger = logging.getLogger(__name__) +USE_SYMENGINE = False + # {{{ symbolic backend @@ -48,23 +50,24 @@ def _find_symbolic_backend(): global USE_SYMENGINE try: - import symengine # noqa + import symengine # noqa: F401 symengine_found = True + symengine_error = None except ImportError as import_error: symengine_found = False symengine_error = import_error - ALLOWED_BACKENDS = ("sympy", "symengine") # noqa - BACKEND_ENV_VAR = "SUMPY_FORCE_SYMBOLIC_BACKEND" # noqa + allowed_backends = ("sympy", "symengine") + backend_env_var = "SUMPY_FORCE_SYMBOLIC_BACKEND" import os - backend = os.environ.get(BACKEND_ENV_VAR) + backend = os.environ.get(backend_env_var) if backend is not None: - if backend not in ALLOWED_BACKENDS: + if backend not in allowed_backends: raise RuntimeError( - f"{BACKEND_ENV_VAR} value is unrecognized: '{backend}' " + f"{backend_env_var} value is unrecognized: '{backend}' " "(allowed values are {})".format( - ", ".join(f"'{val}'" for val in ALLOWED_BACKENDS)) + ", ".join(f"'{val}'" for val in allowed_backends)) ) if backend == "symengine" and not symengine_found: @@ -123,17 +126,15 @@ def _coeff_isneg(a): return a.is_Number and a.is_negative -have_unevaluated_expr = False -if not USE_SYMENGINE: +if USE_SYMENGINE: + def UnevaluatedExpr(x): # noqa: F811, N802 + return x +else: try: from sympy import UnevaluatedExpr - have_unevaluated_expr = True except ImportError: - pass - -if not have_unevaluated_expr: - def UnevaluatedExpr(x): # noqa - return x + def UnevaluatedExpr(x): # noqa: F811, N802 + return x if USE_SYMENGINE: @@ -287,7 +288,7 @@ def map_spatial_constant(self, expr): class SympyToPymbolicMapper(SympyToPymbolicMapperBase): - def map_Symbol(self, expr): # noqa + def map_Symbol(self, expr): # noqa: N802 if expr.name.startswith(SpatialConstant.prefix): return SpatialConstant.from_sympy(expr) return SympyToPymbolicMapperBase.map_Symbol(self, expr) @@ -334,7 +335,8 @@ class _BesselOrHankel(sympy.Function): def fdiff(self, argindex=1): if argindex in (1, 3): # we are not differentiating w.r.t order or nderivs - raise ValueError() + raise ValueError(f"invalid argindex: {argindex}") + order, z, nderivs = self.args return self.func(order, z, nderivs+1) @@ -351,10 +353,10 @@ class Hankel1(_BesselOrHankel): _SympyHankel1 = Hankel1 if USE_SYMENGINE: - def BesselJ(*args): # noqa: N802 + def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined return sym.sympify(_SympyBesselJ(*args)) - def Hankel1(*args): # noqa: N802 + def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined return sym.sympify(_SympyHankel1(*args)) # vim: fdm=marker diff --git a/sumpy/tools.py b/sumpy/tools.py index d3b61b8d1..6505fa370 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -54,7 +54,7 @@ import pyopencl.array as cla import loopy as lp -from typing import Dict, Tuple, Any +from typing import Dict, Tuple, Any, ClassVar import logging logger = logging.getLogger(__name__) @@ -579,6 +579,8 @@ class ScalingAssignmentTag(Tag): class KernelComputation: """Common input processing for kernel computations.""" + default_name: ClassVar[str] = "unknown" + def __init__(self, ctx, target_kernels, source_kernels, strength_usage, value_dtypes, name, device=None): """ @@ -722,7 +724,7 @@ def __eq__(self, other): # }}} -class KernelCacheWrapper: +class KernelCacheMixin: @memoize_method def get_cached_optimized_kernel(self, **kwargs): from sumpy import code_cache, CACHING_ENABLED, OPT_ENABLED @@ -769,6 +771,9 @@ def _allow_redundant_execution_of_knl_scaling(knl): knl, within=ObjTagged(ScalingAssignmentTag())) +KernelCacheWrapper = KernelCacheMixin + + def is_obj_array_like(ary): return ( isinstance(ary, (tuple, list)) @@ -1242,4 +1247,29 @@ def run_opencl_fft(fft_app, queue, input_vec, inverse=False, wait_for=None): # }}} + +# {{{ deprecations + +_depr_name_to_replacement_and_obj = { + "KernelCacheWrapper": ("KernelCacheMixin", 2023), + } + +if sys.version_info >= (3, 7): + def __getattr__(name): + replacement_and_obj = _depr_name_to_replacement_and_obj.get(name, None) + if replacement_and_obj is not None: + replacement, obj, year = replacement_and_obj + from warnings import warn + warn(f"'sumpy.tools.{name}' is deprecated. " + f"Use '{replacement}' instead. " + f"'sumpy.tools.{name}' will continue to work until {year}.", + DeprecationWarning, stacklevel=2) + return obj + else: + raise AttributeError(name) +else: + KernelCacheWrapper = KernelCacheMixin + +# }}} + # vim: fdm=marker diff --git a/sumpy/toys.py b/sumpy/toys.py index ded4a54e2..be3bf843a 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -697,7 +697,7 @@ def visit_multipoleexpansion(self, psource): elif expn_style == "circle": draw_circle(psource.center, psource.radius, fill=None) else: - raise ValueError(f"unknown expn_style: {self.expn_style}") + raise ValueError(f"unknown expn_style: {expn_style}") if psource.derived_from is None: return diff --git a/sumpy/visualization.py b/sumpy/visualization.py index c5ce57109..258745982 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -141,7 +141,7 @@ def show_scalar_in_matplotlib(self, fld, max_val=None, if max_val is not None: squeezed_fld[squeezed_fld > max_val] = max_val - squeezed_fld[squeezed_fld < -max_val] = -max_val + squeezed_fld[squeezed_fld < -max_val] = -max_val # pylint: disable=E1130 squeezed_fld = squeezed_fld[..., ::-1] @@ -165,7 +165,8 @@ def set_matplotlib_limits(self): def show_vector_in_mayavi(self, fld, do_show=True, **kwargs): c = self.points - from mayavi import mlab + from mayavi import mlab # pylint: disable=import-error + mlab.quiver3d(c[0], c[1], c[2], fld[0], fld[1], fld[2], **kwargs) @@ -181,7 +182,7 @@ def write_vtk_file(self, file_name, data, real_only=False, overwrite=False): def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): if max_val is not None: fld[fld > max_val] = max_val - fld[fld < -max_val] = -max_val + fld[fld < -max_val] = -max_val # pylint: disable=E1130 if len(fld.shape) == 1: fld = fld.reshape(self.nd_points.shape[1:]) @@ -189,7 +190,7 @@ def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): nd_points = self.nd_points.squeeze()[self._get_nontrivial_dims()] squeezed_fld = fld.squeeze() - from mayavi import mlab + from mayavi import mlab # pylint: disable=import-error mlab.surf(nd_points[0], nd_points[1], squeezed_fld, **kwargs) # vim: foldmethod=marker From 6a961e7e6a3cfbc8bf06702afc131a79e6c71d51 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 18 Sep 2022 11:40:19 +0300 Subject: [PATCH 034/335] fixup inheritence and pylint in expansions --- sumpy/expansion/__init__.py | 208 ++++++++++++++++++++++------------- sumpy/expansion/local.py | 43 +++++--- sumpy/expansion/m2l.py | 57 +++++----- sumpy/expansion/multipole.py | 13 ++- 4 files changed, 196 insertions(+), 125 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 99ed13b3d..ca974b93a 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -20,14 +20,26 @@ THE SOFTWARE. """ -import logging +from abc import ABC, abstractmethod +from typing import Any, ClassVar, Dict, Hashable, List, Tuple, Type + from pytools import memoize_method + import sumpy.symbolic as sym from sumpy.tools import add_mi -from typing import List, Tuple + +import logging +logger = logging.getLogger(__name__) + __doc__ = """ .. autoclass:: ExpansionBase + +Expansion Wranglers +^^^^^^^^^^^^^^^^^^^ + +.. autoclass:: ExpansionTermsWrangler +.. autoclass:: FullExpansionTermsWrangler .. autoclass:: LinearPDEBasedExpansionTermsWrangler Expansion Factories @@ -38,18 +50,24 @@ .. autoclass:: VolumeTaylorExpansionFactory """ -logger = logging.getLogger(__name__) - -# {{{ base class +# {{{ expansion base -class ExpansionBase: +class ExpansionBase(ABC): """ - .. automethod:: with_kernel - .. automethod:: __len__ + .. attribute:: kernel + .. attribute:: order + .. attribute:: use_rscale + .. automethod:: get_coefficient_identifiers .. automethod:: coefficients_from_source - .. automethod:: translate_from + .. automethod:: coefficients_from_source_vec + .. automethod:: evaluate + + .. automethod:: with_kernel + .. automethod:: copy + + .. automethod:: __len__ .. automethod:: __eq__ .. automethod:: __ne__ """ @@ -95,18 +113,15 @@ def get_source_args(self): # }}} - def with_kernel(self, kernel): - return type(self)(kernel, self.order, self.use_rscale) - - def __len__(self): - return len(self.get_coefficient_identifiers()) + # {{{ abstract interface + @abstractmethod def get_coefficient_identifiers(self): """ - Returns the identifiers of the coefficients that actually get stored. + :returns: the identifiers of the coefficients that actually get stored. """ - raise NotImplementedError + @abstractmethod def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): """Form an expansion from a source point. @@ -119,10 +134,9 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): :returns: a list of :mod:`sympy` expressions representing the coefficients of the expansion. """ - raise NotImplementedError - def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, - sac=None): + def coefficients_from_source_vec(self, + kernels, avec, bvec, rscale, weights, sac=None): """Form an expansion with a linear combination of kernels and weights. :arg avec: vector from source to center. @@ -141,34 +155,20 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, result[i] += weight * coeffs[i] return result + @abstractmethod def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): """ - :return: a :mod:`sympy` expression corresponding + :returns: a :mod:`sympy` expression corresponding to the evaluated expansion with the coefficients in *coeffs*. """ - raise NotImplementedError - - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None): - raise NotImplementedError + # }}} - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.kernel) - key_builder.rec(key_hash, self.order) - key_builder.rec(key_hash, self.use_rscale) + # {{{ copy - def __eq__(self, other): - return ( - type(self) == type(other) - and self.kernel == other.kernel - and self.order == other.order - and self.use_rscale == other.use_rscale) - - def __ne__(self, other): - return not self.__eq__(other) + def with_kernel(self, kernel): + return type(self)(kernel, self.order, self.use_rscale) def copy(self, **kwargs): new_kwargs = { @@ -184,14 +184,44 @@ def copy(self, **kwargs): return type(self)(**new_kwargs) + # }}} + + def update_persistent_hash(self, key_hash, key_builder): + key_hash.update(type(self).__name__.encode("utf8")) + key_builder.rec(key_hash, self.kernel) + key_builder.rec(key_hash, self.order) + key_builder.rec(key_hash, self.use_rscale) + + def __len__(self): + return len(self.get_coefficient_identifiers()) + + def __eq__(self, other): + return ( + type(self) == type(other) + and self.kernel == other.kernel + and self.order == other.order + and self.use_rscale == other.use_rscale) + + def __ne__(self, other): + return not self.__eq__(other) # }}} # {{{ expansion terms wrangler -class ExpansionTermsWrangler: +class ExpansionTermsWrangler(ABC): + """ + .. attribute:: order + .. attribute:: dim + .. attribute:: max_mi + .. automethod:: get_coefficient_identifiers + .. automethod:: get_full_kernel_derivatives_from_stored + .. automethod:: get_stored_mpole_coefficients_from_full + + .. automethod:: get_full_coefficient_identifiers + """ init_arg_names = ("order", "dim", "max_mi") def __init__(self, order, dim, max_mi=None): @@ -199,16 +229,23 @@ def __init__(self, order, dim, max_mi=None): self.dim = dim self.max_mi = max_mi + # {{{ abstract interface + + @abstractmethod def get_coefficient_identifiers(self): - raise NotImplementedError + pass + + @abstractmethod + def get_full_kernel_derivatives_from_stored(self, + stored_kernel_derivatives, rscale, sac=None): + pass - def get_full_kernel_derivatives_from_stored(self, stored_kernel_derivatives, - rscale, sac=None): - raise NotImplementedError + @abstractmethod + def get_stored_mpole_coefficients_from_full(self, + full_mpole_coefficients, rscale, sac=None): + pass - def get_stored_mpole_coefficients_from_full(self, full_mpole_coefficients, - rscale, sac=None): - raise NotImplementedError + # }}} @memoize_method def get_full_coefficient_identifiers(self): @@ -241,6 +278,8 @@ def copy(self, **kwargs): return type(self)(**new_kwargs) + # {{{ hyperplane helpers + def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: r""" Coefficient storage is organized into "hyperplanes" in multi-index @@ -303,18 +342,23 @@ def _split_coeffs_into_hyperplanes(self) -> List[Tuple[int, List[Tuple[int]]]]: return res + # }}} + class FullExpansionTermsWrangler(ExpansionTermsWrangler): + def get_coefficient_identifiers(self): + return super().get_full_coefficient_identifiers() - get_coefficient_identifiers = ( - ExpansionTermsWrangler.get_full_coefficient_identifiers) - - def get_full_kernel_derivatives_from_stored(self, stored_kernel_derivatives, - rscale, sac=None): + def get_full_kernel_derivatives_from_stored(self, + stored_kernel_derivatives, rscale, sac=None): return stored_kernel_derivatives - get_stored_mpole_coefficients_from_full = ( - get_full_kernel_derivatives_from_stored) + def get_stored_mpole_coefficients_from_full(self, + full_mpole_coefficients, rscale, sac=None): + return self.get_full_kernel_derivatives_from_stored( + full_mpole_coefficients, rscale, sac=sac) + +# }}} # {{{ sparse matrix-vector multiplication @@ -392,6 +436,8 @@ def transpose_matvec(self, inp, wrap_intermediate=lambda x: x): # }}} +# {{{ LinearPDEBasedExpansionTermsWrangler + class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): """ .. automethod:: __init__ @@ -411,18 +457,18 @@ def __init__(self, order, dim, knl, max_mi=None): def get_coefficient_identifiers(self): return self.stored_identifiers - def get_full_kernel_derivatives_from_stored(self, stored_kernel_derivatives, - rscale, sac=None): - + def get_full_kernel_derivatives_from_stored(self, + stored_kernel_derivatives, rscale, sac=None): from sumpy.tools import add_to_sac + projection_matrix = self.get_projection_matrix(rscale) return projection_matrix.matvec(stored_kernel_derivatives, lambda x: add_to_sac(sac, x)) - def get_stored_mpole_coefficients_from_full(self, full_mpole_coefficients, - rscale, sac=None): - + def get_stored_mpole_coefficients_from_full(self, + full_mpole_coefficients, rscale, sac=None): from sumpy.tools import add_to_sac + projection_matrix = self.get_projection_matrix(rscale) return projection_matrix.transpose_matvec(full_mpole_coefficients, lambda x: add_to_sac(sac, x)) @@ -636,9 +682,13 @@ def get_projection_matrix(self, rscale): # }}} -# {{{ volume taylor +# {{{ volume taylor expansion + +# FIXME: This is called an expansion but doesn't inherit from ExpansionBase? -class VolumeTaylorExpansionBase: +class VolumeTaylorExpansionMixin: + expansion_terms_wrangler_class: ClassVar[Type[ExpansionTermsWrangler]] + expansion_terms_wrangler_cache: ClassVar[Dict[Hashable, Any]] = {} @classmethod def get_or_make_expansion_terms_wrangler(cls, *key): @@ -679,20 +729,16 @@ def get_storage_index(self, i): return self._storage_loc_dict[i] -class VolumeTaylorExpansion(VolumeTaylorExpansionBase): - +class VolumeTaylorExpansion(VolumeTaylorExpansionMixin): expansion_terms_wrangler_class = FullExpansionTermsWrangler - expansion_terms_wrangler_cache = {} # not user-facing, be strict about having to pass use_rscale def __init__(self, kernel, order, use_rscale): self.expansion_terms_wrangler_key = (order, kernel.dim) -class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionBase): - +class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionMixin): expansion_terms_wrangler_class = LinearPDEBasedExpansionTermsWrangler - expansion_terms_wrangler_cache = {} # not user-facing, be strict about having to pass use_rscale def __init__(self, kernel, order, use_rscale): @@ -736,21 +782,23 @@ def __init__(self, *args, **kwargs): # {{{ expansion factory -class ExpansionFactoryBase: - """An interface +class ExpansionFactoryBase(ABC): + """ .. automethod:: get_local_expansion_class .. automethod:: get_multipole_expansion_class """ + @abstractmethod def get_local_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - raise NotImplementedError() + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ + @abstractmethod def get_multipole_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - raise NotImplementedError() + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ class VolumeTaylorExpansionFactory(ExpansionFactoryBase): @@ -759,13 +807,15 @@ class VolumeTaylorExpansionFactory(ExpansionFactoryBase): """ def get_local_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.local import VolumeTaylorLocalExpansion return VolumeTaylorLocalExpansion def get_multipole_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansion return VolumeTaylorMultipoleExpansion @@ -777,7 +827,8 @@ class DefaultExpansionFactory(ExpansionFactoryBase): """ def get_local_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, @@ -789,7 +840,8 @@ def get_local_expansion_class(self, base_kernel): return VolumeTaylorLocalExpansion def get_multipole_expansion_class(self, base_kernel): - """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. + """ + :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.multipole import ( LinearPDEConformingVolumeTaylorMultipoleExpansion, diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 64919b17e..58809641e 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -21,6 +21,7 @@ """ import math +from abc import abstractmethod from pytools import single_valued @@ -28,6 +29,7 @@ from sumpy.expansion import ( ExpansionBase, VolumeTaylorExpansion, + VolumeTaylorExpansionMixin, LinearPDEConformingVolumeTaylorExpansion) from sumpy.tools import add_to_sac, mi_increment_axis @@ -48,12 +50,9 @@ class LocalExpansionBase(ExpansionBase): """Base class for local expansions. - .. attribute:: kernel - .. attribute:: order - .. attribute:: use_rscale - .. automethod:: translate_from """ + init_arg_names = ("kernel", "order", "use_rscale", "m2l_translation") def __init__(self, kernel, order, use_rscale=None, @@ -78,6 +77,7 @@ def __eq__(self, other): and self.m2l_translation == other.m2l_translation ) + @abstractmethod def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): """Translate from a multipole or local expansion to a local expansion @@ -96,13 +96,11 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, expressions representing the expressions returned by :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. """ - raise NotImplementedError # {{{ line taylor class LineTaylorLocalExpansion(LocalExpansionBase): - def get_storage_index(self, k): return k @@ -150,12 +148,16 @@ def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): coeffs[self.get_storage_index(i)] / math.factorial(i) for i in self.get_coefficient_identifiers())) + def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, + dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): + raise NotImplementedError + # }}} # {{{ volume taylor -class VolumeTaylorLocalExpansionBase(LocalExpansionBase): +class VolumeTaylorLocalExpansionBase(VolumeTaylorExpansionMixin, LocalExpansionBase): """ Coefficients represent derivative values of the kernel. """ @@ -463,14 +465,21 @@ def __init__(self, *args, **kwargs): # {{{ 2D Bessel-based-expansion class _FourierBesselLocalExpansion(LocalExpansionBase): - def __init__(self, kernel, order, use_rscale=None, - m2l_translation=None): + def __init__(self, + kernel, order, mpole_expn_class, + use_rscale=None, m2l_translation=None): if not m2l_translation: from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory factory = DefaultM2LTranslationClassFactory() - m2l_translation = factory.get_m2l_translation_class(kernel, - self.__class__)() + m2l_translation = ( + factory.get_m2l_translation_class(kernel, self.__class__)()) + super().__init__(kernel, order, use_rscale, m2l_translation) + self.mpole_expn_class = mpole_expn_class + + @abstractmethod + def get_bessel_arg_scaling(self): + pass def get_storage_index(self, k): return self.order+k @@ -561,10 +570,10 @@ def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): assert (isinstance(kernel.get_base_kernel(), HelmholtzKernel) and kernel.dim == 2) - super().__init__(kernel, order, use_rscale, m2l_translation=m2l_translation) - from sumpy.expansion.multipole import H2DMultipoleExpansion - self.mpole_expn_class = H2DMultipoleExpansion + super().__init__(kernel, order, H2DMultipoleExpansion, + use_rscale=use_rscale, + m2l_translation=m2l_translation) def get_bessel_arg_scaling(self): return sym.Symbol(self.kernel.get_base_kernel().helmholtz_k_name) @@ -576,10 +585,10 @@ def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): assert (isinstance(kernel.get_base_kernel(), YukawaKernel) and kernel.dim == 2) - super().__init__(kernel, order, use_rscale, m2l_translation=m2l_translation) - from sumpy.expansion.multipole import Y2DMultipoleExpansion - self.mpole_expn_class = Y2DMultipoleExpansion + super().__init__(kernel, order, Y2DMultipoleExpansion, + use_rscale=use_rscale, + m2l_translation=m2l_translation) def get_bessel_arg_scaling(self): return sym.I * sym.Symbol(self.kernel.get_base_kernel().yukawa_lambda_name) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index e7c4793f3..3d4b89e76 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -20,7 +20,8 @@ THE SOFTWARE. """ -from typing import Tuple, Any +from abc import ABC, abstractmethod +from typing import Any, ClassVar, Tuple import pymbolic import loopy as lp @@ -47,16 +48,16 @@ # {{{ M2L translation factory -class M2LTranslationClassFactoryBase: - """An interface +class M2LTranslationClassFactoryBase(ABC): + """ .. automethod:: get_m2l_translation_class """ + @abstractmethod def get_m2l_translation_class(self, base_kernel, local_expansion_class): """Returns a subclass of :class:`M2LTranslationBase` suitable for *base_kernel* and *local_expansion_class*. """ - raise NotImplementedError() class NonFFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): @@ -113,12 +114,12 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): raise RuntimeError( f"Unknown local_expansion_class: {local_expansion_class}") - # }}} + # {{{ M2LTranslationBase -class M2LTranslationBase: +class M2LTranslationBase(ABC): """Base class for Multipole to Local Translation .. automethod:: translate @@ -133,10 +134,10 @@ class M2LTranslationBase: .. autoattribute:: use_preprocessing """ - use_fft = False - use_preprocessing = False + use_fft: ClassVar[bool] = False + use_preprocessing: ClassVar[bool] = False - def __setattr__(self): + def __setattr__(self, name, value): # These are intended to be stateless. raise AttributeError(f"{type(self)} is stateless and does not permit " "attribute modification.") @@ -144,9 +145,10 @@ def __setattr__(self): def __eq__(self, other): return type(self) is type(other) + @abstractmethod def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - raise NotImplementedError + pass def loopy_translate(self, tgt_expansion, src_expansion): raise NotImplementedError( @@ -190,6 +192,7 @@ def translation_classes_dependent_data_loopy_knl(self, tgt_expansion, return translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, result_dtype) + @abstractmethod def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): """Return the preprocessed multipole expansion for an optimized M2L. @@ -203,7 +206,6 @@ def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, expansion coefficients with zeros added to make the M2L computation a circulant matvec. """ - raise NotImplementedError def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): """Return the number of expressions returned by @@ -217,6 +219,7 @@ def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): return self.translation_classes_dependent_ndata(tgt_expansion, src_expansion) + @abstractmethod def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac): """Return postprocessed local expansion for an optimized M2L. @@ -227,7 +230,6 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, When FFT is turned on, the output expressions are assumed to have been transformed from Fourier space back to the original space by the caller. """ - raise NotImplementedError def postprocess_local_nexprs(self, tgt_expansion, src_expansion): """Return the number of expressions given as input to @@ -244,9 +246,9 @@ def postprocess_local_nexprs(self, tgt_expansion, src_expansion): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) - # }}} M2LTranslationBase + # {{{ VolumeTaylorM2LTranslation class VolumeTaylorM2LTranslation(M2LTranslationBase): @@ -627,13 +629,13 @@ def result_func(x): fixed_parameters=fixed_parameters, ) - # }}} VolumeTaylorM2LTranslation + # {{{ VolumeTaylorM2LWithPreprocessedMultipoles class VolumeTaylorM2LWithPreprocessedMultipoles(VolumeTaylorM2LTranslation): - use_preprocessing = True + use_preprocessing: ClassVar[bool] = True def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): @@ -690,13 +692,13 @@ def loopy_translate(self, tgt_expansion, src_expansion): lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) - # }}} VolumeTaylorM2LWithPreprocessedMultipoles + # {{{ VolumeTaylorM2LWithFFT class VolumeTaylorM2LWithFFT(VolumeTaylorM2LWithPreprocessedMultipoles): - use_fft = True + use_fft: ClassVar[bool] = True def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): @@ -738,9 +740,9 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, return super().postprocess_local_exprs(tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) - # }}} VolumeTaylorM2LWithFFT + # {{{ FourierBesselM2LTranslation class FourierBesselM2LTranslation(M2LTranslationBase): @@ -823,13 +825,13 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, def postprocess_local_nexprs(self, tgt_expansion, src_expansion): return 2*tgt_expansion.order + 1 - # }}} FourierBesselM2LTranslation + # {{{ FourierBesselM2LWithPreprocessedMultipoles class FourierBesselM2LWithPreprocessedMultipoles(FourierBesselM2LTranslation): - use_preprocessing = True + use_preprocessing: ClassVar[bool] = True def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): @@ -846,8 +848,8 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, return translated_coeffs def loopy_translate(self, tgt_expansion, src_expansion): - ncoeff_src = self.preprocess_multipole_nexprs(src_expansion) - ncoeff_tgt = self.postprocess_local_nexprs(src_expansion) + ncoeff_src = self.preprocess_multipole_nexprs(tgt_expansion, src_expansion) + ncoeff_tgt = self.postprocess_local_nexprs(tgt_expansion, src_expansion) icoeff_src = pymbolic.var("icoeff_src") icoeff_tgt = pymbolic.var("icoeff_tgt") @@ -857,7 +859,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): src_coeffs = pymbolic.var("src_coeffs") translation_classes_dependent_data = pymbolic.var("data") - if self.use_fft_for_m2l: + if self.use_fft: expr = src_coeffs[icoeff_tgt] \ * translation_classes_dependent_data[icoeff_tgt] else: @@ -884,13 +886,13 @@ def loopy_translate(self, tgt_expansion, src_expansion): lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) - # }}} FourierBesselM2LWithPreprocessedMultipoles + # {{{ FourierBesselM2LWithFFT class FourierBesselM2LWithFFT(FourierBesselM2LWithPreprocessedMultipoles): - use_fft = True + use_fft: ClassVar[bool] = True def __init__(self): # FIXME: expansion with FFT is correct symbolically and can be verified @@ -899,8 +901,7 @@ def __init__(self): # instability but gives rscale as a possible solution. Sumpy's rscale # choice is slightly different from Greengard and Rokhlin and that # might be the reason for this numerical issue. - raise ValueError("Bessel based expansions with FFT is not fully " - "supported yet.") + raise ValueError("Bessel based expansions with FFT are not supported yet.") def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): @@ -956,9 +957,9 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, return super().postprocess_local_exprs(tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) - # }}} FourierBesselM2LWithFFT + # {{{ translation_classes_dependent_data_loopy_knl def translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 1924e6c7f..a344fe0ac 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -21,10 +21,14 @@ """ import math +from abc import abstractmethod import sumpy.symbolic as sym from sumpy.expansion import ( - ExpansionBase, VolumeTaylorExpansion, LinearPDEConformingVolumeTaylorExpansion) + ExpansionBase, + VolumeTaylorExpansion, + VolumeTaylorExpansionMixin, + LinearPDEConformingVolumeTaylorExpansion) from sumpy.tools import mi_set_axis, add_to_sac, mi_power, mi_factorial import logging @@ -46,7 +50,8 @@ class MultipoleExpansionBase(ExpansionBase): # {{{ volume taylor -class VolumeTaylorMultipoleExpansionBase(MultipoleExpansionBase): +class VolumeTaylorMultipoleExpansionBase( + VolumeTaylorExpansionMixin, MultipoleExpansionBase): """ Coefficients represent the terms in front of the kernel derivatives. """ @@ -396,6 +401,10 @@ def __init__(self, *args, **kwargs): # {{{ 2D Hankel-based expansions class _HankelBased2DMultipoleExpansion(MultipoleExpansionBase): + @abstractmethod + def get_bessel_arg_scaling(self): + return + def get_storage_index(self, k): return self.order+k From f5110e69ba55a2fba9947fa0fdd6b88b84621337 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 18 Sep 2022 11:43:32 +0300 Subject: [PATCH 035/335] add pylint to ci --- .github/workflows/ci.yml | 14 ++++++++++++++ .gitlab-ci.yml | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a66e81b72..35c8480fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,20 @@ jobs: curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh . ./prepare-and-run-flake8.sh "$(basename $GITHUB_REPOSITORY)" test examples benchmarks + pylint: + name: Pylint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: "Main Script" + run: | + USE_CONDA_BUILD=1 + EXTRA_INSTALL="pyvisfile scipy matplotlib" + curl -L -O https://tiker.net/ci-support-v0 + . ci-support-v0 + build_py_project + run_pylint "$(basename $GITHUB_REPOSITORY)" test/test_*.py + docs: name: Documentation runs-on: ubuntu-latest diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 52c76990a..ce90a8939 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -128,6 +128,17 @@ Flake8: except: - tags +Pylint: + script: + - EXTRA_INSTALL="pybind11 numpy mako scipy matplotlib pyvisfile mpi4py" + - curl -L -O https://tiker.net/ci-support-v0 + - . ci-support-v0 + - build_py_project + tags: + - python3 + except: + - tags + Benchmarks: stage: test script: | From b53f91868b7241ed4775e5ba1653b47f40244865 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 19 Sep 2022 09:30:18 +0300 Subject: [PATCH 036/335] add some more type annotations to expansions --- sumpy/expansion/__init__.py | 38 +++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index ca974b93a..8bc04ae5b 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -21,11 +21,12 @@ """ from abc import ABC, abstractmethod -from typing import Any, ClassVar, Dict, Hashable, List, Tuple, Type +from typing import Any, ClassVar, Dict, Hashable, List, Optional, Tuple, Type from pytools import memoize_method import sumpy.symbolic as sym +from sumpy.kernel import Kernel from sumpy.tools import add_mi import logging @@ -73,7 +74,10 @@ class ExpansionBase(ABC): """ init_arg_names = ("kernel", "order", "use_rscale") - def __init__(self, kernel, order, use_rscale=None): + def __init__(self, + kernel: Kernel, + order: int, + use_rscale: Optional[bool] = None) -> None: # Don't be tempted to remove target derivatives here. # Line Taylor QBX can't do without them, because it can't # apply those derivatives to the expanded quantity. @@ -92,11 +96,11 @@ def __init__(self, kernel, order, use_rscale=None): # to make it fit into sumpy.qbx.LayerPotential. @property - def dim(self): + def dim(self) -> int: return self.kernel.dim @property - def is_complex_valued(self): + def is_complex_valued(self) -> bool: return self.kernel.is_complex_valued def get_code_transformer(self): @@ -116,7 +120,7 @@ def get_source_args(self): # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> List[Hashable]: """ :returns: the identifiers of the coefficients that actually get stored. """ @@ -167,10 +171,10 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): # {{{ copy - def with_kernel(self, kernel): + def with_kernel(self, kernel: Kernel) -> "ExpansionBase": return type(self)(kernel, self.order, self.use_rscale) - def copy(self, **kwargs): + def copy(self, **kwargs) -> "ExpansionBase": new_kwargs = { name: getattr(self, name) for name in self.init_arg_names} @@ -224,7 +228,10 @@ class ExpansionTermsWrangler(ABC): """ init_arg_names = ("order", "dim", "max_mi") - def __init__(self, order, dim, max_mi=None): + def __init__(self, + order: int, + dim: int, + max_mi: Optional[int] = None) -> None: self.order = order self.dim = dim self.max_mi = max_mi @@ -232,7 +239,7 @@ def __init__(self, order, dim, max_mi=None): # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> List[Hashable]: pass @abstractmethod @@ -248,7 +255,7 @@ def get_stored_mpole_coefficients_from_full(self, # }}} @memoize_method - def get_full_coefficient_identifiers(self): + def get_full_coefficient_identifiers(self) -> List[Hashable]: """ Returns identifiers for every coefficient in the complete expansion. """ @@ -300,7 +307,8 @@ def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: return hyperplanes @memoize_method - def _split_coeffs_into_hyperplanes(self) -> List[Tuple[int, List[Tuple[int]]]]: + def _split_coeffs_into_hyperplanes( + self) -> List[Tuple[int, List[Tuple[int, ...]]]]: r""" This splits the coefficients into :math:`O(p)` disjoint sets so that for each set, all the identifiers have the form, @@ -445,7 +453,9 @@ class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): init_arg_names = ("order", "dim", "knl", "max_mi") - def __init__(self, order, dim, knl, max_mi=None): + def __init__(self, + order: int, dim: int, knl: Kernel, + max_mi: Optional[int] = None) -> None: r""" :param order: order of the expansion :param dim: number of dimensions @@ -733,7 +743,7 @@ class VolumeTaylorExpansion(VolumeTaylorExpansionMixin): expansion_terms_wrangler_class = FullExpansionTermsWrangler # not user-facing, be strict about having to pass use_rscale - def __init__(self, kernel, order, use_rscale): + def __init__(self, kernel: Kernel, order: int, use_rscale: bool) -> None: self.expansion_terms_wrangler_key = (order, kernel.dim) @@ -741,7 +751,7 @@ class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionMixin): expansion_terms_wrangler_class = LinearPDEBasedExpansionTermsWrangler # not user-facing, be strict about having to pass use_rscale - def __init__(self, kernel, order, use_rscale): + def __init__(self, kernel: Kernel, order: int, use_rscale: bool) -> None: self.expansion_terms_wrangler_key = (order, kernel.dim, kernel) From 9e5e10e3fc5954c222eec2ba38546f7bb99ea51d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 19 Sep 2022 10:05:39 +0300 Subject: [PATCH 037/335] make KernelComputation an abc --- sumpy/e2e.py | 45 ++++++++++++++++++++++++++++----------- sumpy/e2p.py | 19 ++++++++++++----- sumpy/p2e.py | 13 ++++++------ sumpy/p2p.py | 21 +++++++++++-------- sumpy/qbx.py | 14 ++++++++----- sumpy/tools.py | 57 +++++++++++++++++++++++++++++++++++++++----------- 6 files changed, 119 insertions(+), 50 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index bcb02f126..9c96ac569 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -20,6 +20,8 @@ THE SOFTWARE. """ +from abc import ABC, abstractmethod + import numpy as np import loopy as lp import sumpy.symbolic as sym @@ -48,9 +50,7 @@ # {{{ translation base class -class E2EBase(KernelCacheMixin): - default_name = "e2e" - +class E2EBase(KernelCacheMixin, ABC): def __init__(self, ctx, src_expansion, tgt_expansion, name=None, device=None): """ @@ -94,6 +94,11 @@ def __init__(self, ctx, src_expansion, tgt_expansion, self.dim = src_expansion.dim + @property + @abstractmethod + def default_name(self): + pass + @memoize_method def get_translation_loopy_insns(self): from sumpy.symbolic import make_sym_vector @@ -132,8 +137,9 @@ def get_cache_key(self): self.tgt_expansion, ) + @abstractmethod def get_kernel(self): - raise NotImplementedError + pass def get_optimized_kernel(self): # FIXME @@ -152,13 +158,15 @@ class E2EFromCSR(E2EBase): list. """ - default_name = "e2e_from_csr" - def __init__(self, ctx, src_expansion, tgt_expansion, name=None, device=None): super().__init__(ctx, src_expansion, tgt_expansion, name=name, device=device) + @property + def default_name(self): + return "e2e_from_csr" + def get_translation_loopy_insns(self): from sumpy.symbolic import make_sym_vector dvec = make_sym_vector("d", self.dim) @@ -302,7 +310,9 @@ class M2LUsingTranslationClassesDependentData(E2EFromCSR): list using M2L translation classes dependent data """ - default_name = "m2l_using_translation_classes_dependent_data" + @property + def default_name(self): + return "m2l_using_translation_classes_dependent_data" def get_translation_loopy_insns(self, result_dtype): from sumpy.symbolic import make_sym_vector @@ -538,7 +548,10 @@ class M2LGenerateTranslationClassesDependentData(E2EBase): """Implements precomputing the M2L kernel dependent data which are translation classes dependent derivatives. """ - default_name = "m2l_generate_translation_classes_dependent_data" + + @property + def default_name(self): + return "m2l_generate_translation_classes_dependent_data" def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation @@ -649,7 +662,9 @@ def __call__(self, queue, **kwargs): class M2LPreprocessMultipole(E2EBase): """Computes the preprocessed multipole expansion for accelerated M2L""" - default_name = "m2l_preprocess_multipole" + @property + def default_name(self): + return "m2l_preprocess_multipole" def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation @@ -731,7 +746,9 @@ def __call__(self, queue, **kwargs): class M2LPostprocessLocal(E2EBase): """Postprocesses locals expansions for accelerated M2L""" - default_name = "m2l_postprocess_local" + @property + def default_name(self): + return "m2l_postprocess_local" def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation @@ -816,7 +833,9 @@ def __call__(self, queue, **kwargs): # {{{ translation from a box's children class E2EFromChildren(E2EBase): - default_name = "e2e_from_children" + @property + def default_name(self): + return "e2e_from_children" def get_kernel(self): ncoeffs_src = len(self.src_expansion) @@ -933,7 +952,9 @@ def __call__(self, queue, **kwargs): # {{{ translation from a box's parent class E2EFromParent(E2EBase): - default_name = "e2e_from_parent" + @property + def default_name(self): + return "e2e_from_parent" def get_kernel(self): ncoeffs_src = len(self.src_expansion) diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 34bdd5f52..611b2718d 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -20,6 +20,8 @@ THE SOFTWARE. """ +from abc import ABC, abstractmethod + import numpy as np import loopy as lp import sumpy.symbolic as sym @@ -42,9 +44,7 @@ # {{{ E2P base class -class E2PBase(KernelCacheMixin): - default_name = "e2p" - +class E2PBase(KernelCacheMixin, ABC): def __init__(self, ctx, expansion, kernels, name=None, device=None): """ @@ -77,6 +77,11 @@ def __init__(self, ctx, expansion, kernels, self.dim = expansion.dim + @property + @abstractmethod + def default_name(self): + pass + def get_loopy_insns_and_result_names(self): from sumpy.symbolic import make_sym_vector bvec = make_sym_vector("b", self.dim) @@ -132,7 +137,9 @@ def get_cache_key(self): # {{{ E2P to single box (L2P, likely) class E2PFromSingleBox(E2PBase): - default_name = "e2p_from_single_box" + @property + def default_name(self): + return "e2p_from_single_box" def get_kernel(self): ncoeffs = len(self.expansion) @@ -234,7 +241,9 @@ def __call__(self, queue, **kwargs): # {{{ E2P from CSR-like interaction list class E2PFromCSR(E2PBase): - default_name = "e2p_from_csr" + @property + def default_name(self): + return "e2p_from_csr" def get_kernel(self): ncoeffs = len(self.expansion) diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 21551aefa..9532f6ecf 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -49,8 +49,6 @@ class P2EBase(KernelCacheMixin, KernelComputation): .. automethod:: __init__ """ - default_name = "p2e" - def __init__(self, ctx, expansion, kernels=None, name=None, device=None, strength_usage=None): """ @@ -124,9 +122,6 @@ def get_cache_key(self): return (type(self).__name__, self.name, self.expansion, tuple(self.source_kernels), tuple(self.strength_usage)) - def get_kernel(self): - raise NotImplementedError - def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = self.get_kernel() @@ -165,7 +160,9 @@ class P2EFromSingleBox(P2EBase): .. automethod:: __call__ """ - default_name = "p2e_from_single_box" + @property + def default_name(self): + return "p2e_from_single_box" def get_kernel(self): ncoeffs = len(self.expansion) @@ -267,7 +264,9 @@ class P2EFromCSR(P2EBase): .. automethod:: __call__ """ - default_name = "p2e_from_csr" + @property + def default_name(self): + return "p2e_from_csr" def get_kernel(self): ncoeffs = len(self.expansion) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index abd5df065..c24fa8d91 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -51,8 +51,6 @@ # {{{ p2p base class class P2PBase(KernelCacheMixin, KernelComputation): - default_name = "p2p" - def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, value_dtypes=None, name=None, device=None, source_kernels=None): """ @@ -175,9 +173,6 @@ def get_default_src_tgt_arguments(self): if self.exclude_self else []) + gather_loopy_source_arguments(self.source_kernels)) - def get_kernel(self): - raise NotImplementedError - def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): # FIXME knl = self.get_kernel() @@ -203,7 +198,9 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): class P2P(P2PBase): """Direct applier for P2P interactions.""" - default_name = "p2p_apply" + @property + def default_name(self): + return "p2p_apply" def get_kernel(self): loopy_insns, result_names = self.get_loopy_insns_and_result_names() @@ -268,7 +265,9 @@ def __call__(self, queue, targets, sources, strength, **kwargs): class P2PMatrixGenerator(P2PBase): """Generator for P2P interaction matrix entries.""" - default_name = "p2p_matrix" + @property + def default_name(self): + return "p2p_matrix" def get_strength_or_not(self, isrc, kernel_idx): return 1 @@ -333,7 +332,9 @@ class P2PMatrixSubsetGenerator(P2PBase): .. automethod:: __call__ """ - default_name = "p2p_subset" + @property + def default_name(self): + return "p2p_subset" def get_strength_or_not(self, isrc, kernel_idx): return 1 @@ -438,7 +439,9 @@ def __call__(self, queue, targets, sources, tgtindices, srcindices, **kwargs): # {{{ P2P from CSR-like interaction list class P2PFromCSR(P2PBase): - default_name = "p2p_from_csr" + @property + def default_name(self): + return "p2p_from_csr" def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, gpu=False, nsplit=32): diff --git a/sumpy/qbx.py b/sumpy/qbx.py index f5e505706..a3042ef91 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -67,8 +67,6 @@ def stringify_expn_index(i): # {{{ base class class LayerPotentialBase(KernelCacheMixin, KernelComputation): - default_name = "qbx" - def __init__(self, ctx, expansion, strength_usage=None, value_dtypes=None, name=None, device=None, source_kernels=None, target_kernels=None): @@ -229,7 +227,9 @@ class LayerPotential(LayerPotentialBase): .. automethod:: __call__ """ - default_name = "qbx_apply" + @property + def default_name(self): + return "qbx_apply" @memoize_method def get_kernel(self): @@ -307,7 +307,9 @@ def __call__(self, queue, targets, sources, centers, strengths, expansion_radii, class LayerPotentialMatrixGenerator(LayerPotentialBase): """Generator for layer potential matrix entries.""" - default_name = "qbx_matrix" + @property + def default_name(self): + return "qbx_matrix" def get_strength_or_not(self, isrc, kernel_idx): return 1 @@ -376,7 +378,9 @@ class LayerPotentialMatrixSubsetGenerator(LayerPotentialBase): .. automethod:: __call__ """ - default_name = "qbx_subset" + @property + def default_name(self): + return "qbx_subset" def get_strength_or_not(self, isrc, kernel_idx): return 1 diff --git a/sumpy/tools.py b/sumpy/tools.py index 6505fa370..f1ac7c1e0 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -43,8 +43,9 @@ import os import sys import enum -import platform -from collections import defaultdict, namedtuple +from abc import ABC, abstractmethod +from dataclasses import dataclass + from pymbolic.mapper import WalkMapper import pymbolic @@ -54,11 +55,14 @@ import pyopencl.array as cla import loopy as lp -from typing import Dict, Tuple, Any, ClassVar +from typing import Dict, Tuple, Any, List, Optional, TYPE_CHECKING import logging logger = logging.getLogger(__name__) +if TYPE_CHECKING: + from sumpy.kernel import Kernel + # {{{ multi_index helpers @@ -452,7 +456,9 @@ def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, *derivative_coeff_dict* using the variable given by **variable_idx** and return a new derivative transformation dictionary. """ + from collections import defaultdict new_derivative_coeff_dict = defaultdict(lambda: 0) + for mi, coeff in derivative_coeff_dict.items(): # In the case where we have x * u.diff(x), the result should # be x.diff(x) + x * u.diff(x, x) @@ -576,18 +582,32 @@ class ScalingAssignmentTag(Tag): pass -class KernelComputation: - """Common input processing for kernel computations.""" +class KernelComputation(ABC): + """Common input processing for kernel computations. + + .. attribute:: name + .. attribute:: target_kernels + .. attribute:: source_kernels + .. attribute:: strength_usage - default_name: ClassVar[str] = "unknown" + .. automethod:: get_kernel + """ - def __init__(self, ctx, target_kernels, source_kernels, strength_usage, - value_dtypes, name, device=None): + def __init__(self, ctx: Any, + target_kernels: List["Kernel"], + source_kernels: List["Kernel"], + strength_usage: Optional[List[int]] = None, + value_dtypes: Optional[List["np.dtype"]] = None, + name: Optional[str] = None, + device: Optional[Any] = None) -> None: """ - :arg kernels: list of :class:`sumpy.kernel.Kernel` instances - :class:`sumpy.kernel.TargetDerivative` wrappers should be + :arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances, + with :class:`sumpy.kernel.DirectionalTargetDerivative` as the outermost kernel wrappers, if present. - :arg strength_usage: A list of integers indicating which expression + :arg source_kernels: list of :class:`~sumpy.kernel.Kernel` instances + with :class:`~sumpy.kernel.DirectionalSourceDerivative` as the + outermost kernel wrappers, if present. + :arg strength_usage: list of integers indicating which expression uses which density. This implicitly specifies the number of density arrays that need to be passed. Default: all kernels use the same density. @@ -634,6 +654,11 @@ def __init__(self, ctx, target_kernels, source_kernels, strength_usage, self.name = name or self.default_name + @property + @abstractmethod + def default_name(self): + pass + def get_kernel_scaling_assignments(self): from sumpy.symbolic import SympyToPymbolicMapper sympy_conv = SympyToPymbolicMapper() @@ -648,6 +673,10 @@ def get_kernel_scaling_assignments(self): for i, (kernel, dtype) in enumerate( zip(self.target_kernels, self.value_dtypes))] + @abstractmethod + def get_kernel(self): + pass + # }}} @@ -945,7 +974,10 @@ def to_complex_dtype(dtype): raise RuntimeError(f"Unknown dtype: {dtype}") -ProfileGetter = namedtuple("ProfileGetter", "start, end") +@dataclass(frozen=True) +class ProfileGetter: + start: int + end: int def get_native_event(evt): @@ -1173,6 +1205,7 @@ def _get_fft_backend(queue) -> FFTBackend: "Falling back to slower implementation.") return FFTBackend.loopy + import platform if (sys.platform == "darwin" and platform.machine() == "x86_64" and queue.context.devices[0].platform.name From 05cbf8e5ea0c754645934c1b8d3b69c44856838e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 21 Sep 2022 19:07:48 +0300 Subject: [PATCH 038/335] call run_pylint on gitlab --- .github/workflows/ci.yml | 3 +-- .gitlab-ci.yml | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35c8480fc..b48e98298 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ci-support-v0 build_py_project - run_pylint "$(basename $GITHUB_REPOSITORY)" test/test_*.py + run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py, test/*.py docs: name: Documentation @@ -87,7 +87,6 @@ jobs: build_py_project_in_conda_env run_examples - downstream_tests: strategy: matrix: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce90a8939..2206c2222 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,6 +134,7 @@ Pylint: - curl -L -O https://tiker.net/ci-support-v0 - . ci-support-v0 - build_py_project + - run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py, test/*.py tags: - python3 except: From e3ce093b0d3e6c831ffc967c18588702666fd003 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 14 Oct 2022 13:59:01 -0500 Subject: [PATCH 039/335] Bump versions of various github actions components --- .github/workflows/autopush.yml | 2 +- .github/workflows/ci.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index f89b08ac5..900413986 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -9,7 +9,7 @@ jobs: name: Automatic push to gitlab.tiker.net runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: | mkdir ~/.ssh && echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config eval $(ssh-agent) && echo "$GITLAB_AUTOPUSH_KEY" | ssh-add - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b48e98298..0a3270c08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,9 +12,9 @@ jobs: name: Flake8 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: # matches compat target in setup.py python-version: '3.6' @@ -27,7 +27,7 @@ jobs: name: Pylint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" run: | USE_CONDA_BUILD=1 @@ -41,7 +41,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" run: | CONDA_ENVIRONMENT=.test-conda-env-py3.yml @@ -54,7 +54,7 @@ jobs: name: Conda Pytest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -66,7 +66,7 @@ jobs: name: Conda Pytest Symengine runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -76,7 +76,7 @@ jobs: name: Conda Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -94,7 +94,7 @@ jobs: name: Tests for downstream project ${{ matrix.downstream_project }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: "Main Script" env: DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }} From 3b8fba325402ee70c5178eaba0697140d449ddb4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sat, 29 Oct 2022 14:38:58 -0500 Subject: [PATCH 040/335] Bump compatibility target to Py3.8 --- .github/workflows/ci.yml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a3270c08..e88c47b7f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: uses: actions/setup-python@v4 with: # matches compat target in setup.py - python-version: '3.6' + python-version: '3.8' - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh diff --git a/setup.py b/setup.py index 19ca094fc..f221ea887 100644 --- a/setup.py +++ b/setup.py @@ -96,7 +96,7 @@ def write_git_revision(package_name): author_email="inform@tiker.net", license="MIT", packages=["sumpy", "sumpy.expansion"], - python_requires="~=3.6", + python_requires="~=3.8", install_requires=[ "pytools>=2021.1.1", "loopy>=2021.1", From edf2dfc196e1bc49853d41781d30b70cc1e39238 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sat, 29 Oct 2022 14:39:12 -0500 Subject: [PATCH 041/335] Improve documentation for expansion toys --- doc/eval.rst | 8 +-- sumpy/toys.py | 138 +++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 112 insertions(+), 34 deletions(-) diff --git a/doc/eval.rst b/doc/eval.rst index e37447e7e..73b45b43f 100644 --- a/doc/eval.rst +++ b/doc/eval.rst @@ -1,5 +1,5 @@ -Differentiation and Evaluation -============================== +Working with Values of Potentials +================================= Visualization of Potentials --------------------------- @@ -11,7 +11,7 @@ Differentiation of Potentials .. automodule:: sumpy.point_calculus -Support for Numerical Experiments with Expansions -------------------------------------------------- +Support for Numerical Experiments with Expansions ("Expansion toys") +-------------------------------------------------------------------- .. automodule:: sumpy.toys diff --git a/sumpy/toys.py b/sumpy/toys.py index be3bf843a..12e85031d 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -1,3 +1,5 @@ +from __future__ import annotations + __copyright__ = """ Copyright (C) 2017 Andreas Kloeckner Copyright (C) 2017 Matt Wala @@ -23,14 +25,22 @@ THE SOFTWARE. """ +from typing import Sequence, Union, Optional, TYPE_CHECKING + from pytools import memoize_method from numbers import Number from functools import partial from sumpy.kernel import TargetTransformationRemover +if TYPE_CHECKING: + from sumpy.kernel import Kernel + from sumpy.visualization import FieldPlotter + import pyopencl # noqa: F401 + import numpy as np # noqa: F401 import loopy as lp # noqa: F401 import pyopencl as cl +import pyopencl.array import logging logger = logging.getLogger(__name__) @@ -53,6 +63,7 @@ .. autofunction:: combine_inner_outer .. autofunction:: combine_halfspace .. autofunction:: combine_halfspace_and_outer +.. autofunction:: l_inf These functions help with plotting: @@ -69,6 +80,7 @@ .. autoclass:: ExpansionPotentialSource .. autoclass:: MultipoleExpansion .. autoclass:: LocalExpansion +.. autoclass:: PotentialExpressionNode .. autoclass:: Sum .. autoclass:: Product .. autoclass:: SchematicVisitor @@ -85,7 +97,7 @@ class ToyContext: .. automethod:: __init__ """ - def __init__(self, cl_context, kernel, + def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, mpole_expn_class=None, local_expn_class=None, expansion_factory=None, @@ -310,16 +322,21 @@ class PotentialSource: .. automethod:: __rmul__ """ - def __init__(self, toy_ctx): + def __init__(self, toy_ctx: ToyContext): self.toy_ctx = toy_ctx - def eval(self, targets): + def eval(self, targets: np.ndarray) -> np.ndarray: + """ + :param targets: An array of shape ``(dim, ntargets)``. + :returns: an array of shape ``(ntargets,)``. + """ raise NotImplementedError() - def __neg__(self): + def __neg__(self) -> PotentialSource: return -1*self - def __add__(self, other): + def __add__(self, other: Union[Number, np.number, PotentialSource] + ) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -329,13 +346,17 @@ def __add__(self, other): __radd__ = __add__ - def __sub__(self, other): + def __sub__(self, + other: Union[Number, np.number, PotentialSource]) -> PotentialSource: return self.__add__(-other) - def __rsub__(self, other): + def __rsub__(self, + other: Union[Number, np.number, PotentialSource] + ) -> PotentialSource: return (-self).__add__(other) - def __mul__(self, other): + def __mul__(self, + other: Union[Number, np.number, PotentialSource]) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -348,14 +369,16 @@ def __mul__(self, other): class ConstantPotential(PotentialSource): """ + Inherits from :class:`PotentialSource`. + .. automethod:: __init__ """ - def __init__(self, toy_ctx, value): + def __init__(self, toy_ctx: ToyContext, value): super().__init__(toy_ctx) self.value = np.array(value) - def eval(self, targets): + def eval(self, targets: np.ndarray) -> np.ndarray: pot = np.empty(targets.shape[-1], dtype=self.value.dtype) pot.fill(self.value) return pot @@ -363,29 +386,37 @@ def eval(self, targets): class OneOnBallPotential(PotentialSource): """ + A potential that is the characteristic function on a ball. + + Inherits from :class:`PotentialSource`. + .. automethod:: __init__ """ - def __init__(self, toy_ctx, center, radius): + def __init__(self, + toy_ctx: ToyContext, center: np.ndarray, radius: float) -> None: super().__init__(toy_ctx) self.center = np.asarray(center) self.radius = radius - def eval(self, targets): + def eval(self, targets: np.ndarray) -> np.ndarray: dist_vec = targets - self.center[:, np.newaxis] return (np.sum(dist_vec**2, axis=0) < self.radius**2).astype(np.float64) class HalfspaceOnePotential(PotentialSource): """ + A potential that is the characteristic function of a halfspace. + .. automethod:: __init__ """ - def __init__(self, toy_ctx, center, axis, side=1): + def __init__(self, toy_ctx: ToyContext, center: np.ndarray, + axis: int, side: int = 1) -> None: super().__init__(toy_ctx) self.center = np.asarray(center) self.axis = axis self.side = side - def eval(self, targets): + def eval(self, targets: np.ndarray) -> np.ndarray: return ( (self.side*(targets[self.axis] - self.center[self.axis])) >= 0 ).astype(np.float64) @@ -393,6 +424,8 @@ def eval(self, targets): class PointSources(PotentialSource): """ + Inherits from :class:`PotentialSource`. + .. attribute:: points ``[ndim, npoints]`` @@ -400,14 +433,16 @@ class PointSources(PotentialSource): .. automethod:: __init__ """ - def __init__(self, toy_ctx, points, weights, center=None): + def __init__(self, + toy_ctx: ToyContext, points: np.ndarray, weights: np.ndarray, + center: Optional[np.ndarray] = None): super().__init__(toy_ctx) self.points = points self.weights = weights self._center = center - def eval(self, targets): + def eval(self, targets: np.ndarray) -> np.ndarray: evt, (potential,) = self.toy_ctx.get_p2p()( self.toy_ctx.queue, targets, self.points, [self.weights], out_host=True, @@ -425,6 +460,8 @@ def center(self): class ExpansionPotentialSource(PotentialSource): """ + Inherits from :class:`PotentialSource`. + .. attribute:: radius Not used mathematically. Just for visualization, purely advisory. @@ -434,6 +471,8 @@ class ExpansionPotentialSource(PotentialSource): Passed to :func:`matplotlib.pyplot.annotate`. Used for customizing the expansion label. Changing the label text is supported by passing the kwarg *s*. Just for visualization, purely advisory. + + .. automethod:: __init__ """ def __init__(self, toy_ctx, center, rscale, order, coeffs, derived_from, radius=None, expn_style=None, text_kwargs=None): @@ -455,17 +494,31 @@ def with_coeffs(self, coeffs): class MultipoleExpansion(ExpansionPotentialSource): - def eval(self, targets): + """ + Inherits from :class:`ExpansionPotentialSource`. + """ + + def eval(self, targets: np.ndarray) -> np.ndarray: return _e2p(self, targets, self.toy_ctx.get_m2p(self.order)) class LocalExpansion(ExpansionPotentialSource): - def eval(self, targets): + """ + Inherits from :class:`ExpansionPotentialSource`. + """ + + def eval(self, targets: np.ndarray) -> np.ndarray: return _e2p(self, targets, self.toy_ctx.get_l2p(self.order)) class PotentialExpressionNode(PotentialSource): - def __init__(self, psources): + """ + Inherits from :class:`PotentialSource`. + + .. automethod:: __init__ + """ + + def __init__(self, psources: Sequence[PotentialSource]) -> None: from pytools import single_valued super().__init__( single_valued(psource.toy_ctx for psource in psources)) @@ -473,7 +526,7 @@ def __init__(self, psources): self.psources = psources @property - def center(self): + def center(self) -> np.ndarray: for psource in self.psources: try: return psource.center @@ -484,7 +537,11 @@ def center(self): class Sum(PotentialExpressionNode): - def eval(self, targets): + """ + Inherits from :class:`PotentialExpressionNode`. + """ + + def eval(self, targets: np.ndarray) -> np.ndarray: result = 0 for psource in self.psources: result = result + psource.eval(targets) @@ -493,7 +550,11 @@ def eval(self, targets): class Product(PotentialExpressionNode): - def eval(self, targets): + """ + Inherits from :class:`PotentialExpressionNode`. + """ + + def eval(self, targets: np.ndarray) -> np.ndarray: result = 1 for psource in self.psources: result = result * psource.eval(targets) @@ -503,7 +564,9 @@ def eval(self, targets): # }}} -def multipole_expand(psource, center, order=None, rscale=1, **expn_kwargs): +def multipole_expand(psource: PotentialSource, + center: np.ndarray, order: Optional[int] = None, + rscale: float = 1, **expn_kwargs) -> MultipoleExpansion: if isinstance(psource, PointSources): if order is None: raise ValueError("order may not be None") @@ -523,7 +586,10 @@ def multipole_expand(psource, center, order=None, rscale=1, **expn_kwargs): raise TypeError(f"do not know how to expand '{type(psource).__name__}'") -def local_expand(psource, center, order=None, rscale=1, **expn_kwargs): +def local_expand( + psource: PotentialSource, + center: np.ndarray, order: Optional[int] = None, rscale: Number = 1, + **expn_kwargs) -> LocalExpansion: if isinstance(psource, PointSources): if order is None: raise ValueError("order may not be None") @@ -551,12 +617,16 @@ def local_expand(psource, center, order=None, rscale=1, **expn_kwargs): raise TypeError(f"do not know how to expand '{type(psource).__name__}'") -def logplot(fp, psource, **kwargs): +def logplot(fp: FieldPlotter, psource: PotentialSource, **kwargs) -> None: fp.show_scalar_in_matplotlib( np.log10(np.abs(psource.eval(fp.points) + 1e-15)), **kwargs) -def combine_inner_outer(psource_inner, psource_outer, radius, center=None): +def combine_inner_outer( + psource_inner: PotentialSource, + psource_outer: PotentialSource, + radius: Optional[float], + center: Optional[np.ndarray] = None) -> PotentialSource: if center is None: center = psource_inner.center if radius is None: @@ -568,7 +638,9 @@ def combine_inner_outer(psource_inner, psource_outer, radius, center=None): + psource_outer * (1 - ball_one)) -def combine_halfspace(psource_pos, psource_neg, axis, center=None): +def combine_halfspace(psource_pos: PotentialSource, + psource_neg: PotentialSource, axis: int, + center: Optional[np.ndarray] = None) -> PotentialSource: if center is None: center = psource_pos.center @@ -578,8 +650,12 @@ def combine_halfspace(psource_pos, psource_neg, axis, center=None): + psource_neg * (1-halfspace_one)) -def combine_halfspace_and_outer(psource_pos, psource_neg, psource_outer, - axis, radius=None, center=None): +def combine_halfspace_and_outer( + psource_pos: PotentialSource, + psource_neg: PotentialSource, + psource_outer: PotentialSource, + axis: int, radius: Optional[Number] = None, + center: Optional[np.ndarray] = None) -> PotentialSource: if center is None: center = psource_pos.center @@ -591,7 +667,9 @@ def combine_halfspace_and_outer(psource_pos, psource_neg, psource_outer, psource_outer, radius, center) -def l_inf(psource, radius, center=None, npoints=100, debug=False): +def l_inf(psource: PotentialSource, radius: float, + center: Optional[np.ndarray] = None, npoints: int = 100, + debug: bool = False) -> np.number: if center is None: center = psource.center From d28679ed21b57480554410c904a1094645fdddde Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 4 Nov 2022 16:43:24 +0200 Subject: [PATCH 042/335] move pytest to extras-require --- setup.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index f221ea887..18e9b410c 100644 --- a/setup.py +++ b/setup.py @@ -102,11 +102,12 @@ def write_git_revision(package_name): "loopy>=2021.1", "boxtree>=2018.1", "arraycontext", - "pytest>=2.3", "pyrsistent>=0.16.0", - "dataclasses>=0.7;python_version<='3.6'", "sympy>=0.7.2", "pymbolic>=2021.1", "pyvkfft>=2022.1", ], + extras_require={ + "test": ["pytest>=2.3"], + }, ) From ddac6dd4f88f2b59409cf09276045c8c1d2b7902 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 4 Nov 2022 16:45:04 +0200 Subject: [PATCH 043/335] import from collections.abc only --- sumpy/tools.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index f1ac7c1e0..3d79ded5b 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -686,10 +686,7 @@ def get_kernel(self): # Author: Raymond Hettinger # License: MIT -try: - from collections.abc import MutableSet -except ImportError: - from collections import MutableSet +from collections.abc import MutableSet class OrderedSet(MutableSet): From 32b6576908406f0b53c5e5871f768b2961b34e61 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 23 Nov 2022 00:42:59 -0600 Subject: [PATCH 044/335] Add CITATION.cff --- CITATION.cff | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..525f90837 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,22 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: +- family-names: "Kloeckner" + given-names: "Andreas" + orcid: "https://orcid.org/0000-0003-1228-519X" +- family-names: Fernando + given-names: Isuru +- family-names: Wala + given-names: Matt +- family-names: Fikl + given-names: Alexandru +- family-names: Beams + given-names: Natalie +- family-names: Gao + given-names: Hao + +title: "sumpy" +version: 2022. +# doi: 10.5281/zenodo.6533956 +# date-released: 2022-03-10 +url: "https://github.com/inducer/sumpy" From 2e885bfe5c414a2314fa71076b8307c800762ed2 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 23 Nov 2022 00:44:13 -0600 Subject: [PATCH 045/335] Bump version to 2022.1 --- sumpy/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/version.py b/sumpy/version.py index 74ea3737e..5f8b4ff71 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -41,8 +41,8 @@ # }}} -VERSION = (2020, 2) -VERSION_STATUS = "beta1" +VERSION = (2022, 1) +VERSION_STATUS = "" VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS KERNEL_VERSION = (VERSION, _git_rev, 0) From 4dd77754d45e1a5e7b60fd3bda510a8028e9a675 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 23 Nov 2022 00:49:05 -0600 Subject: [PATCH 046/335] Add Zenodo badge to REDME --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index 3c5bf836f..c12a10722 100644 --- a/README.rst +++ b/README.rst @@ -10,6 +10,9 @@ sumpy: n-body kernels and translation operators .. image:: https://badge.fury.io/py/sumpy.png :alt: Python Package Index Release Page :target: https://pypi.org/project/sumpy/ +.. image:: https://zenodo.org/badge/1856097.svg + :alt: Zenodo DOI for latest release + :target: https://zenodo.org/badge/latestdoi/1856097 Sumpy is mainly a 'scaffolding' package for Fast Multipole and quadrature methods. If you're building one of those and need code generation for the required Multipole From 86e4538943093dde9fcda4db89b3e06db2157745 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 23 Nov 2022 00:49:18 -0600 Subject: [PATCH 047/335] Update CITATION.cff for release --- CITATION.cff | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 525f90837..96221bb40 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -16,7 +16,7 @@ authors: given-names: Hao title: "sumpy" -version: 2022. -# doi: 10.5281/zenodo.6533956 -# date-released: 2022-03-10 +version: 2022.1 +doi: 10.5281/zenodo.7349787 +date-released: 2022-11-23 url: "https://github.com/inducer/sumpy" From 5cd4939dd228f99f38500b3351dcdad33fe903c5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 6 Jan 2023 04:43:58 +0530 Subject: [PATCH 048/335] Optimize M2L for GPU (#138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Optimize M2L for GPU * Move icoeff_tgt to top level iname * Fix substitution * use loopy branch * remove unused imports * go back to loopy main * Reduce diff * move all optimizations to m2l_translation * Remove extraneous FIXME Co-authored-by: Andreas Klöckner --- sumpy/e2e.py | 9 +++++---- sumpy/expansion/m2l.py | 25 +++++++++++++++++++++++-- test/test_fmm.py | 11 +++++++---- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 9c96ac569..89df2789f 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -458,7 +458,7 @@ def get_kernel(self, result_dtype): end tgt_expansions[tgt_ibox - tgt_base_ibox, icoeff_tgt] = \ tgt_expansion[icoeff_tgt] \ - {dep=update_coeffs, dup=icoeff_tgt} + {dep=update_coeffs, dup=icoeff_tgt,id=write_e2e} end """], [ @@ -497,7 +497,8 @@ def get_kernel(self, result_dtype): m2l_translation_classes_dependent_ndata), ncoeff_tgt=ncoeff_tgt, ncoeff_src=ncoeff_src), - lang_version=MOST_RECENT_LANGUAGE_VERSION + lang_version=MOST_RECENT_LANGUAGE_VERSION, + silenced_warnings="write_race(write_e2e*)", ) loopy_knl = lp.merge([translation_knl, loopy_knl]) @@ -514,8 +515,8 @@ def get_kernel(self, result_dtype): def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) - # FIXME - knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") + knl = self.tgt_expansion.m2l_translation.optimize_loopy_kernel( + knl, self.tgt_expansion, self.src_expansion) return knl diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 3d4b89e76..1845f1d33 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -246,8 +246,11 @@ def postprocess_local_nexprs(self, tgt_expansion, src_expansion): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) -# }}} M2LTranslationBase + def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): + return lp.tag_inames(knl, dict(itgt_box="g.0")) + +# }}} M2LTranslationBase # {{{ VolumeTaylorM2LTranslation @@ -740,8 +743,26 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, return super().postprocess_local_exprs(tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) -# }}} VolumeTaylorM2LWithFFT + def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): + # Transform the kernel so that icoeff_tgt and its duplicates + # become the outermost iname + inames = knl.default_entrypoint.all_inames() + knl = lp.rename_inames(knl, + [iname for iname in inames if "icoeff_tgt" in iname], + "icoeff_tgt", existing_ok=True) + knl = lp.add_inames_to_insn(knl, "icoeff_tgt", None) + # unprivatize icoeff_tgt because it is the outermost iname + knl = lp.unprivatize_temporaries_with_inames(knl, + {"icoeff_tgt"}, {"tgt_expansion"}) + + knl = lp.split_iname(knl, "icoeff_tgt", 32, inner_iname="inner", + inner_tag="l.0") + knl = lp.tag_inames(knl, dict(itgt_box="g.0")) + return knl + + +# }}} VolumeTaylorM2LWithFFT # {{{ FourierBesselM2LTranslation diff --git a/test/test_fmm.py b/test/test_fmm.py index f447999cf..d00b5b456 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -704,10 +704,13 @@ def test_sumpy_target_point_multiplier(actx_factory, deriv_axes, visualize=False # }}} -# You can test individual routines by typing -# $ python test_fmm.py 'test_sumpy_fmm(_acf, LaplaceKernel(2), -# VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False, False, -# visualize=True)' +""" +You can test individual routines by typing +$ python test/test_fmm.py 'test_sumpy_fmm(_acf, LaplaceKernel(2), + VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, + order_varies_with_level=False, use_translation_classes=True, use_fft=True, + fft_backend="pyvkfft", visualize=True)' +""" if __name__ == "__main__": if len(sys.argv) > 1: From 07ca1ee6df51ee463fdf321c2b4b2e3c7673ddf3 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 6 Jan 2023 06:38:33 +0530 Subject: [PATCH 049/335] Use a vec array for local_isrc* for coalesced array access (#151) * Merge local_isrc and local_isrc_strength and tag as vec for coalescced access * Use new name * Add an explanation about the optimization * Back to loopy main with renamed transform Co-authored-by: Andreas Kloeckner --- sumpy/p2p.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index c24fa8d91..385e90b03 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -656,6 +656,18 @@ def get_optimized_kernel(self, max_nsources_in_one_box, knl = lp.tag_inames(knl, {"itgt_box": "g.0", "inner": "l.0"}) knl = lp.set_temporary_address_space(knl, ["local_isrc", "local_isrc_strength"], lp.AddressSpace.LOCAL) + + # By having a concatenated memory layout of the temporaries + # and marking the first axis as vec, we are transposing the + # the arrays and also making the access of the source + # co-ordinates and the strength for each source a coalesced + # access of 256 bits (assuming double precision) which is + # optimized for NVIDIA GPUs. On an NVIDIA Titan V, this + # optimization led to a 8% speedup in the performance. + knl = lp.concatenate_arrays(knl, + ["local_isrc", "local_isrc_strength"], "local_isrc") + knl = lp.tag_array_axes(knl, "local_isrc", "vec,C") + knl = lp.add_inames_for_unused_hw_axes(knl) # knl = lp.set_options(knl, write_code=True) From 93e28ef0e50dae83598b33c7785c2bf06e7ee715 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 10 Jan 2023 11:28:55 -0600 Subject: [PATCH 050/335] Placate flake8-comprehensions --- examples/sym-exp-complexity.py | 2 +- sumpy/cse.py | 9 ++++---- sumpy/e2e.py | 39 +++++++++++++++++----------------- sumpy/e2p.py | 12 +++++------ sumpy/expansion/__init__.py | 2 +- sumpy/expansion/m2l.py | 18 ++++++++-------- sumpy/fmm.py | 16 +++++++------- sumpy/kernel.py | 2 +- sumpy/p2e.py | 8 +++---- sumpy/p2p.py | 34 ++++++++++++++--------------- sumpy/qbx.py | 10 ++++----- sumpy/tools.py | 4 ++-- sumpy/toys.py | 16 +++++++------- 13 files changed, 86 insertions(+), 86 deletions(-) diff --git a/examples/sym-exp-complexity.py b/examples/sym-exp-complexity.py index 779bfc360..138c9c871 100644 --- a/examples/sym-exp-complexity.py +++ b/examples/sym-exp-complexity.py @@ -55,7 +55,7 @@ def find_flops(): flops = lp.get_op_map(loopy_knl).filter_by(dtype=[flop_type]).sum() flop_counts.append( flops.eval_with_dict( - dict(isrc_start=0, isrc_stop=1, ntgt_boxes=1))) + {"isrc_start": 0, "isrc_stop": 1, "ntgt_boxes": 1})) print(orders) print(flop_counts) diff --git a/sumpy/cse.py b/sumpy/cse.py index 49ba690f2..f7023aa14 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -227,8 +227,7 @@ def get_subset_candidates(self, argset, restrict_to_funcset=None): """ iarg = iter(argset) - indices = { - fi for fi in self.arg_to_funcset[next(iarg)]} + indices = set(self.arg_to_funcset[next(iarg)]) if restrict_to_funcset is not None: indices &= restrict_to_funcset @@ -366,7 +365,7 @@ def opt_cse(exprs): :arg exprs: A list of sympy expressions: the expressions to optimize. :return: A dictionary of expression substitutions """ - opt_subs = dict() + opt_subs = {} from sumpy.tools import OrderedSet adds = OrderedSet() @@ -446,7 +445,7 @@ def tree_cse(exprs, symbols, opt_subs=None): :return: A pair (replacements, reduced exprs) """ if opt_subs is None: - opt_subs = dict() + opt_subs = {} # {{{ find repeated sub-expressions and used symbols @@ -498,7 +497,7 @@ def find_repeated(expr): replacements = [] - subs = dict() + subs = {} def rebuild(expr): if not isinstance(expr, (Basic, Unevaluated)): diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 89df2789f..c357082b2 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -262,7 +262,7 @@ def get_kernel(self): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION ) @@ -492,11 +492,12 @@ def get_kernel(self, result_dtype): name=self.name, assumptions="ntgt_boxes>=1", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim, - m2l_translation_classes_dependent_ndata=( + fixed_parameters={ + "dim": self.dim, + "m2l_translation_classes_dependent_ndata": ( m2l_translation_classes_dependent_ndata), - ncoeff_tgt=ncoeff_tgt, - ncoeff_src=ncoeff_src), + "ncoeff_tgt": ncoeff_tgt, + "ncoeff_src": ncoeff_src}, lang_version=MOST_RECENT_LANGUAGE_VERSION, silenced_warnings="write_race(write_e2e*)", ) @@ -600,10 +601,10 @@ def get_kernel(self, result_dtype): name=self.name, assumptions="ntranslation_classes>=1", default_offset=lp.auto, - fixed_parameters=dict( - dim=self.dim, - m2l_translation_classes_dependent_ndata=( - m2l_translation_classes_dependent_ndata)), + fixed_parameters={ + "dim": self.dim, + "m2l_translation_classes_dependent_ndata": ( + m2l_translation_classes_dependent_ndata)}, lang_version=MOST_RECENT_LANGUAGE_VERSION ) @@ -704,9 +705,9 @@ def get_kernel(self, result_dtype): ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), name=self.name, assumptions="nsrc_boxes>=1", - fixed_parameters=dict( - nsrc_coeffs=nsrc_coeffs, - npreprocessed_src_coeffs=npreprocessed_src_coeffs), + fixed_parameters={ + "nsrc_coeffs": nsrc_coeffs, + "npreprocessed_src_coeffs": npreprocessed_src_coeffs}, default_offset=lp.auto, lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) @@ -793,11 +794,11 @@ def get_kernel(self, result_dtype): name=self.name, assumptions="ntgt_boxes>=1", default_offset=lp.auto, - fixed_parameters=dict( - dim=self.dim, - nsrc_coeffs=ntgt_coeffs_before_postprocessing, - ntgt_coeffs=ntgt_coeffs, - ), + fixed_parameters={ + "dim": self.dim, + "nsrc_coeffs": ntgt_coeffs_before_postprocessing, + "ntgt_coeffs": ntgt_coeffs, + }, lang_version=MOST_RECENT_LANGUAGE_VERSION ) @@ -913,7 +914,7 @@ def get_kernel(self): name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim), + fixed_parameters={"dim": self.dim, "nchildren": 2**self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: @@ -1017,7 +1018,7 @@ def get_kernel(self): ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim), + fixed_parameters={"dim": self.dim, "nchildren": 2**self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 611b2718d..a62236b0f 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -198,7 +198,7 @@ def get_kernel(self): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_result*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim, nresults=len(result_names)), + fixed_parameters={"dim": self.dim, "nresults": len(result_names)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -210,7 +210,7 @@ def get_kernel(self): def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.tag_inames(knl, dict(itgt_box="g.0")) + knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") @@ -312,9 +312,9 @@ def get_kernel(self): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_result*)", default_offset=lp.auto, - fixed_parameters=dict( - dim=self.dim, - nresults=len(result_names)), + fixed_parameters={ + "dim": self.dim, + "nresults": len(result_names)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -327,7 +327,7 @@ def get_kernel(self): def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.tag_inames(knl, dict(itgt_box="g.0")) + knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 8bc04ae5b..d4ef6e6a7 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -559,7 +559,7 @@ def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: def get_full_coefficient_identifiers(self): identifiers = super().get_full_coefficient_identifiers() key = self._get_mi_ordering_key() - return list(sorted(identifiers, key=key)) + return sorted(identifiers, key=key) @memoize_method def get_stored_ids_and_unscaled_projection_matrix(self): diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 1845f1d33..dbcc7d260 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -170,7 +170,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, When FFT is turned on, the output expressions are assumed to be transformed into Fourier space at the end by the caller. """ - return tuple() + return () def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): """Return the number of expressions returned by @@ -247,7 +247,7 @@ def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): - return lp.tag_inames(knl, dict(itgt_box="g.0")) + return lp.tag_inames(knl, {"itgt_box": "g.0"}) # }}} M2LTranslationBase @@ -443,8 +443,8 @@ def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, circulant_matrix_mis, _, _ = \ self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) - circulant_matrix_ident_to_index = dict((ident, i) for i, ident in - enumerate(circulant_matrix_mis)) + circulant_matrix_ident_to_index = { + ident: i for i, ident in enumerate(circulant_matrix_mis)} ncoeff_src = len(src_expansion.get_coefficient_identifiers()) ncoeff_preprocessed = self.preprocess_multipole_nexprs(tgt_expansion, @@ -495,7 +495,7 @@ def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, ...], name="m2l_preprocess_inner", lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - fixed_parameters=dict(noutput_coeffs=ncoeff_preprocessed), + fixed_parameters={"noutput_coeffs": ncoeff_preprocessed}, ) def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, @@ -524,8 +524,8 @@ def postprocess_local_loopy_knl(self, tgt_expansion, src_expansion, circulant_matrix_mis, needed_vector_terms, _ = \ self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) - circulant_matrix_ident_to_index = dict((ident, i) for i, ident in - enumerate(circulant_matrix_mis)) + circulant_matrix_ident_to_index = {ident: i for i, ident in + enumerate(circulant_matrix_mis)} ncoeff_tgt = len(tgt_expansion.get_coefficient_identifiers()) ncoeff_before_postprocessed = self.postprocess_local_nexprs(tgt_expansion, @@ -758,7 +758,7 @@ def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): knl = lp.split_iname(knl, "icoeff_tgt", 32, inner_iname="inner", inner_tag="l.0") - knl = lp.tag_inames(knl, dict(itgt_box="g.0")) + knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) return knl @@ -1012,7 +1012,7 @@ def translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, from sumpy.tools import to_complex_dtype insns = to_loopy_insns( sac.assignments.items(), - vector_names=set(["d"]), + vector_names=frozenset({"d"}), pymbolic_expr_maps=[tgt_expansion.get_code_transformer()], retain_names=tgt_coeff_names, complex_dtype=to_complex_dtype(result_dtype), diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 00ac1f380..86b4412ae 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -540,16 +540,16 @@ def max_ntargets_in_one_box(self): # use a FilteredTargetListsInTreeOrder object. def box_source_list_kwargs(self): - return dict( - box_source_starts=self.tree.box_source_starts, - box_source_counts_nonchild=self.tree.box_source_counts_nonchild, - sources=self.tree.sources) + return { + "box_source_starts": self.tree.box_source_starts, + "box_source_counts_nonchild": self.tree.box_source_counts_nonchild, + "sources": self.tree.sources} def box_target_list_kwargs(self): - return dict( - box_target_starts=self.tree.box_target_starts, - box_target_counts_nonchild=self.tree.box_target_counts_nonchild, - targets=self.tree.targets) + return { + "box_target_starts": self.tree.box_target_starts, + "box_target_counts_nonchild": self.tree.box_target_counts_nonchild, + "targets": self.tree.targets} # }}} diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 70dd14e25..7eb70ff77 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1009,7 +1009,7 @@ def __repr__(self): def get_derivative_coeff_dict_at_source(self, expr_dict): expr_dict = self.inner_kernel.get_derivative_coeff_dict_at_source( expr_dict) - result = dict() + result = {} for mi, coeff in expr_dict.items(): new_mi = list(mi) new_mi[self.axis] += 1 diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 9532f6ecf..c41dbb486 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -213,8 +213,8 @@ def get_kernel(self): assumptions="nsrc_boxes>=1", silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim, - strength_count=self.strength_count), + fixed_parameters={ + "dim": self.dim, "strength_count": self.strength_count}, lang_version=MOST_RECENT_LANGUAGE_VERSION) for knl in self.source_kernels: @@ -334,8 +334,8 @@ def get_kernel(self): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim, - strength_count=self.strength_count), + fixed_parameters={"dim": self.dim, + "strength_count": self.strength_count}, lang_version=MOST_RECENT_LANGUAGE_VERSION) for knl in self.source_kernels: diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 385e90b03..dc8368da0 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -236,10 +236,10 @@ def get_kernel(self): assumptions="nsources>=1 and ntargets>=1", name=self.name, default_offset=lp.auto, - fixed_parameters=dict( - dim=self.dim, - nstrengths=self.strength_count, - nresults=len(self.target_kernels)), + fixed_parameters={ + "dim": self.dim, + "nstrengths": self.strength_count, + "nresults": len(self.target_kernels)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -301,7 +301,7 @@ def get_kernel(self): arguments, assumptions="nsources>=1 and ntargets>=1", name=self.name, - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -380,12 +380,12 @@ def get_kernel(self): assumptions="nresult>=1", silenced_warnings="write_race(write_p2p*)", name=self.name, - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - loopy_knl = lp.add_dtypes(loopy_knl, - dict(nsources=np.int32, ntargets=np.int32)) + loopy_knl = lp.add_dtypes( + loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) for knl in self.target_kernels + self.source_kernels: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) @@ -620,17 +620,17 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, name=self.name, silenced_warnings=["write_race(write_csr*)", "write_race(prefetch_src)", "write_race(prefetch_charge)"], - fixed_parameters=dict( - dim=self.dim, - nstrengths=self.strength_count, - nsplit=nsplit, - src_outer_limit=src_outer_limit, - tgt_outer_limit=tgt_outer_limit, - noutputs=len(self.target_kernels)), + fixed_parameters={ + "dim": self.dim, + "nstrengths": self.strength_count, + "nsplit": nsplit, + "src_outer_limit": src_outer_limit, + "tgt_outer_limit": tgt_outer_limit, + "noutputs": len(self.target_kernels)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) - loopy_knl = lp.add_dtypes(loopy_knl, - dict(nsources=np.int32, ntargets=np.int32)) + loopy_knl = lp.add_dtypes( + loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") diff --git a/sumpy/qbx.py b/sumpy/qbx.py index a3042ef91..bd9d8fd22 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -272,7 +272,7 @@ def get_kernel(self): assumptions="ntargets>=1 and nsources>=1", default_offset=lp.auto, silenced_warnings="write_race(write_lpot*)", - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -349,7 +349,7 @@ def get_kernel(self): name=self.name, assumptions="ntargets>=1 and nsources>=1", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -429,12 +429,12 @@ def get_kernel(self): assumptions="nresult>=1", default_offset=lp.auto, silenced_warnings="write_race(write_lpot*)", - fixed_parameters=dict(dim=self.dim), + fixed_parameters={"dim": self.dim}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - loopy_knl = lp.add_dtypes(loopy_knl, - dict(nsources=np.int32, ntargets=np.int32)) + loopy_knl = lp.add_dtypes( + loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) for knl in self.source_kernels + self.target_kernels: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) diff --git a/sumpy/tools.py b/sumpy/tools.py index 3d79ded5b..5dd536c9f 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1101,8 +1101,8 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, expression=exp_table[table_idx % n], id=f"exp_{ilev}", depends_on=frozenset([f"idx_{ilev}"]), - within_inames=frozenset(map(lambda x: x.name, - [*broadcast_dims, iN1_sum, iN1, iN2])), + within_inames=frozenset({x.name for x in + [*broadcast_dims, iN1_sum, iN1, iN2]}), temp_var_type=lp.Optional(complex_dtype)), lp.Assignment( assignee=x[(*broadcast_dims, ifft + nfft * (iN1*N2 + iN2))], diff --git a/sumpy/toys.py b/sumpy/toys.py index 12e85031d..9fa67cbc2 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -735,10 +735,10 @@ def draw_annotation(to_pt, from_pt, label, arrowprops=None, **kwargs): import matplotlib.pyplot as plt - my_arrowprops = dict( - facecolor="black", - edgecolor="black", - arrowstyle="->") + my_arrowprops = { + "facecolor": "black", + "edgecolor": "black", + "arrowstyle": "->"} my_arrowprops.update(arrowprops) @@ -784,9 +784,9 @@ def visit_multipoleexpansion(self, psource): # # ------> M - text_kwargs = dict( - verticalalignment="center", - horizontalalignment="center") + text_kwargs = { + "verticalalignment": "center", + "horizontalalignment": "center"} label = "${}_{{{}}}$".format( type(psource).__name__[0].lower().replace("l", "\\ell"), @@ -805,7 +805,7 @@ def visit_multipoleexpansion(self, psource): font_size = mpl.rcParams["font.size"] shrinkB = 7/8 * font_size # noqa - arrowprops = dict(shrinkB=shrinkB, arrowstyle="<|-") + arrowprops = {"shrinkB": shrinkB, "arrowstyle": "<|-"} draw_annotation(psource.derived_from.center, psource.center, label, arrowprops, **text_kwargs) From de48dca1d497f0f244249da85d06cfb99af7c411 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 20 Jan 2023 10:17:35 -0600 Subject: [PATCH 051/335] install pyvkfft from conda for benchmarks --- asv.conf.json | 1 + 1 file changed, 1 insertion(+) diff --git a/asv.conf.json b/asv.conf.json index 9d214154f..674de5478 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -72,6 +72,7 @@ "pyopencl" : [""], "islpy" : [""], "pocl" : [""], + "pyvkfft": [""], "pip+git+https://github.com/inducer/pymbolic#egg=pymbolic": [""], "pip+git+https://gitlab.tiker.net/inducer/boxtree#egg=boxtree": [""], "pip+git+https://github.com/inducer/loopy#egg=loopy": [""], From 7de92e1b50ce88285bbd27a4498442fd87d5b233 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 14 Feb 2023 19:21:59 +0200 Subject: [PATCH 052/335] silence new flake8-bugbear B028 error --- sumpy/tools.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 5dd536c9f..f9abe6b7f 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1194,12 +1194,13 @@ def _get_fft_backend(queue) -> FFTBackend: try: import pyvkfft.opencl # noqa: F401 except ImportError: - warnings.warn("VkFFT not found. FFT runs will be slower.") + warnings.warn("VkFFT not found. FFT runs will be slower.", stacklevel=3) return FFTBackend.loopy if queue.properties & cl.command_queue_properties.OUT_OF_ORDER_EXEC_MODE_ENABLE: - warnings.warn("VkFFT does not support out of order queues yet. " - "Falling back to slower implementation.") + warnings.warn( + "VkFFT does not support out of order queues yet. " + "Falling back to slower implementation.", stacklevel=3) return FFTBackend.loopy import platform @@ -1207,9 +1208,10 @@ def _get_fft_backend(queue) -> FFTBackend: and platform.machine() == "x86_64" and queue.context.devices[0].platform.name == "Portable Computing Language"): - warnings.warn("Pocl miscompiles some VkFFT kernels. " + warnings.warn( + "PoCL miscompiles some VkFFT kernels. " "See https://github.com/inducer/sumpy/issues/129. " - "Falling back to slower implementation.") + "Falling back to slower implementation.", stacklevel=3) return FFTBackend.loopy return FFTBackend.pyvkfft From fa24fef1af53268077cbfeda69c2545330535631 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 16 Feb 2023 20:38:09 -0600 Subject: [PATCH 053/335] Introduce SUMPY_NO_CACHE_KERNELS to selectively disable caches (#159) --- sumpy/__init__.py | 24 +++++++++++++++--------- sumpy/tools.py | 12 ++++++++---- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/sumpy/__init__.py b/sumpy/__init__.py index b39ead2ec..bfcbf6d7c 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -67,12 +67,16 @@ def set_optimization_enabled(flag): "SUMPY_NO_CACHE" not in os.environ and "CG_NO_CACHE" not in os.environ) +NO_CACHE_KERNELS = tuple(os.environ.get("SUMPY_NO_CACHE_KERNELS", + "").split(",")) -def set_caching_enabled(flag): + +def set_caching_enabled(flag, no_cache_kernels=()): """Set whether :mod:`loopy` is allowed to use disk caching for its various code generation stages. """ - global CACHING_ENABLED + global CACHING_ENABLED, NO_CACHE_KERNELS + NO_CACHE_KERNELS = no_cache_kernels CACHING_ENABLED = flag @@ -81,17 +85,19 @@ class CacheMode: disk caches. """ - def __init__(self, new_flag): + def __init__(self, new_flag, new_no_cache_kernels=()): self.new_flag = new_flag + self.new_no_cache_kernels = new_no_cache_kernels def __enter__(self): - global CACHING_ENABLED - self.previous_mode = CACHING_ENABLED - CACHING_ENABLED = self.new_flag + global CACHING_ENABLED, NO_CACHE_KERNELS + self.previous_flag = CACHING_ENABLED + self.previous_kernels = NO_CACHE_KERNELS + set_caching_enabled(self.new_flag, self.new_no_cache_kernels) def __exit__(self, exc_type, exc_val, exc_tb): - global CACHING_ENABLED - CACHING_ENABLED = self.previous_mode - del self.previous_mode + set_caching_enabled(self.previous_flag, self.previous_kernels) + del self.previous_flag + del self.previous_kernels # }}} diff --git a/sumpy/tools.py b/sumpy/tools.py index f9abe6b7f..85b1f1c67 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -753,9 +753,11 @@ def __eq__(self, other): class KernelCacheMixin: @memoize_method def get_cached_optimized_kernel(self, **kwargs): - from sumpy import code_cache, CACHING_ENABLED, OPT_ENABLED + from sumpy import (code_cache, CACHING_ENABLED, OPT_ENABLED, + NO_CACHE_KERNELS) - if CACHING_ENABLED: + if CACHING_ENABLED and not ( + NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): import loopy.version from sumpy.version import KERNEL_VERSION cache_key = ( @@ -774,7 +776,8 @@ def get_cached_optimized_kernel(self, **kwargs): pass logger.info("%s: kernel cache miss", self.name) - if CACHING_ENABLED: + if CACHING_ENABLED and not ( + NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): logger.info("{}: kernel cache miss [key={}]".format( self.name, cache_key)) @@ -785,7 +788,8 @@ def get_cached_optimized_kernel(self, **kwargs): else: knl = self.get_kernel() - if CACHING_ENABLED: + if CACHING_ENABLED and not ( + NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): code_cache.store_if_not_present(cache_key, knl) return knl From 16a563e15122b17dc95c7f0410bb877a171a37d4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 29 Mar 2023 18:47:36 -0500 Subject: [PATCH 054/335] Fix remaining reference to removed np.object --- sumpy/point_calculus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 2e17c41a1..20d7435d3 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -261,7 +261,7 @@ def z(self): def norm(self, arg, p): if p == np.inf: - if arg.dtype == np.object: + if arg.dtype == object: return max( la.norm(x_i, p) for x_i in arg) From 55d7cd89347c25bc6fb65110f427f68dab9f8c56 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 6 Apr 2023 12:22:39 -0700 Subject: [PATCH 055/335] tag with vec only when the size is supported by pyopencl --- sumpy/p2p.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index dc8368da0..eba84537d 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -666,7 +666,9 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # optimization led to a 8% speedup in the performance. knl = lp.concatenate_arrays(knl, ["local_isrc", "local_isrc_strength"], "local_isrc") - knl = lp.tag_array_axes(knl, "local_isrc", "vec,C") + count = self.strength_count + self.dim + if count in [2, 3, 4, 8, 16]: + knl = lp.tag_array_axes(knl, "local_isrc", "vec,C") knl = lp.add_inames_for_unused_hw_axes(knl) # knl = lp.set_options(knl, write_code=True) From a669d98a8af3b166b73ffc56862025bdc9d72d73 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 21 Apr 2023 23:56:01 -0500 Subject: [PATCH 056/335] Move derivative taker to a separate file (#162) * Move derivative taker to a separate file * Add fold markers * fix docs --- doc/misc.rst | 2 +- sumpy/derivative_taker.py | 409 +++++++++++++++++++++++++++++++++++ sumpy/expansion/local.py | 4 +- sumpy/expansion/multipole.py | 2 +- sumpy/kernel.py | 40 ++-- sumpy/tools.py | 372 +------------------------------ 6 files changed, 434 insertions(+), 395 deletions(-) create mode 100644 sumpy/derivative_taker.py diff --git a/doc/misc.rst b/doc/misc.rst index 10b5042d5..f977fffd5 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -1,7 +1,7 @@ Misc Tools ========== -.. automodule:: sumpy.tools +.. automodule:: sumpy.derivative_taker .. automodule:: sumpy.symbolic diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py new file mode 100644 index 000000000..86b8a0240 --- /dev/null +++ b/sumpy/derivative_taker.py @@ -0,0 +1,409 @@ +__copyright__ = """ +Copyright (C) 2012 Andreas Kloeckner +Copyright (C) 2020 Isuru Fernando +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +__doc__ = """ + + Derivative Taker + ================ + + .. autoclass:: ExprDerivativeTaker + .. autoclass:: LaplaceDerivativeTaker + .. autoclass:: RadialDerivativeTaker + .. autoclass:: HelmholtzDerivativeTaker + .. autoclass:: DifferentiatedExprDerivativeTaker +""" + +from pytools.tag import tag_dataclass + +import numpy as np +import sumpy.symbolic as sym +from sumpy.tools import add_to_sac, add_mi + +from typing import Dict, Tuple, Any + +import logging + +logger = logging.getLogger(__name__) + + +# {{{ ExprDerivativeTaker + +class ExprDerivativeTaker: + """Facilitates the efficient computation of (potentially) high-order + derivatives of a given :mod:`sympy` expression *expr* while attempting + to maximize the number of common subexpressions generated. + This class defines the interface and realizes a baseline implementation. + More specialized implementations may offer better efficiency for special + cases. + .. automethod:: diff + """ + + def __init__(self, expr, var_list, rscale=1, sac=None): + r""" + A class to take scaled derivatives of the symbolic expression + expr w.r.t. variables var_list and the scaling parameter rscale. + Consider a Taylor multipole expansion: + .. math:: + f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i f) (x - y) \big|_{y = c} + \frac{(y - c)^i}{i!} . + Now suppose we would like to use a scaled version :math:`g` of the + kernel :math:`f`: + .. math:: + \begin{eqnarray*} + f (x) & = & g (x / \alpha),\\ + f^{(i)} (x) & = & \frac{1}{\alpha^i} g^{(i)} (x / \alpha) . + \end{eqnarray*} + where :math:`\alpha` is chosen to be on a length scale similar to + :math:`x` (for example by choosing :math:`\alpha` proporitional to the + size of the box for which the expansion is intended) so that :math:`x / + \alpha` is roughly of unit magnitude, to avoid arithmetic issues with + small arguments. This yields + .. math:: + f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i g) + \left( \frac{x - y}{\alpha} \right) \Bigg|_{y = c} + \cdot + \frac{(y - c)^i}{\alpha^i \cdot i!}. + Observe that the :math:`(y - c)` term is now scaled to unit magnitude, + as is the argument of :math:`g`. + With :math:`\xi = x / \alpha`, we find + .. math:: + \begin{eqnarray*} + g (\xi) & = & f (\alpha \xi),\\ + g^{(i)} (\xi) & = & \alpha^i f^{(i)} (\alpha \xi) . + \end{eqnarray*} + Generically for all kernels, :math:`f^{(i)} (\alpha \xi)` is computable + by taking a sufficient number of symbolic derivatives of :math:`f` and + providing :math:`\alpha \xi = x` as the argument. + Now, for some kernels, like :math:`f (x) = C \log x`, the powers of + :math:`\alpha^i` from the chain rule cancel with the ones from the + argument substituted into the kernel derivatives: + .. math:: + g^{(i)} (\xi) = \alpha^i f^{(i)} (\alpha \xi) = C' \cdot \alpha^i \cdot + \frac{1}{(\alpha x)^i} \quad (i > 0), + making them what you might call *scale-invariant*. + This derivative taker returns :math:`g^{(i)}(\xi) = \alpha^i f^{(i)}` + given :math:`f^{(0)}` as *expr* and :math:`\alpha` as :attr:`rscale`. + """ + + assert isinstance(expr, sym.Basic) + self.var_list = var_list + zero_mi = (0,) * len(var_list) + self.cache_by_mi = {zero_mi: expr} + self.rscale = rscale + self.sac = sac + self.dim = len(self.var_list) + self.orig_expr = expr + + def mi_dist(self, a, b): + return np.array(a, dtype=int) - np.array(b, dtype=int) + + def diff(self, mi): + """Take the derivative of the expression represented by + :class:`ExprDerivativeTaker`. + :param mi: multi-index representing the derivative + """ + try: + return self.cache_by_mi[mi] + except KeyError: + pass + + current_mi = self.get_closest_cached_mi(mi) + expr = self.cache_by_mi[current_mi] + + for next_deriv, next_mi in self.get_derivative_taking_sequence( + current_mi, mi): + expr = expr.diff(next_deriv) * self.rscale + self.cache_by_mi[next_mi] = expr + + return expr + + def get_derivative_taking_sequence(self, start_mi, end_mi): + current_mi = np.array(start_mi, dtype=int) + for idx, (mi_i, vec_i) in enumerate( + zip(self.mi_dist(end_mi, start_mi), self.var_list)): + for _ in range(1, 1 + mi_i): + current_mi[idx] += 1 + yield vec_i, tuple(current_mi) + + def get_closest_cached_mi(self, mi): + return min((other_mi + for other_mi in self.cache_by_mi.keys() + if (np.array(mi) >= np.array(other_mi)).all()), + key=lambda other_mi: sum(self.mi_dist(mi, other_mi))) + + +# }}} + +# {{{ LaplaceDerivativeTaker + +class LaplaceDerivativeTaker(ExprDerivativeTaker): + """Specialized derivative taker for Laplace potential. + """ + + def __init__(self, expr, var_list, rscale=1, sac=None): + super().__init__(expr, var_list, rscale, sac) + self.scaled_var_list = [add_to_sac(self.sac, v/rscale) for v in var_list] + self.scaled_r = add_to_sac(self.sac, + sym.sqrt(sum(v**2 for v in self.scaled_var_list))) + + def diff(self, mi): + """ + Implements the algorithm described in [Fernando2021] to take cartesian + derivatives of Laplace potential using recurrences. Cost of each derivative + is amortized constant. + .. [Fernando2021]: Fernando, I., Klöckner, A., 2021. Automatic Synthesis of + Low Complexity Translation Operators for the Fast + Multipole Method. In preparation. + """ + # Return zero for negative values. Makes the algorithm readable. + if min(mi) < 0: + return 0 + try: + return self.cache_by_mi[mi] + except KeyError: + pass + + dim = self.dim + if max(mi) == 1: + return ExprDerivativeTaker.diff(self, mi) + d = -1 + for i in range(dim): + if mi[i] >= 2: + d = i + break + assert d >= 0 + expr = 0 + for i in range(dim): + mi_minus_one = list(mi) + mi_minus_one[i] -= 1 + mi_minus_one = tuple(mi_minus_one) + mi_minus_two = list(mi) + mi_minus_two[i] -= 2 + mi_minus_two = tuple(mi_minus_two) + x = self.scaled_var_list[i] + n = mi[i] + if i == d: + if dim == 3: + expr -= (2*n - 1) * x * self.diff(mi_minus_one) + expr -= (n - 1)**2 * self.diff(mi_minus_two) + else: + expr -= 2 * x * (n - 1) * self.diff(mi_minus_one) + expr -= (n - 1) * (n - 2) * self.diff(mi_minus_two) + if n == 2 and sum(mi) == 2: + expr += 1 + else: + expr -= 2 * n * x * self.diff(mi_minus_one) + expr -= n * (n - 1) * self.diff(mi_minus_two) + expr /= self.scaled_r**2 + expr = add_to_sac(self.sac, expr) + self.cache_by_mi[mi] = expr + return expr + + +# }}} + +# {{{ RadialDerivativeTaker + +class RadialDerivativeTaker(ExprDerivativeTaker): + """Specialized derivative taker for radial expressions. + """ + + def __init__(self, expr, var_list, rscale=1, sac=None): + """ + Takes the derivatives of a radial function. + """ + import sumpy.symbolic as sym + super().__init__(expr, var_list, rscale, sac) + empty_mi = (0,) * len(var_list) + self.cache_by_mi_q = {(empty_mi, 0): expr} + self.r = sym.sqrt(sum(v**2 for v in var_list)) + rsym = sym.Symbol("_r") + r_expr = expr.xreplace({self.r**2: rsym**2}) + self.is_radial = not any(r_expr.has(v) for v in var_list) + self.var_list_multiplied = [add_to_sac(sac, v * rscale) for v in var_list] + + def diff(self, mi, q=0): + """ + Implements the algorithm described in [Tausch2003] to take cartesian + derivatives of radial functions using recurrences. Cost of each derivative + is amortized linear in the degree. + .. [Tausch2003]: Tausch, J., 2003. The fast multipole method for arbitrary + Green's functions. + Contemporary Mathematics, 329, pp.307-314. + """ + if not self.is_radial: + assert q == 0 + return ExprDerivativeTaker.diff(self, mi) + + try: + return self.cache_by_mi_q[(mi, q)] + except KeyError: + pass + + for i in range(self.dim): + if mi[i] == 1: + mi_minus_one = list(mi) + mi_minus_one[i] = 0 + mi_minus_one = tuple(mi_minus_one) + expr = self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) + self.cache_by_mi_q[(mi, q)] = expr + return expr + + for i in range(self.dim): + if mi[i] >= 2: + mi_minus_one = list(mi) + mi_minus_one[i] -= 1 + mi_minus_one = tuple(mi_minus_one) + mi_minus_two = list(mi) + mi_minus_two[i] -= 2 + mi_minus_two = tuple(mi_minus_two) + expr = (mi[i]-1)*self.diff(mi_minus_two, q=q+1) * self.rscale ** 2 + expr += self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) + expr = add_to_sac(self.sac, expr) + self.cache_by_mi_q[(mi, q)] = expr + return expr + + assert mi == (0,)*self.dim + assert q > 0 + + prev_expr = self.diff(mi, q=q-1) + # Need to get expr.diff(r)/r, but we can only do expr.diff(x) + # Use expr.diff(x) = expr.diff(r) * x / r + expr = prev_expr.diff(self.var_list[0])/self.var_list[0] + # We need to distribute the division above + expr = expr.expand(deep=False) + self.cache_by_mi_q[(mi, q)] = expr + return expr + + +# }}} + +# {{{ HelmholtzDerivativeTaker + +class HelmholtzDerivativeTaker(RadialDerivativeTaker): + """Specialized derivative taker for Helmholtz potential. + """ + + def diff(self, mi, q=0): + import sumpy.symbolic as sym + if q < 2 or mi != (0,)*self.dim: + return RadialDerivativeTaker.diff(self, mi, q) + + try: + return self.cache_by_mi_q[(mi, q)] + except KeyError: + pass + + if self.dim == 2: + # See https://dlmf.nist.gov/10.6.E6 + # and https://dlmf.nist.gov/10.6#E1 + k = self.orig_expr.args[1] / self.r + expr = (-2*(q - 1) * self.diff(mi, q - 1) + - k**2 * self.diff(mi, q - 2)) / self.r**2 + else: + # See reference [Tausch2003] in RadialDerivativeTaker.diff + # Note that there is a typo in the paper where + # -k**2/r is given instead of -k**2/r**2. + k = (self.orig_expr * self.r).args[-1] / sym.I / self.r + expr = (-(2*q - 1) * self.diff(mi, q - 1) + - k**2 * self.diff(mi, q - 2)) / self.r**2 + self.cache_by_mi_q[(mi, q)] = expr + return expr + + +# }}} + +# {{{ DifferentiatedExprDerivativeTaker + +DerivativeCoeffDict = Dict[Tuple[int], Any] + + +@tag_dataclass +class DifferentiatedExprDerivativeTaker: + """Implements the :class:`ExprDerivativeTaker` interface + for an expression that is itself a linear combination of + derivatives of a base expression. To take the actual derivatives, + it makes use of an underlying derivative taker *taker*. + + .. attribute:: taker + A :class:`ExprDerivativeTaker` for the base expression. + + .. attribute:: derivative_coeff_dict + A dictionary mapping a derivative multi-index to a coefficient. + The expression represented by this derivative taker is the linear + combination of the derivatives of the expression for the + base expression. + """ + taker: ExprDerivativeTaker + derivative_coeff_dict: DerivativeCoeffDict + + def diff(self, mi, save_intermediate=lambda x: x): + # By passing `rscale` to the derivative taker we are taking a scaled + # version of the derivative which is `expr.diff(mi)*rscale**sum(mi)` + # which might be implemented efficiently for kernels like Laplace. + # One caveat is that we are taking more derivatives because of + # :attr:`derivative_coeff_dict` which would multiply the + # expression by more `rscale`s than necessary. This is corrected by + # dividing by `rscale`. + max_order = max(sum(extra_mi) for extra_mi in + self.derivative_coeff_dict.keys()) + + result = sum( + coeff * self.taker.diff(add_mi(mi, extra_mi)) + / self.taker.rscale ** (sum(extra_mi) - max_order) + for extra_mi, coeff in self.derivative_coeff_dict.items()) + + return result * save_intermediate(1 / self.taker.rscale ** max_order) + + +# }}} + +# {{{ Helper functions + +def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, + variable_idx, variables): + """Differentiate a derivative transformation dictionary given by + *derivative_coeff_dict* using the variable given by **variable_idx** + and return a new derivative transformation dictionary. + """ + from collections import defaultdict + new_derivative_coeff_dict = defaultdict(lambda: 0) + + for mi, coeff in derivative_coeff_dict.items(): + # In the case where we have x * u.diff(x), the result should + # be x.diff(x) + x * u.diff(x, x) + # Calculate the first term by differentiating the coefficients + new_coeff = sym.sympify(coeff).diff(variables[variable_idx]) + new_derivative_coeff_dict[mi] += new_coeff + # Next calculate the second term by differentiating the derivatives + new_mi = list(mi) + new_mi[variable_idx] += 1 + new_derivative_coeff_dict[tuple(new_mi)] += coeff + return {derivative: coeff for derivative, coeff in + new_derivative_coeff_dict.items() if coeff != 0} + +# }}} + +# vim: fdm=marker diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 58809641e..dd0838498 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -123,7 +123,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): from sumpy.symbolic import USE_SYMENGINE if USE_SYMENGINE: - from sumpy.tools import ExprDerivativeTaker + from sumpy.derivative_taker import ExprDerivativeTaker deriv_taker = ExprDerivativeTaker(line_kernel, (tau,), sac=sac, rscale=1) return [kernel.postprocess_at_source( @@ -381,7 +381,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # to compensate for differentiating which is done at the end. # This moves the two cancelling "rscales" closer to each other at # the end in the hope of helping rscale magnitude. - from sumpy.tools import ExprDerivativeTaker + from sumpy.derivative_taker import ExprDerivativeTaker dvec_scaled = [d*src_rscale for d in dvec] expr = src_expansion.evaluate(src_expansion.kernel, src_coeff_exprs, dvec_scaled, rscale=src_rscale, sac=sac) diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index a344fe0ac..d63a094b4 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -90,7 +90,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): rscale, (1,), sac=sac) def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): - from sumpy.tools import DifferentiatedExprDerivativeTaker + from sumpy.derivative_taker import DifferentiatedExprDerivativeTaker if not self.use_rscale: rscale = 1 diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 7eb70ff77..e7d7175be 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -226,7 +226,7 @@ def postprocess_at_source(self, expr, avec): The typical use of this function is to apply source-variable derivatives to the kernel. """ - from sumpy.tools import (ExprDerivativeTaker, + from sumpy.derivative_taker import (ExprDerivativeTaker, DifferentiatedExprDerivativeTaker) expr_dict = {(0,)*self.dim: 1} expr_dict = self.get_derivative_coeff_dict_at_source(expr_dict) @@ -247,7 +247,7 @@ def postprocess_at_target(self, expr, bvec): derivatives to the kernel. :arg expr: may be a :class:`sympy.core.expr.Expr` or a - :class:`sumpy.tools.DifferentiatedExprDerivativeTaker`. + :class:`sumpy.derivative_taker.DifferentiatedExprDerivativeTaker`. """ return expr @@ -378,10 +378,10 @@ def update_persistent_hash(self, key_hash, key_builder): mapper_method = "map_expression_kernel" def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.tools.ExprDerivativeTaker` instance that supports - taking derivatives of the base kernel with respect to dvec. + """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to dvec. """ - from sumpy.tools import ExprDerivativeTaker + from sumpy.derivative_taker import ExprDerivativeTaker return ExprDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): @@ -438,10 +438,10 @@ def __repr__(self): mapper_method = "map_laplace_kernel" def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.tools.ExprDerivativeTaker` instance that supports - taking derivatives of the base kernel with respect to dvec. + """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to dvec. """ - from sumpy.tools import LaplaceDerivativeTaker + from sumpy.derivative_taker import LaplaceDerivativeTaker return LaplaceDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): @@ -486,10 +486,10 @@ def __repr__(self): mapper_method = "map_biharmonic_kernel" def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.tools.ExprDerivativeTaker` instance that supports - taking derivatives of the base kernel with respect to dvec. + """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to dvec. """ - from sumpy.tools import RadialDerivativeTaker + from sumpy.derivative_taker import RadialDerivativeTaker return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -563,10 +563,10 @@ def get_args(self): mapper_method = "map_helmholtz_kernel" def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.tools.ExprDerivativeTaker` instance that supports - taking derivatives of the base kernel with respect to dvec. + """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to dvec. """ - from sumpy.tools import HelmholtzDerivativeTaker + from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): @@ -645,10 +645,10 @@ def get_args(self): mapper_method = "map_yukawa_kernel" def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.tools.ExprDerivativeTaker` instance that supports - taking derivatives of the base kernel with respect to dvec. + """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to dvec. """ - from sumpy.tools import HelmholtzDerivativeTaker + from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): @@ -1044,7 +1044,7 @@ def __repr__(self): return f"AxisTargetDerivative({self.axis}, {self.inner_kernel!r})" def postprocess_at_target(self, expr, bvec): - from sumpy.tools import (DifferentiatedExprDerivativeTaker, + from sumpy.derivative_taker import (DifferentiatedExprDerivativeTaker, diff_derivative_coeff_dict) from sumpy.symbolic import make_sym_vector as make_sympy_vector @@ -1142,7 +1142,7 @@ def transform(expr): return transform def postprocess_at_target(self, expr, bvec): - from sumpy.tools import (DifferentiatedExprDerivativeTaker, + from sumpy.derivative_taker import (DifferentiatedExprDerivativeTaker, diff_derivative_coeff_dict) from sumpy.symbolic import make_sym_vector as make_sympy_vector @@ -1262,7 +1262,7 @@ def replace_inner_kernel(self, new_inner_kernel): def postprocess_at_target(self, expr, avec): from sumpy.symbolic import make_sym_vector as make_sympy_vector - from sumpy.tools import (ExprDerivativeTaker, + from sumpy.derivative_taker import (ExprDerivativeTaker, DifferentiatedExprDerivativeTaker) expr = self.inner_kernel.postprocess_at_target(expr, avec) diff --git a/sumpy/tools.py b/sumpy/tools.py index 85b1f1c67..2f882a780 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -24,18 +24,6 @@ THE SOFTWARE. """ -__doc__ = """ - - Misc tools - ========== - - .. autoclass:: ExprDerivativeTaker - .. autoclass:: LaplaceDerivativeTaker - .. autoclass:: RadialDerivativeTaker - .. autoclass:: HelmholtzDerivativeTaker - .. autoclass:: DifferentiatedExprDerivativeTaker -""" - from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import numbers @@ -55,7 +43,7 @@ import pyopencl.array as cla import loopy as lp -from typing import Dict, Tuple, Any, List, Optional, TYPE_CHECKING +from typing import Any, List, Optional, TYPE_CHECKING import logging logger = logging.getLogger(__name__) @@ -114,364 +102,6 @@ def add_to_sac(sac, expr): return sym.Symbol(name) -class ExprDerivativeTaker: - """Facilitates the efficient computation of (potentially) high-order - derivatives of a given :mod:`sympy` expression *expr* while attempting - to maximize the number of common subexpressions generated. - - This class defines the interface and realizes a baseline implementation. - More specialized implementations may offer better efficiency for special - cases. - - .. automethod:: diff - """ - - def __init__(self, expr, var_list, rscale=1, sac=None): - r""" - A class to take scaled derivatives of the symbolic expression - expr w.r.t. variables var_list and the scaling parameter rscale. - - Consider a Taylor multipole expansion: - - .. math:: - - f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i f) (x - y) \big|_{y = c} - \frac{(y - c)^i}{i!} . - - Now suppose we would like to use a scaled version :math:`g` of the - kernel :math:`f`: - - .. math:: - - \begin{eqnarray*} - f (x) & = & g (x / \alpha),\\ - f^{(i)} (x) & = & \frac{1}{\alpha^i} g^{(i)} (x / \alpha) . - \end{eqnarray*} - - where :math:`\alpha` is chosen to be on a length scale similar to - :math:`x` (for example by choosing :math:`\alpha` proporitional to the - size of the box for which the expansion is intended) so that :math:`x / - \alpha` is roughly of unit magnitude, to avoid arithmetic issues with - small arguments. This yields - - .. math:: - - f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i g) - \left( \frac{x - y}{\alpha} \right) \Bigg|_{y = c} - \cdot - \frac{(y - c)^i}{\alpha^i \cdot i!}. - - Observe that the :math:`(y - c)` term is now scaled to unit magnitude, - as is the argument of :math:`g`. - - With :math:`\xi = x / \alpha`, we find - - .. math:: - - \begin{eqnarray*} - g (\xi) & = & f (\alpha \xi),\\ - g^{(i)} (\xi) & = & \alpha^i f^{(i)} (\alpha \xi) . - \end{eqnarray*} - - Generically for all kernels, :math:`f^{(i)} (\alpha \xi)` is computable - by taking a sufficient number of symbolic derivatives of :math:`f` and - providing :math:`\alpha \xi = x` as the argument. - - Now, for some kernels, like :math:`f (x) = C \log x`, the powers of - :math:`\alpha^i` from the chain rule cancel with the ones from the - argument substituted into the kernel derivatives: - - .. math:: - - g^{(i)} (\xi) = \alpha^i f^{(i)} (\alpha \xi) = C' \cdot \alpha^i \cdot - \frac{1}{(\alpha x)^i} \quad (i > 0), - - making them what you might call *scale-invariant*. - - This derivative taker returns :math:`g^{(i)}(\xi) = \alpha^i f^{(i)}` - given :math:`f^{(0)}` as *expr* and :math:`\alpha` as :attr:`rscale`. - """ - - assert isinstance(expr, sym.Basic) - self.var_list = var_list - zero_mi = (0,) * len(var_list) - self.cache_by_mi = {zero_mi: expr} - self.rscale = rscale - self.sac = sac - self.dim = len(self.var_list) - self.orig_expr = expr - - def mi_dist(self, a, b): - return np.array(a, dtype=int) - np.array(b, dtype=int) - - def diff(self, mi): - """Take the derivative of the expression represented by - :class:`ExprDerivativeTaker`. - - :param mi: multi-index representing the derivative - """ - try: - return self.cache_by_mi[mi] - except KeyError: - pass - - current_mi = self.get_closest_cached_mi(mi) - expr = self.cache_by_mi[current_mi] - - for next_deriv, next_mi in self.get_derivative_taking_sequence( - current_mi, mi): - expr = expr.diff(next_deriv) * self.rscale - self.cache_by_mi[next_mi] = expr - - return expr - - def get_derivative_taking_sequence(self, start_mi, end_mi): - current_mi = np.array(start_mi, dtype=int) - for idx, (mi_i, vec_i) in enumerate( - zip(self.mi_dist(end_mi, start_mi), self.var_list)): - for _ in range(1, 1 + mi_i): - current_mi[idx] += 1 - yield vec_i, tuple(current_mi) - - def get_closest_cached_mi(self, mi): - return min((other_mi - for other_mi in self.cache_by_mi.keys() - if (np.array(mi) >= np.array(other_mi)).all()), - key=lambda other_mi: sum(self.mi_dist(mi, other_mi))) - - -class LaplaceDerivativeTaker(ExprDerivativeTaker): - """Specialized derivative taker for Laplace potential. - """ - - def __init__(self, expr, var_list, rscale=1, sac=None): - super().__init__(expr, var_list, rscale, sac) - self.scaled_var_list = [add_to_sac(self.sac, v/rscale) for v in var_list] - self.scaled_r = add_to_sac(self.sac, - sym.sqrt(sum(v**2 for v in self.scaled_var_list))) - - def diff(self, mi): - """ - Implements the algorithm described in [Fernando2021] to take cartesian - derivatives of Laplace potential using recurrences. Cost of each derivative - is amortized constant. - - .. [Fernando2021]: Fernando, I., Klöckner, A., 2021. Automatic Synthesis of - Low Complexity Translation Operators for the Fast - Multipole Method. In preparation. - """ - # Return zero for negative values. Makes the algorithm readable. - if min(mi) < 0: - return 0 - try: - return self.cache_by_mi[mi] - except KeyError: - pass - - dim = self.dim - if max(mi) == 1: - return ExprDerivativeTaker.diff(self, mi) - d = -1 - for i in range(dim): - if mi[i] >= 2: - d = i - break - assert d >= 0 - expr = 0 - for i in range(dim): - mi_minus_one = list(mi) - mi_minus_one[i] -= 1 - mi_minus_one = tuple(mi_minus_one) - mi_minus_two = list(mi) - mi_minus_two[i] -= 2 - mi_minus_two = tuple(mi_minus_two) - x = self.scaled_var_list[i] - n = mi[i] - if i == d: - if dim == 3: - expr -= (2*n - 1) * x * self.diff(mi_minus_one) - expr -= (n - 1)**2 * self.diff(mi_minus_two) - else: - expr -= 2 * x * (n - 1) * self.diff(mi_minus_one) - expr -= (n - 1) * (n - 2) * self.diff(mi_minus_two) - if n == 2 and sum(mi) == 2: - expr += 1 - else: - expr -= 2 * n * x * self.diff(mi_minus_one) - expr -= n * (n - 1) * self.diff(mi_minus_two) - expr /= self.scaled_r**2 - expr = add_to_sac(self.sac, expr) - self.cache_by_mi[mi] = expr - return expr - - -class RadialDerivativeTaker(ExprDerivativeTaker): - """Specialized derivative taker for radial expressions. - """ - - def __init__(self, expr, var_list, rscale=1, sac=None): - """ - Takes the derivatives of a radial function. - """ - import sumpy.symbolic as sym - super().__init__(expr, var_list, rscale, sac) - empty_mi = (0,) * len(var_list) - self.cache_by_mi_q = {(empty_mi, 0): expr} - self.r = sym.sqrt(sum(v**2 for v in var_list)) - rsym = sym.Symbol("_r") - r_expr = expr.xreplace({self.r**2: rsym**2}) - self.is_radial = not any(r_expr.has(v) for v in var_list) - self.var_list_multiplied = [add_to_sac(sac, v * rscale) for v in var_list] - - def diff(self, mi, q=0): - """ - Implements the algorithm described in [Tausch2003] to take cartesian - derivatives of radial functions using recurrences. Cost of each derivative - is amortized linear in the degree. - - .. [Tausch2003]: Tausch, J., 2003. The fast multipole method for arbitrary - Green's functions. - Contemporary Mathematics, 329, pp.307-314. - """ - if not self.is_radial: - assert q == 0 - return ExprDerivativeTaker.diff(self, mi) - - try: - return self.cache_by_mi_q[(mi, q)] - except KeyError: - pass - - for i in range(self.dim): - if mi[i] == 1: - mi_minus_one = list(mi) - mi_minus_one[i] = 0 - mi_minus_one = tuple(mi_minus_one) - expr = self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) - self.cache_by_mi_q[(mi, q)] = expr - return expr - - for i in range(self.dim): - if mi[i] >= 2: - mi_minus_one = list(mi) - mi_minus_one[i] -= 1 - mi_minus_one = tuple(mi_minus_one) - mi_minus_two = list(mi) - mi_minus_two[i] -= 2 - mi_minus_two = tuple(mi_minus_two) - expr = (mi[i]-1)*self.diff(mi_minus_two, q=q+1) * self.rscale ** 2 - expr += self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) - expr = add_to_sac(self.sac, expr) - self.cache_by_mi_q[(mi, q)] = expr - return expr - - assert mi == (0,)*self.dim - assert q > 0 - - prev_expr = self.diff(mi, q=q-1) - # Need to get expr.diff(r)/r, but we can only do expr.diff(x) - # Use expr.diff(x) = expr.diff(r) * x / r - expr = prev_expr.diff(self.var_list[0])/self.var_list[0] - # We need to distribute the division above - expr = expr.expand(deep=False) - self.cache_by_mi_q[(mi, q)] = expr - return expr - - -class HelmholtzDerivativeTaker(RadialDerivativeTaker): - """Specialized derivative taker for Helmholtz potential. - """ - - def diff(self, mi, q=0): - import sumpy.symbolic as sym - if q < 2 or mi != (0,)*self.dim: - return RadialDerivativeTaker.diff(self, mi, q) - - try: - return self.cache_by_mi_q[(mi, q)] - except KeyError: - pass - - if self.dim == 2: - # See https://dlmf.nist.gov/10.6.E6 - # and https://dlmf.nist.gov/10.6#E1 - k = self.orig_expr.args[1] / self.r - expr = (-2*(q - 1) * self.diff(mi, q - 1) - - k**2 * self.diff(mi, q - 2)) / self.r**2 - else: - # See reference [Tausch2003] in RadialDerivativeTaker.diff - # Note that there is a typo in the paper where - # -k**2/r is given instead of -k**2/r**2. - k = (self.orig_expr * self.r).args[-1] / sym.I / self.r - expr = (-(2*q - 1) * self.diff(mi, q - 1) - - k**2 * self.diff(mi, q - 2)) / self.r**2 - self.cache_by_mi_q[(mi, q)] = expr - return expr - - -DerivativeCoeffDict = Dict[Tuple[int], Any] - - -@tag_dataclass -class DifferentiatedExprDerivativeTaker: - """Implements the :class:`ExprDerivativeTaker` interface - for an expression that is itself a linear combination of - derivatives of a base expression. To take the actual derivatives, - it makes use of an underlying derivative taker *taker*. - - .. attribute:: taker - A :class:`ExprDerivativeTaker` for the base expression. - - .. attribute:: derivative_coeff_dict - A dictionary mapping a derivative multi-index to a coefficient. - The expression represented by this derivative taker is the linear - combination of the derivatives of the expression for the - base expression. - """ - taker: ExprDerivativeTaker - derivative_coeff_dict: DerivativeCoeffDict - - def diff(self, mi, save_intermediate=lambda x: x): - # By passing `rscale` to the derivative taker we are taking a scaled - # version of the derivative which is `expr.diff(mi)*rscale**sum(mi)` - # which might be implemented efficiently for kernels like Laplace. - # One caveat is that we are taking more derivatives because of - # :attr:`derivative_coeff_dict` which would multiply the - # expression by more `rscale`s than necessary. This is corrected by - # dividing by `rscale`. - max_order = max(sum(extra_mi) for extra_mi in - self.derivative_coeff_dict.keys()) - - result = sum( - coeff * self.taker.diff(add_mi(mi, extra_mi)) - / self.taker.rscale ** (sum(extra_mi) - max_order) - for extra_mi, coeff in self.derivative_coeff_dict.items()) - - return result * save_intermediate(1 / self.taker.rscale ** max_order) - - -def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, - variable_idx, variables): - """Differentiate a derivative transformation dictionary given by - *derivative_coeff_dict* using the variable given by **variable_idx** - and return a new derivative transformation dictionary. - """ - from collections import defaultdict - new_derivative_coeff_dict = defaultdict(lambda: 0) - - for mi, coeff in derivative_coeff_dict.items(): - # In the case where we have x * u.diff(x), the result should - # be x.diff(x) + x * u.diff(x, x) - # Calculate the first term by differentiating the coefficients - new_coeff = sym.sympify(coeff).diff(variables[variable_idx]) - new_derivative_coeff_dict[mi] += new_coeff - # Next calculate the second term by differentiating the derivatives - new_mi = list(mi) - new_mi[variable_idx] += 1 - new_derivative_coeff_dict[tuple(new_mi)] += coeff - return {derivative: coeff for derivative, coeff in - new_derivative_coeff_dict.items() if coeff != 0} - # }}} From bef8c208607e3f93026f80377a9508069185af63 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 24 Apr 2023 20:06:35 -0500 Subject: [PATCH 057/335] Use Sphinx 1+ syntax for mapping --- doc/conf.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 5dcae4e44..2de72f532 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -16,16 +16,16 @@ release = ver_dic["VERSION_TEXT"] intersphinx_mapping = { - "https://docs.python.org/3/": None, - "https://numpy.org/doc/stable/": None, - "https://documen.tician.de/modepy/": None, - "https://documen.tician.de/pyopencl/": None, - "https://documen.tician.de/pymbolic/": None, - "https://documen.tician.de/loopy/": None, - "https://documen.tician.de/pytential/": None, - "https://documen.tician.de/boxtree/": None, - "https://docs.sympy.org/latest/": None, - "https://matplotlib.org/stable/": None, + "python": ("https://docs.python.org/3/", None), + "numpy": ("https://numpy.org/doc/stable/", None), + "modepy": ("https://documen.tician.de/modepy/", None), + "pyopencl": ("https://documen.tician.de/pyopencl/", None), + "pymbolic": ("https://documen.tician.de/pymbolic/", None), + "loopy": ("https://documen.tician.de/loopy/", None), + "pytential": ("https://documen.tician.de/pytential/", None), + "boxtree": ("https://documen.tician.de/boxtree/", None), + "sympy": ("https://docs.sympy.org/latest/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), } nitpick_ignore_regex = [ From c47bf5b669fbe6d5e064973c55d9f4a2ebb86d29 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 29 Apr 2023 11:14:32 -0500 Subject: [PATCH 058/335] Fix FMM for tree without L2L --- sumpy/fmm.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 86b4412ae..6fe193f96 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -1034,9 +1034,10 @@ def refine_locals(self, assert local_exps_res is target_local_exps_view - local_exps.add_event(evt) + for evt in events: + local_exps.add_event(evt) - return (local_exps, SumpyTimingFuture(queue, [evt])) + return (local_exps, SumpyTimingFuture(queue, events)) def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): pot = self.output_zeros(local_exps) From 5e326baf836b591d01fb82eb4b3af54850b46616 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 29 Apr 2023 16:24:58 -0500 Subject: [PATCH 059/335] Give names to loopy kernels in sumpy.fmm --- sumpy/fmm.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 6fe193f96..de7ac6aec 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -110,20 +110,20 @@ def p2m(self, tgt_order): return P2EFromSingleBox(self.cl_context, kernels=self.source_kernels, expansion=self.multipole_expansion(tgt_order), - strength_usage=self.strength_usage) + strength_usage=self.strength_usage, name="p2m") @memoize_method def p2l(self, tgt_order): return P2EFromCSR(self.cl_context, kernels=self.source_kernels, expansion=self.local_expansion(tgt_order), - strength_usage=self.strength_usage) + strength_usage=self.strength_usage, name="p2l") @memoize_method def m2m(self, src_order, tgt_order): return E2EFromChildren(self.cl_context, self.multipole_expansion(src_order), - self.multipole_expansion(tgt_order)) + self.multipole_expansion(tgt_order), name="m2m") @memoize_method def m2l(self, src_order, tgt_order, @@ -134,7 +134,7 @@ def m2l(self, src_order, tgt_order, m2l_class = E2EFromCSR return m2l_class(self.cl_context, self.multipole_expansion(src_order), - self.local_expansion(tgt_order)) + self.local_expansion(tgt_order), name="m2l") @memoize_method def m2l_translation_class_dependent_data_kernel(self, src_order, tgt_order): @@ -158,26 +158,26 @@ def m2l_postprocess_local_kernel(self, src_order, tgt_order): def l2l(self, src_order, tgt_order): return E2EFromParent(self.cl_context, self.local_expansion(src_order), - self.local_expansion(tgt_order)) + self.local_expansion(tgt_order), name="l2l") @memoize_method def m2p(self, src_order): return E2PFromCSR(self.cl_context, self.multipole_expansion(src_order), - self.target_kernels) + self.target_kernels, name="m2p") @memoize_method def l2p(self, src_order): return E2PFromSingleBox(self.cl_context, self.local_expansion(src_order), - self.target_kernels) + self.target_kernels, name="l2p") @memoize_method def p2p(self): return P2PFromCSR(self.cl_context, target_kernels=self.target_kernels, source_kernels=self.source_kernels, exclude_self=self.exclude_self, - strength_usage=self.strength_usage) + strength_usage=self.strength_usage, name="p2p") @memoize_method def opencl_fft_app(self, shape, dtype, inverse): From f3c0cacf45ec6862be745209578bc9d22fa6ea93 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 1 May 2023 14:45:14 -0500 Subject: [PATCH 060/335] Fix README --- README.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/README.rst b/README.rst index c12a10722..df724a8c3 100644 --- a/README.rst +++ b/README.rst @@ -23,7 +23,6 @@ Sumpy relies on * `numpy `_ for arrays * `boxtree `_ for FMM tree building -* `sumpy `_ for expansions and analytical routines * `loopy `_ for fast array operations * `pytest `_ for automated testing From 158f280cf26c08b1e9bd96009e9ef0218937dd2c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 1 May 2023 14:50:33 -0500 Subject: [PATCH 061/335] Add URLs for the project --- setup.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/setup.py b/setup.py index 18e9b410c..9f87b979f 100644 --- a/setup.py +++ b/setup.py @@ -95,6 +95,13 @@ def write_git_revision(package_name): author="Andreas Kloeckner", author_email="inform@tiker.net", license="MIT", + url="https://github.com/inducer/sumpy", + download_url="https://pypi.python.org/pypi/sumpy", + project_urls={ + "Bug Tracker": "https://github.com/inducer/sumpy/issues", + "Documentation": "https://documen.tician.de/sumpy", + "Source Code": "https://github.com/inducer/sumpy", + }, packages=["sumpy", "sumpy.expansion"], python_requires="~=3.8", install_requires=[ From f2263df7accc18f3ea6f13c34b651755ee05436f Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 1 May 2023 14:53:57 -0500 Subject: [PATCH 062/335] Fix long description --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 9f87b979f..359a3ea5b 100644 --- a/setup.py +++ b/setup.py @@ -2,6 +2,7 @@ import os from setuptools import setup +from pathlib import Path ver_dic = {} version_file = open("sumpy/version.py") @@ -74,9 +75,8 @@ def write_git_revision(package_name): name="sumpy", version=ver_dic["VERSION_TEXT"], description="Fast summation in Python", - long_description=""" - Code-generating FMM etc. - """, + long_description=Path("README.rst").read_text(encoding="utf-8"), + long_description_content_type="text/x-rst", classifiers=[ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", From 15aa19296f733f456188ecda007ff177cbe32b78 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 17 May 2023 14:13:32 -0500 Subject: [PATCH 063/335] Refactor E2P and P2E (#153) * Use pytential branch * Refactor E2P * try new loopy branch * fix formatting * disable domains check * register only if not found * Move kernel_scaling to the outer kernel * Refactor P2E * Use loopy main * re-enable implemented domains check * Rename some loopy kernel handling functions --------- Co-authored-by: Andreas Kloeckner --- .github/workflows/ci.yml | 6 +- sumpy/codegen.py | 6 +- sumpy/e2p.py | 175 +++++++++++++-------------- sumpy/expansion/__init__.py | 25 +++- sumpy/expansion/loopy.py | 227 ++++++++++++++++++++++++++++++++++++ sumpy/kernel.py | 30 +++-- sumpy/p2e.py | 145 ++++++++++++----------- 7 files changed, 439 insertions(+), 175 deletions(-) create mode 100644 sumpy/expansion/loopy.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e88c47b7f..893a8b7d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,9 +101,9 @@ jobs: run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 - # if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "fft" ]]; then - # DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@pyvkfft - # fi + if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "e2p" ]]; then + DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@e2p + fi test_downstream "$DOWNSTREAM_PROJECT" # vim: sw=4 diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 147dc4992..fa13d5269 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -200,9 +200,11 @@ def generate_preambles(self, target): def register_bessel_callables(loopy_knl): from sumpy.codegen import BesselJvvp1, Hankel1_01 - loopy_knl = lp.register_callable(loopy_knl, "bessel_jvvp1", + if "bessel_jvvp1" not in loopy_knl.callables_table: + loopy_knl = lp.register_callable(loopy_knl, "bessel_jvvp1", BesselJvvp1("bessel_jvvp1")) - loopy_knl = lp.register_callable(loopy_knl, "hank1_01", + if "hank1_01" not in loopy_knl.callables_table: + loopy_knl = lp.register_callable(loopy_knl, "hank1_01", Hankel1_01("hank1_01")) return loopy_knl diff --git a/sumpy/e2p.py b/sumpy/e2p.py index a62236b0f..f304a3391 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -24,9 +24,8 @@ import numpy as np import loopy as lp -import sumpy.symbolic as sym -from sumpy.tools import KernelCacheMixin +from sumpy.tools import KernelCacheMixin, gather_loopy_arguments from loopy.version import MOST_RECENT_LANGUAGE_VERSION @@ -82,55 +81,32 @@ def __init__(self, ctx, expansion, kernels, def default_name(self): pass - def get_loopy_insns_and_result_names(self): - from sumpy.symbolic import make_sym_vector - bvec = make_sym_vector("b", self.dim) - - import sumpy.symbolic as sp - rscale = sp.Symbol("rscale") - - from sumpy.assignment_collection import SymbolicAssignmentCollection - sac = SymbolicAssignmentCollection() - - coeff_exprs = [ - sym.Symbol(f"coeff{i}") - for i in range(len(self.expansion.get_coefficient_identifiers()))] - - result_names = [ - sac.assign_unique(f"result_{i}_p", - self.expansion.evaluate(knl, coeff_exprs, bvec, rscale, sac=sac)) - for i, knl in enumerate(self.kernels) - ] - - sac.run_global_cse() + def get_cache_key(self): + return (type(self).__name__, self.expansion, tuple(self.kernels)) - from sumpy.codegen import to_loopy_insns - loopy_insns = to_loopy_insns( - sac.assignments.items(), - vector_names={"b"}, - pymbolic_expr_maps=[ - knl.get_code_transformer() for knl in self.kernels], - retain_names=result_names, - complex_dtype=np.complex128 # FIXME - ) + def add_loopy_eval_callable( + self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: + inner_knl = self.expansion.get_loopy_evaluator(self.kernels) + loopy_knl = lp.merge([loopy_knl, inner_knl]) + loopy_knl = lp.inline_callable_kernel(loopy_knl, "e2p") + loopy_knl = lp.remove_unused_inames(loopy_knl) + for kernel in self.kernels: + loopy_knl = kernel.prepare_loopy_kernel(loopy_knl) + loopy_knl = lp.tag_array_axes(loopy_knl, "targets", "sep,C") + return loopy_knl - return loopy_insns, result_names + def get_loopy_args(self): + return gather_loopy_arguments((self.expansion,) + tuple(self.kernels)) def get_kernel_scaling_assignment(self): from sumpy.symbolic import SympyToPymbolicMapper - from sumpy.tools import ScalingAssignmentTag sympy_conv = SympyToPymbolicMapper() - return [lp.Assignment(id=None, + return [lp.Assignment(id="kernel_scaling", assignee="kernel_scaling", expression=sympy_conv( self.expansion.kernel.get_global_scaling_const()), temp_var_type=lp.Optional(None), - tags=frozenset([ScalingAssignmentTag()]), )] - - def get_cache_key(self): - return (type(self).__name__, self.expansion, tuple(self.kernels)) - # }}} @@ -143,14 +119,15 @@ def default_name(self): def get_kernel(self): ncoeffs = len(self.expansion) - - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_args = self.get_loopy_args() loopy_knl = lp.make_kernel( [ "{[itgt_box]: 0<=itgt_box center[idim] = centers[idim, tgt_ibox] {id=fetch_center} - """] + [""" - <> coeff{coeffidx} = \ - src_expansions[tgt_ibox - src_base_ibox, {coeffidx}] - """.format(coeffidx=i) for i in range(ncoeffs)] + [""" + <> coeffs[icoeff] = \ + src_expansions[tgt_ibox - src_base_ibox, icoeff] \ + {id=fetch_coeffs} for itgt - <> b[idim] = targets[idim, itgt] - center[idim] {dup=idim} - - """] + loopy_insns + [""" - - result[{resultidx},itgt] = \ - kernel_scaling * result_{resultidx}_p \ - {{id_prefix=write_result}} - """.format(resultidx=i) for i in range(len(result_names)) - ] + [""" + <> tgt[idim] = targets[idim, itgt] {id=fetch_tgt,dup=idim} + <> result_temp[iknl] = 0 {id=init_result,dup=iknl} + [iknl]: result_temp[iknl] = e2p( + [iknl]: result_temp[iknl], + [icoeff]: coeffs[icoeff], + [idim]: center[idim], + [idim]: tgt[idim], + rscale, + itgt, + ntargets, + targets, + """ + ",".join(arg.name for arg in loopy_args) + """ + ) {dep=fetch_coeffs:fetch_center:init_result:fetch_tgt,\ + id=update_result} + result[iknl, itgt] = result_temp[iknl] * kernel_scaling \ + {id=write_result,dep=update_result} end end """], [ - lp.GlobalArg("targets", None, shape=(self.dim, "ntargets"), - dim_tags="sep,C"), + lp.GlobalArg("targets", None, shape=(self.dim, "ntargets")), lp.GlobalArg("box_target_starts,box_target_counts_nonchild", None, shape=None), lp.GlobalArg("centers", None, shape="dim, naligned_boxes"), @@ -192,18 +174,20 @@ def get_kernel(self): lp.ValueArg("nsrc_level_boxes,naligned_boxes", np.int32), lp.ValueArg("src_base_ibox", np.int32), lp.ValueArg("ntargets", np.int32), + *loopy_args, "..." - ] + [arg.loopy_arg for arg in self.expansion.get_args()], + ], name=self.name, assumptions="ntgt_boxes>=1", - silenced_warnings="write_race(write_result*)", + silenced_warnings="write_race(*_result)", default_offset=lp.auto, - fixed_parameters={"dim": self.dim, "nresults": len(result_names)}, + fixed_parameters={"dim": self.dim, "nresults": len(self.kernels), + "ncoeffs": ncoeffs}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - for knl in self.kernels: - loopy_knl = knl.prepare_loopy_kernel(loopy_knl) + loopy_knl = lp.tag_inames(loopy_knl, "iknl*:unr") + loopy_knl = self.add_loopy_eval_callable(loopy_knl) return loopy_knl @@ -211,7 +195,7 @@ def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) - knl = self._allow_redundant_execution_of_knl_scaling(knl) + knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") @@ -247,8 +231,7 @@ def default_name(self): def get_kernel(self): ncoeffs = len(self.expansion) - - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_args = self.get_loopy_args() loopy_knl = lp.make_kernel( [ @@ -256,7 +239,9 @@ def get_kernel(self): "{[itgt]: itgt_start<=itgt itgt_end = itgt_start+box_target_counts_nonchild[tgt_ibox] for itgt - <> tgt[idim] = targets[idim,itgt] + <> tgt[idim] = targets[idim,itgt] {id=fetch_tgt,dup=idim} <> isrc_box_start = source_box_starts[itgt_box] <> isrc_box_end = source_box_starts[itgt_box+1] + <> result_temp[iknl] = 0 {id=init_result,dup=iknl} for isrc_box <> src_ibox = source_box_lists[isrc_box] - """] + [""" - <> coeff{coeffidx} = \ - src_expansions[src_ibox - src_base_ibox, {coeffidx}] - """.format(coeffidx=i) for i in range(ncoeffs)] + [""" - - <> center[idim] = centers[idim, src_ibox] {dup=idim} - <> b[idim] = tgt[idim] - center[idim] {dup=idim} - - """] + loopy_insns + [""" + <> coeffs[icoeff] = \ + src_expansions[src_ibox - src_base_ibox, icoeff] \ + {id=fetch_coeffs,dup=icoeff} + <> center[idim] = centers[idim, src_ibox] \ + {dup=idim,id=fetch_center} + [iknl]: result_temp[iknl] = e2p( + [iknl]: result_temp[iknl], + [icoeff]: coeffs[icoeff], + [idim]: center[idim], + [idim]: tgt[idim], + rscale, + itgt, + ntargets, + targets, + """ + ",".join(arg.name for arg in loopy_args) + """ + ) {id=update_result, \ + dep=fetch_coeffs:fetch_center:fetch_tgt:init_result} end - """] + [""" - result[{resultidx}, itgt] = result[{resultidx}, itgt] + \ - kernel_scaling * simul_reduce(sum, isrc_box, - result_{resultidx}_p) {{id_prefix=write_result}} - """.format(resultidx=i) for i in range(len(result_names))] - + [""" + result[iknl, itgt] = result[iknl, itgt] + result_temp[iknl] \ + * kernel_scaling \ + {dep=update_result:init_result,id=write_result,dup=iknl} end end """], [ - lp.GlobalArg("targets", None, shape=(self.dim, "ntargets"), - dim_tags="sep,C"), + lp.GlobalArg("targets", None, shape=(self.dim, "ntargets")), lp.GlobalArg("box_target_starts,box_target_counts_nonchild", None, shape=None), lp.GlobalArg("centers", None, shape="dim, aligned_nboxes"), @@ -306,21 +296,24 @@ def get_kernel(self): dim_tags="sep,C"), lp.GlobalArg("source_box_starts, source_box_lists,", None, shape=None, offset=lp.auto), + *loopy_args, "..." - ] + [arg.loopy_arg for arg in self.expansion.get_args()], + ], name=self.name, assumptions="ntgt_boxes>=1", - silenced_warnings="write_race(write_result*)", + silenced_warnings="write_race(*_result)", default_offset=lp.auto, fixed_parameters={ + "ncoeffs": ncoeffs, "dim": self.dim, - "nresults": len(result_names)}, + "nresults": len(self.kernels)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") + loopy_knl = lp.tag_inames(loopy_knl, "iknl*:unr") loopy_knl = lp.prioritize_loops(loopy_knl, "itgt_box,itgt,isrc_box") - for knl in self.kernels: - loopy_knl = knl.prepare_loopy_kernel(loopy_knl) + loopy_knl = self.add_loopy_eval_callable(loopy_knl) + loopy_knl = lp.tag_array_axes(loopy_knl, "targets", "sep,C") return loopy_knl @@ -328,7 +321,7 @@ def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) - knl = self._allow_redundant_execution_of_knl_scaling(knl) + knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") return knl diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index d4ef6e6a7..3ee589173 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -21,9 +21,11 @@ """ from abc import ABC, abstractmethod -from typing import Any, ClassVar, Dict, Hashable, List, Optional, Tuple, Type +from typing import ( + Any, ClassVar, Dict, Hashable, List, Optional, Sequence, Tuple, Type) from pytools import memoize_method +import loopy as lp import sumpy.symbolic as sym from sumpy.kernel import Kernel @@ -63,7 +65,9 @@ class ExpansionBase(ABC): .. automethod:: get_coefficient_identifiers .. automethod:: coefficients_from_source .. automethod:: coefficients_from_source_vec + .. automethod:: get_loopy_expansion_formation .. automethod:: evaluate + .. automethod:: get_loopy_evaluator .. automethod:: with_kernel .. automethod:: copy @@ -159,6 +163,17 @@ def coefficients_from_source_vec(self, result[i] += weight * coeffs[i] return result + def get_loopy_expansion_formation( + self, kernels: Sequence[Kernel], + strength_usage: Sequence[int], nstrengths: int) -> lp.TranslationUnit: + """ + :returns: a :mod:`loopy` kernel that returns the coefficients + for the expansion given by *kernels* with each kernel using + the strength given by *strength_usage*. + """ + from sumpy.expansion.loopy import make_p2e_loopy_kernel + return make_p2e_loopy_kernel(self, kernels, strength_usage, nstrengths) + @abstractmethod def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): """ @@ -167,6 +182,14 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): in *coeffs*. """ + def get_loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: + """ + :returns: a :mod:`loopy` kernel that returns the evaluated + target transforms of the potential given by *kernels*. + """ + from sumpy.expansion.loopy import make_e2p_loopy_kernel + return make_e2p_loopy_kernel(self, kernels) + # }}} # {{{ copy diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py new file mode 100644 index 000000000..00bbd3dbe --- /dev/null +++ b/sumpy/expansion/loopy.py @@ -0,0 +1,227 @@ +__copyright__ = "Copyright (C) 2022 Isuru Fernando" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from typing import Sequence +import pymbolic +import loopy as lp +import numpy as np +from sumpy.expansion import ExpansionBase +from sumpy.kernel import Kernel +import sumpy.symbolic as sym +from sumpy.assignment_collection import SymbolicAssignmentCollection +from sumpy.tools import gather_loopy_arguments, gather_loopy_source_arguments + +import logging +logger = logging.getLogger(__name__) + + +def make_e2p_loopy_kernel( + expansion: ExpansionBase, kernels: Sequence[Kernel]) -> lp.TranslationUnit: + """ + This is a helper function to create a loopy kernel for multipole/local + evaluation. This function uses symbolic expressions given by the expansion class, + converts them to pymbolic expressions and generates a loopy + kernel. Note that the loopy kernel returned has lots of expressions in it and + takes a long time. Therefore, this function should be used only as a fallback + when there is no "loop-y" kernel to evaluate the expansion. + """ + dim = expansion.dim + + bvec = sym.make_sym_vector("b", dim) + ncoeffs = len(expansion.get_coefficient_identifiers()) + + rscale = sym.Symbol("rscale") + + sac = SymbolicAssignmentCollection() + + domains = [ + "{[idim]: 0<=idim lp.TranslationUnit: + """ + This is a helper function to create a loopy kernel for multipole/local + expression. This function uses symbolic expressions given by the expansion + class, converts them to pymbolic expressions and generates a loopy + kernel. Note that the loopy kernel returned has lots of expressions in it and + takes a long time. Therefore, this function should be used only as a fallback + when there is no "loop-y" kernel to evaluate the expansion. + """ + dim = expansion.dim + + avec = sym.make_sym_vector("a", dim) + ncoeffs = len(expansion.get_coefficient_identifiers()) + + rscale = sym.Symbol("rscale") + + sac = SymbolicAssignmentCollection() + + domains = [ + "{[idim]: 0<=idim lp.TranslationUnit: + inner_knl = self.expansion.get_loopy_expansion_formation( + self.source_kernels, self.strength_usage, self.strength_count) + loopy_knl = lp.merge([loopy_knl, inner_knl]) + loopy_knl = lp.inline_callable_kernel(loopy_knl, "p2e") + loopy_knl = lp.remove_unused_inames(loopy_knl) + for kernel in self.source_kernels: + loopy_knl = kernel.prepare_loopy_kernel(loopy_knl) + loopy_knl = lp.tag_array_axes(loopy_knl, "strengths", "sep,C") + return loopy_knl - from sumpy.codegen import to_loopy_insns - return to_loopy_insns( - sac.assignments.items(), - vector_names={"a"}, - pymbolic_expr_maps=code_transformers, - retain_names=coeff_names, - ) + def get_loopy_args(self): + from sumpy.tools import gather_loopy_source_arguments + return gather_loopy_source_arguments( + (self.expansion,) + tuple(self.source_kernels)) def get_cache_key(self): return (type(self).__name__, self.name, self.expansion, @@ -166,11 +151,14 @@ def default_name(self): def get_kernel(self): ncoeffs = len(self.expansion) + loopy_args = self.get_loopy_args() - from sumpy.tools import gather_loopy_source_arguments loopy_knl = lp.make_kernel([ "{[isrc_box]: 0 <= isrc_box < nsrc_boxes}", - "{[isrc, idim]: isrc_start <= isrc < isrc_end and 0 <= idim < dim}", + "{[isrc]: isrc_start <= isrc < isrc_end}", + "{[idim]: 0 <= idim < dim}", + "{[icoeff]: 0 <= icoeff < ncoeffs}", + "{[istrength]: 0 <= istrength < nstrengths}", ], [""" for isrc_box <> src_ibox = source_boxes[isrc_box] @@ -179,25 +167,35 @@ def get_kernel(self): <> center[idim] = centers[idim, src_ibox] {id=fetch_center} + <> coeffs[icoeff] = 0 {id=init_coeffs,dup=icoeff} for isrc - <> a[idim] = center[idim] - sources[idim, isrc] {dup=idim} - """] + [ - f"<> strength_{i} = strengths[{i}, isrc]" - for i in set(self.strength_usage) - ] + self.get_loopy_instructions() + [""" + <> source[idim] = sources[idim, isrc] \ + {dup=idim,id=fetch_src} + <> strength[istrength] = strengths[istrength, isrc] \ + {dup=istrength,id=fetch_strength} + [icoeff]: coeffs[icoeff] = p2e( + [icoeff]: coeffs[icoeff], + [idim]: center[idim], + [idim]: source[idim], + [istrength]: strength[istrength], + rscale, + isrc, + nsources, + sources, + """ + ",".join(arg.name for arg in loopy_args) + """ + ) {id=update_result, \ + dep=fetch_center:fetch_src:init_coeffs} end - """] + [f""" - tgt_expansions[src_ibox - tgt_base_ibox, {coeffidx}] = \ - simul_reduce(sum, isrc, coeff{coeffidx}) \ - {{id_prefix=write_expn}} - """ for coeffidx in range(ncoeffs)] + [""" + tgt_expansions[src_ibox - tgt_base_ibox, icoeff] = \ + coeffs[icoeff] {id=write_expn,dup=icoeff,\ + dep=update_result:init_coeffs} end """], [ lp.GlobalArg("sources", None, shape=(self.dim, "nsources"), order="C"), lp.GlobalArg("strengths", None, - shape=("strength_count", "nsources"), dim_tags="sep,C"), + shape=(self.strength_count, "nsources")), lp.GlobalArg("box_source_starts, box_source_counts_nonchild", None, shape=None), lp.GlobalArg("centers", None, shape="dim, aligned_nboxes"), @@ -206,20 +204,21 @@ def get_kernel(self): shape=("nboxes", ncoeffs), offset=lp.auto), lp.ValueArg("nboxes, aligned_nboxes, tgt_base_ibox", np.int32), lp.ValueArg("nsources", np.int32), + *loopy_args, ... - ] + gather_loopy_source_arguments( - self.source_kernels + (self.expansion,)), + ], name=self.name, assumptions="nsrc_boxes>=1", silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, fixed_parameters={ - "dim": self.dim, "strength_count": self.strength_count}, + "dim": self.dim, "nstrengths": self.strength_count, + "ncoeffs": ncoeffs}, lang_version=MOST_RECENT_LANGUAGE_VERSION) - for knl in self.source_kernels: - loopy_knl = knl.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") + loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") + loopy_knl = self.add_loopy_form_callable(loopy_knl) return loopy_knl @@ -270,14 +269,14 @@ def default_name(self): def get_kernel(self): ncoeffs = len(self.expansion) + loopy_args = self.get_loopy_args() - from sumpy.tools import gather_loopy_source_arguments arguments = ( [ lp.GlobalArg("sources", None, shape=(self.dim, "nsources"), order="C"), lp.GlobalArg("strengths", None, - shape=("strength_count", "nsources"), dim_tags="sep,C"), + shape=(self.strength_count, "nsources")), lp.GlobalArg("source_box_starts,source_box_lists", None, shape=None, offset=lp.auto), lp.GlobalArg("box_source_starts,box_source_counts_nonchild", @@ -288,9 +287,9 @@ def get_kernel(self): lp.ValueArg("naligned_boxes,ntgt_level_boxes,tgt_base_ibox", np.int32), lp.ValueArg("nsources", np.int32), + *loopy_args, ... - ] + gather_loopy_source_arguments( - self.source_kernels + (self.expansion,))) + ]) loopy_knl = lp.make_kernel( [ @@ -298,6 +297,8 @@ def get_kernel(self): "{[isrc_box]: isrc_box_start <= isrc_box < isrc_box_stop}", "{[isrc]: isrc_start <= isrc < isrc_end}", "{[idim]: 0 <= idim < dim}", + "{[icoeff]: 0 <= icoeff < ncoeffs}", + "{[istrength]: 0 <= istrength < nstrengths}", ], [""" for itgt_box @@ -307,6 +308,7 @@ def get_kernel(self): <> isrc_box_start = source_box_starts[itgt_box] <> isrc_box_stop = source_box_starts[itgt_box + 1] + <> coeffs[icoeff] = 0 {id=init_coeffs,dup=icoeff} for isrc_box <> src_ibox = source_box_lists[isrc_box] <> isrc_start = box_source_starts[src_ibox] @@ -314,19 +316,27 @@ def get_kernel(self): + box_source_counts_nonchild[src_ibox] for isrc - <> a[idim] = center[idim] - sources[idim, isrc] \ - {dup=idim} - """] + [ - f""" - <> strength_{i} = strengths[{i}, isrc] - """ for i in set(self.strength_usage) - ] + self.get_loopy_instructions() + [""" + <> source[idim] = sources[idim, isrc] \ + {dup=idim,id=fetch_src} + <> strength[istrength] = strengths[istrength, isrc] \ + {dup=istrength,id=fetch_strength} + [icoeff]: coeffs[icoeff] = p2e( + [icoeff]: coeffs[icoeff], + [idim]: center[idim], + [idim]: source[idim], + [istrength]: strength[istrength], + rscale, + isrc, + nsources, + sources, + """ + ",".join(arg.name for arg in loopy_args) + """ + ) {id=update_result, \ + dep=fetch_center:fetch_src:init_coeffs} end - end"""] + [f""" - tgt_expansions[tgt_ibox - tgt_base_ibox, {coeffidx}] = \ - simul_reduce(sum, (isrc_box, isrc), coeff{coeffidx}) \ - {{id_prefix=write_expn}} - """ for coeffidx in range(ncoeffs)] + [""" + end + tgt_expansions[tgt_ibox - tgt_base_ibox, icoeff] = \ + coeffs[icoeff] {id=write_expn,dup=icoeff, \ + dep=update_result:init_coeffs} end """], arguments, @@ -335,12 +345,13 @@ def get_kernel(self): silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, fixed_parameters={"dim": self.dim, - "strength_count": self.strength_count}, + "nstrengths": self.strength_count, + "ncoeffs": ncoeffs}, lang_version=MOST_RECENT_LANGUAGE_VERSION) - for knl in self.source_kernels: - loopy_knl = knl.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") + loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") + loopy_knl = self.add_loopy_form_callable(loopy_knl) return loopy_knl From 88f619df7d4447b3d9d61ca413ba32d77d2fc1c0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 20 May 2023 19:19:19 -0500 Subject: [PATCH 064/335] Use less __local memory in P2P (#169) --- sumpy/p2p.py | 143 ++++++++++++++++++++++++++++++++----------------- sumpy/tools.py | 2 +- 2 files changed, 95 insertions(+), 50 deletions(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index eba84537d..4be5916da 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -86,6 +86,9 @@ def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, source_kernels=source_kernels, strength_usage=strength_usage, value_dtypes=value_dtypes, name=name, device=device) + import pyopencl as cl + self.is_gpu = not (self.device.type & cl.device_type.CPU) + self.exclude_self = exclude_self self.dim = single_valued(knl.dim for knl in @@ -444,7 +447,7 @@ def default_name(self): return "p2p_from_csr" def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, - gpu=False, nsplit=32): + work_items_per_group=32): loopy_insns, result_names = self.get_loopy_insns_and_result_names() arguments = self.get_default_src_tgt_arguments() \ + [ @@ -473,13 +476,11 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, "{[iknl]: 0 <= iknl < noutputs}", "{[isrc_box]: isrc_box_start <= isrc_box < isrc_box_end}", "{[idim]: 0 <= idim < dim}", - "{[isrc]: isrc_start <= isrc < isrc_end}" ] - src_outer_limit = (max_nsources_in_one_box - 1) // nsplit - tgt_outer_limit = (max_ntargets_in_one_box - 1) // nsplit + tgt_outer_limit = (max_ntargets_in_one_box - 1) // work_items_per_group - if gpu: + if self.is_gpu: arguments += [ lp.TemporaryVariable("local_isrc", shape=(self.dim, max_nsources_in_one_box)), @@ -488,79 +489,90 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, ] domains += [ "{[istrength]: 0 <= istrength < nstrengths}", - "{[inner]: 0 <= inner < nsplit}", + "{[inner]: 0 <= inner < work_items_per_group}", "{[itgt_offset_outer]: 0 <= itgt_offset_outer <= tgt_outer_limit}", - "{[isrc_offset_outer]: 0 <= isrc_offset_outer <= src_outer_limit}", + "{[isrc_prefetch]: 0 <= isrc_prefetch < max_nsources_in_one_box}", + "{[isrc_offset]: 0 <= isrc_offset < max_nsources_in_one_box" + " and isrc_offset < isrc_end - isrc_start}", ] else: domains += [ "{[itgt]: itgt_start <= itgt < itgt_end}", + "{[isrc]: isrc_start <= isrc < isrc_end}" ] # There are two algorithms here because pocl-pthread 1.9 miscompiles # the "gpu" kernel with prefetching. - if gpu: + if self.is_gpu: instructions = (self.get_kernel_scaling_assignments() + [""" for itgt_box - <> tgt_ibox = target_boxes[itgt_box] - <> itgt_start = box_target_starts[tgt_ibox] - <> itgt_end = itgt_start + box_target_counts_nonchild[tgt_ibox] - - <> isrc_box_start = source_box_starts[itgt_box] - <> isrc_box_end = source_box_starts[itgt_box+1] + <> tgt_ibox = target_boxes[itgt_box] {id=init_0} + <> itgt_start = box_target_starts[tgt_ibox] {id=init_1} + <> itgt_end = itgt_start + box_target_counts_nonchild[tgt_ibox] \ + {id=init_2} + <> isrc_box_start = source_box_starts[itgt_box] {id=init_3} + <> isrc_box_end = source_box_starts[itgt_box+1] {id=init_4} for itgt_offset_outer - <> itgt_offset = itgt_offset_outer * nsplit + inner - <> itgt = itgt_offset + itgt_start - <> cond_itgt = itgt < itgt_end - <> acc[iknl] = 0 {id=init_acc} - if cond_itgt - tgt_center[idim] = targets[idim, itgt] {id=prefetch_tgt,dup=idim} + for inner + <> itgt_offset = itgt_offset_outer * work_items_per_group + inner + <> itgt = itgt_offset + itgt_start + <> cond_itgt = itgt < itgt_end + <> acc[iknl] = 0 {id=init_acc} + if cond_itgt + tgt_center[idim] = targets[idim, itgt] {id=set_tgt,dup=idim} + end end for isrc_box <> src_ibox = source_box_lists[isrc_box] {id=src_box_insn_0} <> isrc_start = box_source_starts[src_ibox] {id=src_box_insn_1} <> isrc_end = isrc_start + box_source_counts_nonchild[src_ibox] \ {id=src_box_insn_2} - for isrc_offset_outer - <> isrc_offset = isrc_offset_outer * nsplit + inner - <> cond_isrc = isrc_offset < isrc_end - isrc_start - if cond_isrc - local_isrc[idim, isrc_offset] = sources[idim, - isrc_offset + isrc_start] {id=prefetch_src, dup=idim} - local_isrc_strength[istrength, isrc_offset] = strength[ - istrength, isrc_offset + isrc_start] {id=prefetch_charge} + for isrc_prefetch + <> cond_isrc_prefetch = isrc_prefetch < isrc_end - isrc_start \ + {id=cond_isrc_prefetch} + if cond_isrc_prefetch + local_isrc[idim, isrc_prefetch] = sources[idim, + isrc_prefetch + isrc_start] {id=prefetch_src, dup=idim} + local_isrc_strength[istrength, isrc_prefetch] = strength[ + istrength, isrc_prefetch + isrc_start] {id=prefetch_charge} end end - if cond_itgt - for isrc - <> d[idim] = (tgt_center[idim] - local_isrc[idim, - isrc - isrc_start]) {dep=prefetch_src:prefetch_tgt} + for inner + if cond_itgt + for isrc_offset + <> isrc = isrc_offset + isrc_start + <> d[idim] = (tgt_center[idim] - local_isrc[idim, + isrc_offset]) \ + {id=set_d,dep=prefetch_src:set_tgt} """] + [""" - <> is_self = (isrc == target_to_source[itgt]) + <> is_self = (isrc == target_to_source[itgt]) """ if self.exclude_self else ""] + [f""" - <> strength_{i} = local_isrc_strength[{i}, isrc - isrc_start] \ - {{dep=prefetch_charge}} + <> strength_{i} = local_isrc_strength[{i}, isrc_offset] \ + {{id=set_strength{i},dep=prefetch_charge}} """ for i in set(self.strength_usage)] + loopy_insns + [f""" - acc[{iknl}] = acc[{iknl}] + \ - pair_result_{iknl} \ - {{id=update_acc_{iknl}, dep=init_acc}} + acc[{iknl}] = acc[{iknl}] + \ + pair_result_{iknl} \ + {{id=update_acc_{iknl}, dep=init_acc}} """ for iknl in range(len(self.target_kernels))] + [""" + end end end end """] + [f""" + for inner if cond_itgt result[{iknl}, itgt] = knl_{iknl}_scaling * acc[{iknl}] \ {{id_prefix=write_csr,dep=update_acc_{iknl} }} end + end """ for iknl in range(len(self.target_kernels))] + [""" end @@ -623,8 +635,9 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, fixed_parameters={ "dim": self.dim, "nstrengths": self.strength_count, - "nsplit": nsplit, - "src_outer_limit": src_outer_limit, + "max_nsources_in_one_box": max_nsources_in_one_box, + "max_ntargets_in_one_box": max_ntargets_in_one_box, + "work_items_per_group": work_items_per_group, "tgt_outer_limit": tgt_outer_limit, "noutputs": len(self.target_kernels)}, lang_version=MOST_RECENT_LANGUAGE_VERSION) @@ -643,16 +656,23 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, return loopy_knl def get_optimized_kernel(self, max_nsources_in_one_box, - max_ntargets_in_one_box): - import pyopencl as cl - dev = self.context.devices[0] - if dev.type & cl.device_type.CPU: + max_ntargets_in_one_box, dtype_size): + if not self.is_gpu: knl = self.get_kernel(max_nsources_in_one_box, - max_ntargets_in_one_box, gpu=False) + max_ntargets_in_one_box) knl = lp.split_iname(knl, "itgt_box", 4, outer_tag="g.0") + knl = self._allow_redundant_execution_of_knl_scaling(knl) else: + work_items_per_group = min(256, max_ntargets_in_one_box) + total_local_mem = max_nsources_in_one_box * \ + (self.dim + self.strength_count) * dtype_size + # multiplying by 2 here to make sure at least 2 work groups + # can be scheduled at the same time for latency hiding + nprefetch = (2 * total_local_mem - 1) // self.device.local_mem_size + 1 + knl = self.get_kernel(max_nsources_in_one_box, - max_ntargets_in_one_box, gpu=True, nsplit=32) + max_ntargets_in_one_box, + work_items_per_group=work_items_per_group) knl = lp.tag_inames(knl, {"itgt_box": "g.0", "inner": "l.0"}) knl = lp.set_temporary_address_space(knl, ["local_isrc", "local_isrc_strength"], lp.AddressSpace.LOCAL) @@ -670,10 +690,27 @@ def get_optimized_kernel(self, max_nsources_in_one_box, if count in [2, 3, 4, 8, 16]: knl = lp.tag_array_axes(knl, "local_isrc", "vec,C") - knl = lp.add_inames_for_unused_hw_axes(knl) + # We need to split isrc_prefetch and isrc_offset into chunks. + nsources = (max_nsources_in_one_box + nprefetch - 1) // nprefetch + knl = lp.split_array_axis(knl, "local_isrc", 1, nsources) + knl = lp.split_iname(knl, "isrc_prefetch", nsources, + outer_iname="iprefetch") + knl = lp.split_iname(knl, "isrc_prefetch_inner", work_items_per_group) + knl = lp.tag_inames(knl, {"isrc_prefetch_inner_inner": "l.0"}) + knl = lp.split_iname(knl, "isrc_offset", nsources, + outer_iname="iprefetch") + + # After splitting, the temporary array local_isrc need not + # be as large as before. Need to simplify before unprivatizing + knl = lp.simplify_indices(knl) + knl = lp.unprivatize_temporaries_with_inames(knl, + "iprefetch", only_var_names="local_isrc") + + knl = lp.add_inames_to_insn(knl, + "inner", "id:init_* or id:*_scaling or id:src_box_insn_*") + knl = lp.add_inames_to_insn(knl, "itgt_box", "id:*_scaling") # knl = lp.set_options(knl, write_code=True) - knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") @@ -682,9 +719,17 @@ def get_optimized_kernel(self, max_nsources_in_one_box, 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") + + if self.is_gpu: + dtype_size = kwargs.get("sources")[0].dtype.alignment + else: + dtype_size = None + knl = self.get_cached_optimized_kernel( max_nsources_in_one_box=max_nsources_in_one_box, - max_ntargets_in_one_box=max_ntargets_in_one_box) + max_ntargets_in_one_box=max_ntargets_in_one_box, + dtype_size=dtype_size, + ) return knl(queue, **kwargs) diff --git a/sumpy/tools.py b/sumpy/tools.py index 2f882a780..9dfc24a51 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -295,7 +295,7 @@ def get_kernel_scaling_assignments(self): import loopy as lp return [ - lp.Assignment(id=None, + lp.Assignment(id=f"knl_{i}_scaling", assignee=f"knl_{i}_scaling", expression=sympy_conv(kernel.get_global_scaling_const()), temp_var_type=lp.Optional(dtype), From e7479ff55d8e6bcdf972c636ece7e22713978eda Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 23 May 2023 11:08:12 -0500 Subject: [PATCH 065/335] fp_contract(fast) for pocl CUDA --- sumpy/codegen.py | 14 ++++++++++++++ sumpy/p2p.py | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index fa13d5269..3b19fcb9e 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -208,6 +208,20 @@ def register_bessel_callables(loopy_knl): Hankel1_01("hank1_01")) return loopy_knl + +def _fp_contract_fast_preamble(preamble_info): + yield ("fp_contract_fast_pocl", "#pragma clang fp contract(fast)") + + +def register_optimization_preambles(loopy_knl, device): + if isinstance(loopy_knl.target, lp.PyOpenCLTarget): + import pyopencl as cl + if device.platform.name == "Portable Computing Language" and \ + (device.type & cl.device_type.GPU): + loopy_knl = lp.register_preamble_generators(loopy_knl, + [_fp_contract_fast_preamble]) + return loopy_knl + # }}} diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 4be5916da..d03d8bd1f 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -190,6 +190,9 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + from sumpy.codegen import register_optimization_preambles + knl = register_optimization_preambles(knl, self.device) + return knl @@ -714,6 +717,9 @@ def get_optimized_kernel(self, max_nsources_in_one_box, knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + from sumpy.codegen import register_optimization_preambles + knl = register_optimization_preambles(knl, self.device) + return knl def __call__(self, queue, **kwargs): From 82d6d431d32770ea02ade64112f272327c037ab5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 23 May 2023 17:37:45 -0500 Subject: [PATCH 066/335] Optimize preprocess multipole and postprocess local (#156) --- sumpy/e2e.py | 35 ++++++++++---- sumpy/expansion/__init__.py | 93 ++++++++++++++++++++++++++++++++++--- sumpy/expansion/m2l.py | 93 ++++++++++++++++++++++++++----------- test/test_misc.py | 42 +++++++++++++++++ 4 files changed, 220 insertions(+), 43 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index c357082b2..7899c7b47 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -668,14 +668,20 @@ class M2LPreprocessMultipole(E2EBase): def default_name(self): return "m2l_preprocess_multipole" + @memoize_method + def get_inner_knl_and_optimizations(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation + return m2l_translation.preprocess_multipole_loopy_knl( + self.tgt_expansion, self.src_expansion, result_dtype) + def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation nsrc_coeffs = len(self.src_expansion) npreprocessed_src_coeffs = \ m2l_translation.preprocess_multipole_nexprs(self.tgt_expansion, self.src_expansion) - single_box_preprocess_knl = m2l_translation.preprocess_multipole_loopy_knl( - self.tgt_expansion, self.src_expansion, result_dtype) + single_box_preprocess_knl, _ = self.get_inner_knl_and_optimizations( + result_dtype) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( @@ -721,11 +727,11 @@ def get_kernel(self, result_dtype): return loopy_knl def get_optimized_kernel(self, result_dtype): - # FIXME knl = self.get_kernel(result_dtype) - knl = lp.split_iname(knl, "isrc_box", 64, outer_tag="g.0", - within=f"in_kernel:{self.name}") - knl = lp.add_inames_for_unused_hw_axes(knl) + knl = lp.tag_inames(knl, "isrc_box:g.0") + _, optimizations = self.get_inner_knl_and_optimizations(result_dtype) + for optimization in optimizations: + knl = optimization(knl) return knl def __call__(self, queue, **kwargs): @@ -752,6 +758,12 @@ class M2LPostprocessLocal(E2EBase): def default_name(self): return "m2l_postprocess_local" + @memoize_method + def get_inner_knl_and_optimizations(self, result_dtype): + m2l_translation = self.tgt_expansion.m2l_translation + return m2l_translation.postprocess_local_loopy_knl( + self.tgt_expansion, self.src_expansion, result_dtype) + def get_kernel(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation ntgt_coeffs = len(self.tgt_expansion) @@ -759,8 +771,8 @@ def get_kernel(self, result_dtype): m2l_translation.postprocess_local_nexprs(self.tgt_expansion, self.src_expansion) - single_box_postprocess_knl = m2l_translation.postprocess_local_loopy_knl( - self.tgt_expansion, self.src_expansion, result_dtype) + single_box_postprocess_knl, _ = self.get_inner_knl_and_optimizations( + result_dtype) from sumpy.tools import gather_loopy_arguments loopy_knl = lp.make_kernel( @@ -813,9 +825,12 @@ def get_kernel(self, result_dtype): return loopy_knl def get_optimized_kernel(self, result_dtype): - # FIXME knl = self.get_kernel(result_dtype) - knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") + knl = lp.tag_inames(knl, "itgt_box:g.0") + _, optimizations = self.get_inner_knl_and_optimizations(result_dtype) + for optimization in optimizations: + knl = optimization(knl) + knl = lp.add_inames_for_unused_hw_axes(knl) return knl def __call__(self, queue, **kwargs): diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 3ee589173..c667ba998 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -30,6 +30,7 @@ import sumpy.symbolic as sym from sumpy.kernel import Kernel from sumpy.tools import add_mi +import pymbolic.primitives as prim import logging logger = logging.getLogger(__name__) @@ -377,6 +378,18 @@ def _split_coeffs_into_hyperplanes( class FullExpansionTermsWrangler(ExpansionTermsWrangler): + + def get_storage_index(self, mi, order=None): + if not order: + order = sum(mi) + if self.dim == 3: + return (order*(order + 1)*(order + 2))//6 + \ + (order + 2)*mi[2] - (mi[2]*(mi[2] + 1))//2 + mi[1] + elif self.dim == 2: + return (order*(order + 1))//2 + mi[1] + else: + raise NotImplementedError + def get_coefficient_identifiers(self): return super().get_full_coefficient_identifiers() @@ -389,6 +402,26 @@ def get_stored_mpole_coefficients_from_full(self, return self.get_full_kernel_derivatives_from_stored( full_mpole_coefficients, rscale, sac=sac) + @memoize_method + def _get_mi_ordering_key_and_axis_permutation(self): + """ + Returns a degree lexicographic order as a callable that can be used as a + ``sort`` key on multi-indices and a permutation of the axis ordered + from the slowest varying axis to the fastest varying axis of the + multi-indices when sorted. + """ + from sumpy.expansion.diff_op import DerivativeIdentifier + + axis_permutation = list(reversed(list(range(self.dim)))) + + def mi_key(ident): + if isinstance(ident, DerivativeIdentifier): + mi = ident.mi + else: + mi = ident + return tuple([sum(mi)] + list(reversed(mi))) + + return mi_key, axis_permutation # }}} @@ -520,7 +553,7 @@ def stored_identifiers(self): # the axes so that the axis with the on-axis coefficient comes first in the # multi-index tuple. @memoize_method - def _get_mi_ordering_key(self): + def _get_mi_ordering_key_and_axis_permutation(self): """ A degree lexicographic order with the slowest varying index depending on the PDE is used, returned as a callable that can be used as a @@ -529,6 +562,9 @@ def _get_mi_ordering_key(self): multipole-to-multipole translation to get lower error bounds. The slowest varying index is chosen such that the multipole-to-local translation cost is optimized. + + Also returns a permutation of the axis ordered from the slowest varying + axis to the fastest varying axis of the multi-indices when sorted. """ dim = self.dim deriv_id_to_coeff, = self.knl.get_pde_as_diff_op().eqs @@ -554,7 +590,7 @@ def mi_key(ident): key.append(mi[axis_permutation[i]]) return tuple(key) - return mi_key + return mi_key, axis_permutation def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: mis = self.get_full_coefficient_identifiers() @@ -570,8 +606,8 @@ def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: else: # Calculate the multi-index that appears last in in the PDE in # the degree lexicographic order given by - # _get_mi_ordering_key. - ordering_key = self._get_mi_ordering_key() + # _get_mi_ordering_key_and_axis_permutation. + ordering_key, _ = self._get_mi_ordering_key_and_axis_permutation() max_mi = max(deriv_id_to_coeff, key=ordering_key).mi hyperplanes = [(d, const) for d in range(self.dim) @@ -581,9 +617,54 @@ def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: def get_full_coefficient_identifiers(self): identifiers = super().get_full_coefficient_identifiers() - key = self._get_mi_ordering_key() + key, _ = self._get_mi_ordering_key_and_axis_permutation() return sorted(identifiers, key=key) + def get_storage_index(self, mi, order=None): + if not order: + order = sum(mi) + + ordering_key, axis_permutation = \ + self._get_mi_ordering_key_and_axis_permutation() + deriv_id_to_coeff, = self.knl.get_pde_as_diff_op().eqs + max_mi = max(deriv_id_to_coeff, key=ordering_key).mi + + if all(m != 0 for m in max_mi): + raise NotImplementedError("non-elliptic PDEs") + + c = max_mi[axis_permutation[0]] + + mi = list(mi) + mi[axis_permutation[0]], mi[0] = mi[0], mi[axis_permutation[0]] + + if self.dim == 3: + if all(isinstance(axis, int) for axis in mi): + if order < c - 1: + return (order*(order + 1)*(order + 2))//6 + \ + (order + 2)*mi[0] - (mi[0]*(mi[0] + 1))//2 + mi[1] + else: + return (c*(c-1)*(c-2))//6 + (c * order * (2 + order - c) + + mi[0]*(3 - mi[0]+2*order))//2 + mi[1] + else: + return prim.If(prim.Comparison(order, "<", c - 1), + (order*(order + 1)*(order + 2))//6 + + (order + 2)*mi[0] - (mi[0]*(mi[0] + 1))//2 + mi[1], + (c*(c-1)*(c-2))//6 + (c * order * (2 + order - c) + + mi[0]*(3 - mi[0]+2*order))//2 + mi[1] + ) + elif self.dim == 2: + if all(isinstance(axis, int) for axis in mi): + if order < c - 1: + return (order*(order + 1))//2 + mi[0] + else: + return (c*(c-1))//2 + c*(order - c + 1) + mi[0] + else: + return prim.If(prim.Comparison(order, "<", c - 1), + (order*(order + 1))//2 + mi[0], + (c*(c-1))//2 + c*(order - c + 1) + mi[0]) + else: + raise NotImplementedError + @memoize_method def get_stored_ids_and_unscaled_projection_matrix(self): from pytools import ProcessLogger @@ -608,7 +689,7 @@ def get_stored_ids_and_unscaled_projection_matrix(self): from_output_coeffs_by_row, shape) return mis, op - ordering_key = self._get_mi_ordering_key() + ordering_key, _ = self._get_mi_ordering_key_and_axis_permutation() max_mi = max((ident for ident in mi_to_coeff.keys()), key=ordering_key) max_mi_coeff = mi_to_coeff[max_mi] max_mi_mult = -1/sym.sympify(max_mi_coeff) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index dbcc7d260..a56d91b54 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -440,64 +440,98 @@ def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, result_dtype): - circulant_matrix_mis, _, _ = \ + circulant_matrix_mis, _, max_mi = \ self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) - circulant_matrix_ident_to_index = { - ident: i for i, ident in enumerate(circulant_matrix_mis)} ncoeff_src = len(src_expansion.get_coefficient_identifiers()) ncoeff_preprocessed = self.preprocess_multipole_nexprs(tgt_expansion, src_expansion) + order = src_expansion.order output_coeffs = pymbolic.var("output_coeffs") input_coeffs = pymbolic.var("input_coeffs") - srcidx_sym = pymbolic.var("srcidx") output_icoeff = pymbolic.var("output_icoeff") input_icoeff = pymbolic.var("input_icoeff") + input_coeffs_copy = pymbolic.var("input_coeffs_copy") + + dim = tgt_expansion.dim + v = [pymbolic.var(f"x{i}") for i in range(dim)] + + wrangler = src_expansion.expansion_terms_wrangler + _, axis_permutation = wrangler._get_mi_ordering_key_and_axis_permutation() + slowest_idx = axis_permutation[0] + # max_mi[slowest_idx] = 2*(c - 1) + c = max_mi[slowest_idx] // 2 + 1 + noutput_coeffs = c * (2*order + 1) ** (dim - 1) domains = [ "{[output_icoeff]: 0<=output_icoeff 0 else idx + insns.append(lp.Assignment( + assignee=v[i], + expression=new_idx, + id=f"set_x{i}", + temp_var_type=lp.Optional(None), + )) + idx = idx // (max_mi[i] + 1) + + input_idx = wrangler.get_storage_index(v) + output_idx = 0 + mult = 1 + for i in range(dim - 1, -1, -1): + output_idx += mult*v[i] + mult *= (max_mi[i] + 1) + + insns += [ lp.Assignment( assignee=output_coeffs[output_icoeff], - expression=pymbolic.primitives.If( - pymbolic.primitives.Comparison(input_icoeff, ">=", 0), - input_coeffs[input_icoeff], - 0, - ), - depends_on=frozenset(["input_icoeff"]), + expression=input_coeffs_copy[input_idx], + predicates=frozenset([ + pymbolic.primitives.Comparison(sum(v), "<=", order), + pymbolic.primitives.Comparison(v[slowest_idx], "<", c), + ]), + depends_on=frozenset([f"set_x{i}" for i in range(dim)] + + ["input_copy"]), ) ] - srcidx = np.full(ncoeff_preprocessed, -1, dtype=np.int32) - for icoeff_src, term in enumerate( - src_expansion.get_coefficient_identifiers()): - new_icoeff_src = circulant_matrix_ident_to_index[term] - srcidx[new_icoeff_src] = icoeff_src - - return lp.make_function(domains, insns, + knl = lp.make_function(domains, insns, kernel_data=[ lp.ValueArg("src_rscale", None), lp.GlobalArg("output_coeffs", None, shape=ncoeff_preprocessed, is_input=False, is_output=True), lp.GlobalArg("input_coeffs", None, shape=ncoeff_src), - lp.TemporaryVariable(input_icoeff.name, dtype=np.int32), - lp.TemporaryVariable( - srcidx_sym.name, initializer=srcidx, - address_space=lp.AddressSpace.GLOBAL, read_only=True), ...], name="m2l_preprocess_inner", lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - fixed_parameters={"noutput_coeffs": ncoeff_preprocessed}, + fixed_parameters={"noutput_coeffs": noutput_coeffs, + "ninput_coeffs": ncoeff_src}, ) + optimizations = [ + lambda knl: lp.split_iname(knl, "m2l__input_icoeff", + 32, inner_tag="l.0"), + lambda knl: lp.split_iname(knl, "m2l__output_icoeff", + 32, inner_tag="l.0"), + ] + + return (knl, optimizations) + def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac): circulant_matrix_mis, _, _ = \ @@ -607,7 +641,12 @@ def result_func(x): "{[output_icoeff]: 0<=output_icoeff Date: Sat, 14 Jan 2023 14:15:08 +0530 Subject: [PATCH 067/335] Convert negative exponentiation to positive + division --- sumpy/symbolic.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 01adb6e83..c1599a5df 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -37,6 +37,7 @@ import numpy as np from pymbolic.mapper import IdentityMapper as IdentityMapperBase import pymbolic.primitives as prim +import math import logging logger = logging.getLogger(__name__) @@ -111,6 +112,7 @@ def _find_symbolic_backend(): Symbol = sym.Symbol Derivative = sym.Derivative Integer = sym.Integer +Rational = sym.Rational Matrix = sym.Matrix Subs = sym.Subs I = sym.I # noqa: E741 @@ -293,6 +295,27 @@ def map_Symbol(self, expr): # noqa: N802 return SpatialConstant.from_sympy(expr) return SympyToPymbolicMapperBase.map_Symbol(self, expr) + def map_Pow(self, expr): # noqa: N802 + if expr.exp == -1: + return 1/self.rec(expr.base) + else: + return SympyToPymbolicMapperBase.map_Pow(self, expr) + + def map_Mul(self, expr): # noqa: N802 + num_args = [] + den_args = [] + for child in expr.args: + if isinstance(child, Pow) and isinstance(child.exp, Integer) \ + and child.exp < 0: + den_args.append(self.rec(child.base)**(-self.rec(child.exp))) + elif isinstance(child, Rational) and not isinstance(child, Integer): + num_args.append(self.rec(child.p)) + den_args.append(self.rec(child.q)) + else: + num_args.append(self.rec(child)) + + return math.prod(num_args) / math.prod(den_args) + class PymbolicToSympyMapperWithSymbols(PymbolicToSympyMapper): def map_variable(self, expr): From c3c0a6317da3b132bb942d3ca7cca63c9dc44d8c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Jan 2023 15:00:30 +0530 Subject: [PATCH 068/335] Keep Rational as it is --- sumpy/symbolic.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index c1599a5df..48d43a5ef 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -308,9 +308,6 @@ def map_Mul(self, expr): # noqa: N802 if isinstance(child, Pow) and isinstance(child.exp, Integer) \ and child.exp < 0: den_args.append(self.rec(child.base)**(-self.rec(child.exp))) - elif isinstance(child, Rational) and not isinstance(child, Integer): - num_args.append(self.rec(child.p)) - den_args.append(self.rec(child.q)) else: num_args.append(self.rec(child)) From effa57decd61271c17e943f21d105512f429c9a0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 29 May 2023 00:57:36 -0500 Subject: [PATCH 069/335] Optimize M2L a bit gives a 40% performance boost in CUDA --- sumpy/expansion/m2l.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index a56d91b54..376d57882 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -795,8 +795,8 @@ def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): knl = lp.unprivatize_temporaries_with_inames(knl, {"icoeff_tgt"}, {"tgt_expansion"}) - knl = lp.split_iname(knl, "icoeff_tgt", 32, inner_iname="inner", - inner_tag="l.0") + knl = lp.split_iname(knl, "icoeff_tgt", 64, inner_iname="inner", + inner_tag="l.0", outer_tag="g.1") knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) return knl From 8960662fcc4fb8cb89ce7767d03948a29b562209 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 1 Jun 2023 20:36:04 -0500 Subject: [PATCH 070/335] refactor loopy methods --- sumpy/e2e.py | 6 +++--- sumpy/e2p.py | 2 +- sumpy/expansion/__init__.py | 8 ++++---- sumpy/expansion/m2l.py | 14 +++++++------- sumpy/p2e.py | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 7899c7b47..0a0726a07 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -562,7 +562,7 @@ def get_kernel(self, result_dtype): self.tgt_expansion, self.src_expansion) translation_classes_data_knl = \ - m2l_translation.translation_classes_dependent_data_loopy_knl( + m2l_translation.loopy_translation_classes_dependent_data( self.tgt_expansion, self.src_expansion, result_dtype) from sumpy.tools import gather_loopy_arguments @@ -671,7 +671,7 @@ def default_name(self): @memoize_method def get_inner_knl_and_optimizations(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation - return m2l_translation.preprocess_multipole_loopy_knl( + return m2l_translation.loopy_preprocess_multipole( self.tgt_expansion, self.src_expansion, result_dtype) def get_kernel(self, result_dtype): @@ -761,7 +761,7 @@ def default_name(self): @memoize_method def get_inner_knl_and_optimizations(self, result_dtype): m2l_translation = self.tgt_expansion.m2l_translation - return m2l_translation.postprocess_local_loopy_knl( + return m2l_translation.loopy_postprocess_local( self.tgt_expansion, self.src_expansion, result_dtype) def get_kernel(self, result_dtype): diff --git a/sumpy/e2p.py b/sumpy/e2p.py index f304a3391..eb9038dc5 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -86,7 +86,7 @@ def get_cache_key(self): def add_loopy_eval_callable( self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - inner_knl = self.expansion.get_loopy_evaluator(self.kernels) + inner_knl = self.expansion.loopy_evaluator(self.kernels) loopy_knl = lp.merge([loopy_knl, inner_knl]) loopy_knl = lp.inline_callable_kernel(loopy_knl, "e2p") loopy_knl = lp.remove_unused_inames(loopy_knl) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index c667ba998..a761d1be4 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -66,9 +66,9 @@ class ExpansionBase(ABC): .. automethod:: get_coefficient_identifiers .. automethod:: coefficients_from_source .. automethod:: coefficients_from_source_vec - .. automethod:: get_loopy_expansion_formation + .. automethod:: loopy_expansion_formation .. automethod:: evaluate - .. automethod:: get_loopy_evaluator + .. automethod:: loopy_evaluator .. automethod:: with_kernel .. automethod:: copy @@ -164,7 +164,7 @@ def coefficients_from_source_vec(self, result[i] += weight * coeffs[i] return result - def get_loopy_expansion_formation( + def loopy_expansion_formation( self, kernels: Sequence[Kernel], strength_usage: Sequence[int], nstrengths: int) -> lp.TranslationUnit: """ @@ -183,7 +183,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): in *coeffs*. """ - def get_loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: + def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: """ :returns: a :mod:`loopy` kernel that returns the evaluated target transforms of the potential given by *kernels*. diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 376d57882..9a75f8ea6 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -183,13 +183,13 @@ def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): """ return 0 - def translation_classes_dependent_data_loopy_knl(self, tgt_expansion, + def loopy_translation_classes_dependent_data(self, tgt_expansion, src_expansion, result_dtype): """Return a :mod:`loopy` kernel that calculates the data described by :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. :arg result_dtype: The :mod:`numpy` type of the result. """ - return translation_classes_dependent_data_loopy_knl(tgt_expansion, + return loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, result_dtype) @abstractmethod @@ -437,7 +437,7 @@ def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): src_expansion) return len(circulant_matrix_mis) - def preprocess_multipole_loopy_knl(self, tgt_expansion, src_expansion, + def loopy_preprocess_multipole(self, tgt_expansion, src_expansion, result_dtype): circulant_matrix_mis, _, max_mi = \ @@ -553,7 +553,7 @@ def postprocess_local_nexprs(self, tgt_expansion, src_expansion): return self.translation_classes_dependent_ndata( tgt_expansion, src_expansion) - def postprocess_local_loopy_knl(self, tgt_expansion, src_expansion, + def loopy_postprocess_local(self, tgt_expansion, src_expansion, result_dtype): circulant_matrix_mis, needed_vector_terms, _ = \ self._translation_classes_dependent_data_mis(tgt_expansion, @@ -1020,9 +1020,9 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, # }}} FourierBesselM2LWithFFT -# {{{ translation_classes_dependent_data_loopy_knl +# {{{ loopy_translation_classes_dependent_data -def translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, +def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, result_dtype): """ This is a helper function to create a loopy kernel to generate translation @@ -1086,6 +1086,6 @@ def translation_classes_dependent_data_loopy_knl(tgt_expansion, src_expansion, return knl -# }}} translation_classes_dependent_data_loopy_knl +# }}} loopy_translation_classes_dependent_data # vim: fdm=marker diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 8c25415ad..7118bc2f4 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -88,7 +88,7 @@ def __init__(self, ctx, expansion, kernels=None, def add_loopy_form_callable( self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - inner_knl = self.expansion.get_loopy_expansion_formation( + inner_knl = self.expansion.loopy_expansion_formation( self.source_kernels, self.strength_usage, self.strength_count) loopy_knl = lp.merge([loopy_knl, inner_knl]) loopy_knl = lp.inline_callable_kernel(loopy_knl, "p2e") From 2fbc5eebce6a84735192ca164c3dafefd15a3c49 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 19 Jul 2023 11:41:27 -0500 Subject: [PATCH 071/335] End ProcessLogger in early exit from get_stored_ids_and_unscaled_projection_matrix --- sumpy/expansion/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index a761d1be4..d72918eb5 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -687,6 +687,9 @@ def get_stored_ids_and_unscaled_projection_matrix(self): shape = (len(mis), len(mis)) op = CSEMatVecOperator(from_input_coeffs_by_row, from_output_coeffs_by_row, shape) + + plog.done() + return mis, op ordering_key, _ = self._get_mi_ordering_key_and_axis_permutation() From bcb020d0cdbf085209fc9a9f9dfdb966d4de27fa Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 25 Jul 2023 10:48:16 -0500 Subject: [PATCH 072/335] Make use of loopy.TranslationUnit.executor This avoids long-lived references to CL kernels held by loopy caches --- sumpy/e2e.py | 16 ++++++++-------- sumpy/e2p.py | 6 +++--- sumpy/p2e.py | 2 +- sumpy/p2p.py | 8 ++++---- sumpy/qbx.py | 6 +++--- sumpy/tools.py | 15 ++++++++++++--- 6 files changed, 31 insertions(+), 22 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 0a0726a07..9a7323787 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -82,7 +82,7 @@ def __init__(self, ctx, src_expansion, tgt_expansion, SourceTransformationRemover()( TargetTransformationRemover()(tgt_expansion.kernel))) - self.ctx = ctx + self.context = ctx self.src_expansion = src_expansion self.tgt_expansion = tgt_expansion self.name = name or self.default_name @@ -297,7 +297,7 @@ def __call__(self, queue, **kwargs): src_rscale = centers.dtype.type(kwargs.pop("src_rscale")) tgt_rscale = centers.dtype.type(kwargs.pop("tgt_rscale")) - knl = self.get_cached_optimized_kernel() + knl = self.get_cached_kernel_executor() return knl(queue, centers=centers, @@ -537,7 +537,7 @@ def __call__(self, queue, **kwargs): tgt_rscale = centers.dtype.type(kwargs.pop("tgt_rscale")) src_expansions = kwargs.pop("src_expansions") - knl = self.get_cached_optimized_kernel(result_dtype=src_expansions.dtype) + knl = self.get_cached_kernel_executor(result_dtype=src_expansions.dtype) return knl(queue, src_expansions=src_expansions, @@ -647,7 +647,7 @@ def __call__(self, queue, **kwargs): "m2l_translation_classes_dependent_data") result_dtype = m2l_translation_classes_dependent_data.dtype - knl = self.get_cached_optimized_kernel(result_dtype=result_dtype) + knl = self.get_cached_kernel_executor(result_dtype=result_dtype) return knl(queue, src_rscale=src_rscale, @@ -741,7 +741,7 @@ def __call__(self, queue, **kwargs): """ preprocessed_src_expansions = kwargs.pop("preprocessed_src_expansions") result_dtype = preprocessed_src_expansions.dtype - knl = self.get_cached_optimized_kernel(result_dtype=result_dtype) + knl = self.get_cached_kernel_executor(result_dtype=result_dtype) return knl(queue, preprocessed_src_expansions=preprocessed_src_expansions, **kwargs) @@ -840,7 +840,7 @@ def __call__(self, queue, **kwargs): """ tgt_expansions = kwargs.pop("tgt_expansions") result_dtype = tgt_expansions.dtype - knl = self.get_cached_optimized_kernel(result_dtype=result_dtype) + knl = self.get_cached_kernel_executor(result_dtype=result_dtype) return knl(queue, tgt_expansions=tgt_expansions, **kwargs) @@ -950,7 +950,7 @@ def __call__(self, queue, **kwargs): :arg tgt_rscale: :arg centers: """ - knl = self.get_cached_optimized_kernel() + knl = self.get_cached_kernel_executor() centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type @@ -1054,7 +1054,7 @@ def __call__(self, queue, **kwargs): :arg tgt_rscale: :arg centers: """ - knl = self.get_cached_optimized_kernel() + knl = self.get_cached_kernel_executor() centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type diff --git a/sumpy/e2p.py b/sumpy/e2p.py index eb9038dc5..0ec1c48b5 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -68,7 +68,7 @@ def __init__(self, ctx, expansion, kernels, for knl in kernels: assert txr(knl) == expansion.kernel - self.ctx = ctx + self.context = ctx self.expansion = expansion self.kernels = kernels self.name = name or self.default_name @@ -210,7 +210,7 @@ def __call__(self, queue, **kwargs): :arg centers: :arg targets: """ - knl = self.get_cached_optimized_kernel() + knl = self.get_cached_kernel_executor() centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type @@ -327,7 +327,7 @@ def get_optimized_kernel(self): return knl def __call__(self, queue, **kwargs): - knl = self.get_cached_optimized_kernel() + knl = self.get_cached_kernel_executor() centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 7118bc2f4..fe52f6b93 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -124,7 +124,7 @@ def __call__(self, queue, **kwargs): from sumpy.tools import is_obj_array_like sources = kwargs.pop("sources") centers = kwargs.pop("centers") - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index d03d8bd1f..0b986c7d3 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -256,7 +256,7 @@ def get_kernel(self): return loopy_knl def __call__(self, queue, targets, sources, strength, **kwargs): - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) @@ -318,7 +318,7 @@ def get_kernel(self): return loopy_knl def __call__(self, queue, targets, sources, **kwargs): - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) @@ -429,7 +429,7 @@ def __call__(self, queue, targets, sources, tgtindices, srcindices, **kwargs): :returns: a one-dimensional array of interactions, for each index pair in (*srcindices*, *tgtindices*) """ - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) @@ -731,7 +731,7 @@ def __call__(self, queue, **kwargs): else: dtype_size = None - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( max_nsources_in_one_box=max_nsources_in_one_box, max_ntargets_in_one_box=max_ntargets_in_one_box, dtype_size=dtype_size, diff --git a/sumpy/qbx.py b/sumpy/qbx.py index bd9d8fd22..9c903ab17 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -288,7 +288,7 @@ def __call__(self, queue, targets, sources, centers, strengths, expansion_radii, already multiplied in. """ - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) @@ -359,7 +359,7 @@ def get_kernel(self): return loopy_knl def __call__(self, queue, targets, sources, centers, expansion_radii, **kwargs): - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) @@ -479,7 +479,7 @@ def __call__(self, queue, targets, sources, centers, expansion_radii, in (*srcindices*, *tgtindices*) """ - knl = self.get_cached_optimized_kernel( + knl = self.get_cached_kernel_executor( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) diff --git a/sumpy/tools.py b/sumpy/tools.py index 9dfc24a51..be404fe9d 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -381,8 +381,17 @@ def __eq__(self, other): class KernelCacheMixin: - @memoize_method def get_cached_optimized_kernel(self, **kwargs): + from warnings import warn + warn("get_cached_optimized_kernel is deprecated. " + "Use get_cached_kernel_executor instead. " + "This will stop working in October 2023.", + DeprecationWarning, stacklevel=2) + + return self.get_cached_kernel_executor(**kwargs) + + @memoize_method + def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: from sumpy import (code_cache, CACHING_ENABLED, OPT_ENABLED, NO_CACHE_KERNELS) @@ -401,7 +410,7 @@ def get_cached_optimized_kernel(self, **kwargs): result = code_cache[cache_key] logger.debug("{}: kernel cache hit [key={}]".format( self.name, cache_key)) - return result + return result.executor(self.context) except KeyError: pass @@ -422,7 +431,7 @@ def get_cached_optimized_kernel(self, **kwargs): NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): code_cache.store_if_not_present(cache_key, knl) - return knl + return knl.executor(self.context) @staticmethod def _allow_redundant_execution_of_knl_scaling(knl): From d9881cd840d890ddb76a717a6ee90a0117efb04b Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 27 Jul 2023 16:54:03 -0500 Subject: [PATCH 073/335] Use work-items for unoptimized E2Es --- sumpy/e2e.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 9a7323787..3dcf27272 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -144,7 +144,7 @@ def get_kernel(self): def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") + knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") return knl @@ -278,7 +278,7 @@ def get_kernel(self): def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") + knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") return knl From d8beb904e4e1a27f7cca8ab8be2f8db283765075 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 30 Jul 2023 17:27:46 +0300 Subject: [PATCH 074/335] fix type comparison --- sumpy/expansion/__init__.py | 2 +- sumpy/expansion/local.py | 2 +- sumpy/kernel.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index d72918eb5..dc3ce3baa 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -225,7 +225,7 @@ def __len__(self): def __eq__(self, other): return ( - type(self) == type(other) + type(self) is type(other) and self.kernel == other.kernel and self.order == other.order and self.use_rscale == other.use_rscale) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index dd0838498..7f0607f0d 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -70,7 +70,7 @@ def update_persistent_hash(self, key_hash, key_builder): def __eq__(self, other): return ( - type(self) == type(other) + type(self) is type(other) and self.kernel == other.kernel and self.order == other.order and self.use_rscale == other.use_rscale diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 1be1dec93..6c50350b3 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -102,9 +102,9 @@ def name(self): def __eq__(self, other): if id(self) == id(other): return True - if not type(self) == KernelArgument: + if type(self) is not KernelArgument: return NotImplemented - if not type(other) == KernelArgument: + if type(other) is not KernelArgument: return NotImplemented return self.loopy_arg == other.loopy_arg From de6bd2ffb5f8d898ac13002c5d0d4e838923f7c9 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 20:52:49 +0300 Subject: [PATCH 075/335] tools: reorder imports --- sumpy/tools.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index be404fe9d..32b4d3eec 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -24,31 +24,25 @@ THE SOFTWARE. """ -from pytools import memoize_method -from pytools.tag import Tag, tag_dataclass -import numbers -import warnings -import os -import sys import enum +import logging +import warnings from abc import ABC, abstractmethod from dataclasses import dataclass +from typing import TYPE_CHECKING, Any, List, Optional, Sequence, Tuple +import loopy as lp +import numpy as np +from arraycontext import Array from pymbolic.mapper import WalkMapper -import pymbolic +from pytools import T, memoize_method +from pytools.tag import Tag, tag_dataclass -import numpy as np import sumpy.symbolic as sym -import pyopencl as cl -import pyopencl.array as cla - -import loopy as lp -from typing import Any, List, Optional, TYPE_CHECKING - -import logging -logger = logging.getLogger(__name__) if TYPE_CHECKING: + import pyopencl as cl + from sumpy.kernel import Kernel From e1740329f00bd37010fa1c260a7a36d9dfd4b78b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 20:53:18 +0300 Subject: [PATCH 076/335] tools: add to docs --- doc/misc.rst | 2 ++ sumpy/tools.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/doc/misc.rst b/doc/misc.rst index f977fffd5..ac1ea388b 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -1,6 +1,8 @@ Misc Tools ========== +.. automodule:: sumpy.tools + .. automodule:: sumpy.derivative_taker .. automodule:: sumpy.symbolic diff --git a/sumpy/tools.py b/sumpy/tools.py index 32b4d3eec..daad38530 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -45,6 +45,65 @@ from sumpy.kernel import Kernel +logger = logging.getLogger(__name__) + + +__doc__ = """ +Tools +===== + +.. autofunction:: to_complex_dtype +.. autofunction:: is_obj_array_like +.. autofunction:: vector_to_device +.. autofunction:: vector_from_device +.. autoclass:: OrderedSet + +Multi-index Helpers +------------------- + +.. autofunction:: add_mi +.. autofunction:: mi_factorial +.. autofunction:: mi_increment_axis +.. autofunction:: mi_set_axis +.. autofunction:: mi_power + +Symbolic Helpers +---------------- + +.. autofunction:: add_to_sac +.. autofunction:: gather_arguments +.. autofunction:: gather_source_arguments +.. autofunction:: gather_loopy_arguments +.. autofunction:: gather_loopy_source_arguments + +.. autoclass:: ScalingAssignmentTag +.. autoclass:: KernelComputation +.. autoclass:: KernelCacheMixin + +.. autofunction:: reduced_row_echelon_form +.. autofunction:: nullspace + +FFT +--- + +.. autofunction:: fft +.. autofunction:: fft_toeplitz_upper_triangular +.. autofunction:: matvec_toeplitz_upper_triangular + +.. autoclass:: FFTBackend +.. autofunction:: loopy_fft +.. autofunction:: get_opencl_fft_app +.. autofunction:: run_opencl_fft + +Profiling +--------- + +.. autofunction:: get_native_event +.. autoclass:: ProfileGetter +.. autoclass:: AggregateProfilingEvent +.. autoclass:: MarkerBasedProfilingEvent +""" + # {{{ multi_index helpers From d1c73024b221704e1f97541bcc2950f9bd2eae4d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 20:54:54 +0300 Subject: [PATCH 077/335] tools: add some type annotations --- sumpy/tools.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index daad38530..25addd185 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -107,11 +107,11 @@ # {{{ multi_index helpers -def add_mi(mi1, mi2): +def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> Tuple[int, ...]: return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2)]) -def mi_factorial(mi): +def mi_factorial(mi: Sequence[int]) -> int: import math result = 1 for mi_i in mi: @@ -119,19 +119,23 @@ def mi_factorial(mi): return result -def mi_increment_axis(mi, axis, increment): +def mi_increment_axis( + mi: Sequence[int], axis: int, increment: int + ) -> Tuple[int, ...]: new_mi = list(mi) new_mi[axis] += increment return tuple(new_mi) -def mi_set_axis(mi, axis, value): +def mi_set_axis(mi: Sequence[int], axis: int, value: int) -> Tuple[int, ...]: new_mi = list(mi) new_mi[axis] = value return tuple(new_mi) -def mi_power(vector, mi, evaluate=True): +def mi_power( + vector: Sequence[T], mi: Sequence[int], + evaluate: bool = True) -> T: result = 1 for mi_i, vec_i in zip(mi, vector): if mi_i == 1: @@ -147,8 +151,8 @@ def add_to_sac(sac, expr): if sac is None: return expr - if isinstance(expr, (numbers.Number, sym.Number, int, - float, complex, sym.Symbol)): + from numbers import Number + if isinstance(expr, (Number, sym.Number, sym.Symbol)): return expr name = sac.assign_temp("temp", expr) @@ -280,7 +284,7 @@ def __init__(self, ctx: Any, target_kernels: List["Kernel"], source_kernels: List["Kernel"], strength_usage: Optional[List[int]] = None, - value_dtypes: Optional[List["np.dtype"]] = None, + value_dtypes: Optional[List["np.dtype[Any]"]] = None, name: Optional[str] = None, device: Optional[Any] = None) -> None: """ @@ -913,7 +917,11 @@ def _get_fft_backend(queue) -> FFTBackend: return FFTBackend.pyvkfft -def get_opencl_fft_app(queue, shape, dtype, inverse): +def get_opencl_fft_app( + queue: "cl.CommandQueue", + shape: Tuple[int, ...], + dtype: "np.dtype[Any]", + inverse: bool) -> Any: """Setup an object for out-of-place FFT on with given shape and dtype on given queue. """ @@ -932,7 +940,12 @@ def get_opencl_fft_app(queue, shape, dtype, inverse): raise RuntimeError(f"Unsupported FFT backend {backend}") -def run_opencl_fft(fft_app, queue, input_vec, inverse=False, wait_for=None): +def run_opencl_fft( + fft_app: Tuple[Any, FFTBackend], + queue: "cl.CommandQueue", + input_vec: Array, + inverse: bool = False, + wait_for: List["cl.Event"] = None) -> Tuple["cl.Event", Array]: """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. From 8db8f6f97e9158aa4f62a7bf1049f6aac02fd738 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 20:55:53 +0300 Subject: [PATCH 078/335] tools: reorder non-top level imports --- sumpy/tools.py | 66 +++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 25addd185..0a8a8557b 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -205,9 +205,8 @@ def build_matrix(op, dtype=None, shape=None): def vector_to_device(queue, vec): - from pytools.obj_array import obj_array_vectorize - from pyopencl.array import to_device + from pytools.obj_array import obj_array_vectorize def to_dev(ary): return to_device(queue, ary) @@ -449,12 +448,12 @@ def get_cached_optimized_kernel(self, **kwargs): @memoize_method def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: - from sumpy import (code_cache, CACHING_ENABLED, OPT_ENABLED, - NO_CACHE_KERNELS) + from sumpy import CACHING_ENABLED, NO_CACHE_KERNELS, OPT_ENABLED, code_cache if CACHING_ENABLED and not ( NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): import loopy.version + from sumpy.version import KERNEL_VERSION cache_key = ( self.get_cache_key() @@ -465,8 +464,7 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: try: result = code_cache[cache_key] - logger.debug("{}: kernel cache hit [key={}]".format( - self.name, cache_key)) + logger.debug("%s: kernel cache hit [key=%s]", self.name, cache_key) return result.executor(self.context) except KeyError: pass @@ -678,7 +676,8 @@ class ProfileGetter: def get_native_event(evt): - return evt if isinstance(evt, cl.Event) else evt.native_event + from pyopencl import Event + return evt if isinstance(evt, Event) else evt.native_event class AggregateProfilingEvent: @@ -719,9 +718,11 @@ def wait(self): def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, name=None): - from pymbolic.algorithm import find_factors from math import pi + from pymbolic import var + from pymbolic.algorithm import find_factors + sign = 1 if not inverse else -1 n = shape[-1] @@ -733,7 +734,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, nfft = n - broadcast_dims = tuple(pymbolic.var(f"j{d}") for d in range(len(shape) - 1)) + broadcast_dims = tuple(var(f"j{d}") for d in range(len(shape) - 1)) domains = [ "{[i]: 0<=i FFTBackend: - env_val = os.environ.get("SUMPY_FFT_BACKEND", None) +def _get_fft_backend(queue: "cl.CommandQueue") -> FFTBackend: + import os + + env_val = os.environ.get("SUMPY_FFT_BACKEND") if env_val: if env_val not in ["loopy", "pyvkfft"]: raise ValueError("Expected 'loopy' or 'pyvkfft' for SUMPY_FFT_BACKEND. " @@ -897,13 +902,17 @@ def _get_fft_backend(queue) -> FFTBackend: warnings.warn("VkFFT not found. FFT runs will be slower.", stacklevel=3) return FFTBackend.loopy - if queue.properties & cl.command_queue_properties.OUT_OF_ORDER_EXEC_MODE_ENABLE: + from pyopencl import command_queue_properties + + if queue.properties & command_queue_properties.OUT_OF_ORDER_EXEC_MODE_ENABLE: warnings.warn( "VkFFT does not support out of order queues yet. " "Falling back to slower implementation.", stacklevel=3) return FFTBackend.loopy import platform + import sys + if (sys.platform == "darwin" and platform.machine() == "x86_64" and queue.context.devices[0].platform.name @@ -960,6 +969,9 @@ def run_opencl_fft( if wait_for is None: wait_for = [] + import pyopencl as cl + import pyopencl.array as cla + start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) if app.inplace: From 068a7405df6c337e76bdc275e6d8235d99c48ab8 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 20:56:07 +0300 Subject: [PATCH 079/335] tools: remove deprecation guard --- sumpy/tools.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 0a8a8557b..d596f9d55 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1007,21 +1007,19 @@ def run_opencl_fft( "KernelCacheWrapper": ("KernelCacheMixin", 2023), } -if sys.version_info >= (3, 7): - def __getattr__(name): - replacement_and_obj = _depr_name_to_replacement_and_obj.get(name, None) - if replacement_and_obj is not None: - replacement, obj, year = replacement_and_obj - from warnings import warn - warn(f"'sumpy.tools.{name}' is deprecated. " - f"Use '{replacement}' instead. " - f"'sumpy.tools.{name}' will continue to work until {year}.", - DeprecationWarning, stacklevel=2) - return obj - else: - raise AttributeError(name) -else: - KernelCacheWrapper = KernelCacheMixin + +def __getattr__(name): + replacement_and_obj = _depr_name_to_replacement_and_obj.get(name, None) + if replacement_and_obj is not None: + replacement, obj, year = replacement_and_obj + from warnings import warn + warn(f"'sumpy.tools.{name}' is deprecated. " + f"Use '{replacement}' instead. " + f"'sumpy.tools.{name}' will continue to work until {year}.", + DeprecationWarning, stacklevel=2) + return obj + else: + raise AttributeError(name) # }}} From c26c54913e4a7251d4a483457eeb314ca100544f Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 21:07:26 +0300 Subject: [PATCH 080/335] tools: fix sphinx type annotation errors --- doc/conf.py | 4 ++-- sumpy/tools.py | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 2de72f532..617a4686e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -29,5 +29,5 @@ } nitpick_ignore_regex = [ - ["py:class", r"symengine\.(.+)"], # :cry: - ] + ["py:class", r"symengine\.(.+)"], # :cry: +] diff --git a/sumpy/tools.py b/sumpy/tools.py index d596f9d55..6b92c125d 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -33,15 +33,15 @@ import loopy as lp import numpy as np -from arraycontext import Array from pymbolic.mapper import WalkMapper -from pytools import T, memoize_method +from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import sumpy.symbolic as sym if TYPE_CHECKING: - import pyopencl as cl + import numpy + import pyopencl from sumpy.kernel import Kernel @@ -91,6 +91,7 @@ .. autofunction:: matvec_toeplitz_upper_triangular .. autoclass:: FFTBackend + :members: .. autofunction:: loopy_fft .. autofunction:: get_opencl_fft_app .. autofunction:: run_opencl_fft @@ -134,8 +135,8 @@ def mi_set_axis(mi: Sequence[int], axis: int, value: int) -> Tuple[int, ...]: def mi_power( - vector: Sequence[T], mi: Sequence[int], - evaluate: bool = True) -> T: + vector: Sequence[Any], mi: Sequence[int], + evaluate: bool = True) -> Any: result = 1 for mi_i, vec_i in zip(mi, vector): if mi_i == 1: @@ -283,7 +284,7 @@ def __init__(self, ctx: Any, target_kernels: List["Kernel"], source_kernels: List["Kernel"], strength_usage: Optional[List[int]] = None, - value_dtypes: Optional[List["np.dtype[Any]"]] = None, + value_dtypes: Optional[List["numpy.dtype[Any]"]] = None, name: Optional[str] = None, device: Optional[Any] = None) -> None: """ @@ -886,7 +887,7 @@ class FFTBackend(enum.Enum): loopy = 2 -def _get_fft_backend(queue: "cl.CommandQueue") -> FFTBackend: +def _get_fft_backend(queue: "pyopencl.CommandQueue") -> FFTBackend: import os env_val = os.environ.get("SUMPY_FFT_BACKEND") @@ -927,9 +928,9 @@ def _get_fft_backend(queue: "cl.CommandQueue") -> FFTBackend: def get_opencl_fft_app( - queue: "cl.CommandQueue", + queue: "pyopencl.CommandQueue", shape: Tuple[int, ...], - dtype: "np.dtype[Any]", + dtype: "numpy.dtype[Any]", inverse: bool) -> Any: """Setup an object for out-of-place FFT on with given shape and dtype on given queue. @@ -951,10 +952,10 @@ def get_opencl_fft_app( def run_opencl_fft( fft_app: Tuple[Any, FFTBackend], - queue: "cl.CommandQueue", - input_vec: Array, + queue: "pyopencl.CommandQueue", + input_vec: Any, inverse: bool = False, - wait_for: List["cl.Event"] = None) -> Tuple["cl.Event", Array]: + wait_for: List["pyopencl.Event"] = None) -> Tuple["pyopencl.Event", Any]: """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. From a80c54a855734024c6920b922a0b21f29f23eaad Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 2 Aug 2023 21:11:53 +0300 Subject: [PATCH 081/335] array_context: add to docs --- doc/conf.py | 8 +++++--- doc/misc.rst | 5 +++-- sumpy/array_context.py | 3 +++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 617a4686e..0780e3d3d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -18,14 +18,16 @@ intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), "numpy": ("https://numpy.org/doc/stable/", None), - "modepy": ("https://documen.tician.de/modepy/", None), + "sympy": ("https://docs.sympy.org/latest/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), "pyopencl": ("https://documen.tician.de/pyopencl/", None), + "pytools": ("https://documen.tician.de/pytools/", None), + "modepy": ("https://documen.tician.de/modepy/", None), "pymbolic": ("https://documen.tician.de/pymbolic/", None), "loopy": ("https://documen.tician.de/loopy/", None), "pytential": ("https://documen.tician.de/pytential/", None), "boxtree": ("https://documen.tician.de/boxtree/", None), - "sympy": ("https://docs.sympy.org/latest/", None), - "matplotlib": ("https://matplotlib.org/stable/", None), + "arraycontext": ("https://documen.tician.de/arraycontext/", None), } nitpick_ignore_regex = [ diff --git a/doc/misc.rst b/doc/misc.rst index ac1ea388b..7b4f427f8 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -1,12 +1,13 @@ Misc Tools ========== -.. automodule:: sumpy.tools - .. automodule:: sumpy.derivative_taker .. automodule:: sumpy.symbolic +.. automodule:: sumpy.tools + +.. automodule:: sumpy.array_context Installation ============ diff --git a/sumpy/array_context.py b/sumpy/array_context.py index 760f7d5d8..3c3288495 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -26,6 +26,9 @@ register_pytest_array_context_factory) __doc__ = """ +Array Context +------------- + .. autoclass:: PyOpenCLArrayContext """ From 9b324417e9f630472da88d92f438d1e31f87ac52 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 3 Aug 2023 15:04:31 +0300 Subject: [PATCH 082/335] examples: only send cl arrays to kernels --- examples/curve-pot.py | 51 +++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 023bd7e19..db2c667c7 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -91,7 +91,8 @@ def draw_pot_figure(aspect_ratio, knl_kwargs = {} vol_source_knl, vol_target_knl = process_kernel(knl, what_operator) - p2p = P2P(actx.context, source_kernels=(vol_source_knl,), + p2p = P2P(actx.context, + source_kernels=(vol_source_knl,), target_kernels=(vol_target_knl,), exclude_self=False, value_dtypes=np.complex128) @@ -157,35 +158,40 @@ def map_to_curve(t): lpot_kwargs = knl_kwargs.copy() if what_operator == "D": - volpot_kwargs["src_derivative_dir"] = native_curve.normal + volpot_kwargs["src_derivative_dir"] = actx.from_numpy(native_curve.normal) if what_operator_lpot == "D": - lpot_kwargs["src_derivative_dir"] = ovsmp_curve.normal + lpot_kwargs["src_derivative_dir"] = actx.from_numpy(ovsmp_curve.normal) if what_operator_lpot == "S'": - lpot_kwargs["tgt_derivative_dir"] = native_curve.normal + lpot_kwargs["tgt_derivative_dir"] = actx.from_numpy(native_curve.normal) # }}} + targets = actx.from_numpy(fp.points) + sources = actx.from_numpy(native_curve.pos) + ovsmp_sources = actx.from_numpy(ovsmp_curve.pos) + if 0: # {{{ build matrix from fourier import make_fourier_interp_matrix fim = make_fourier_interp_matrix(novsmp, nsrc) + from sumpy.tools import build_matrix from scipy.sparse.linalg import LinearOperator def apply_lpot(x): xovsmp = np.dot(fim, x) evt, (y,) = lpot(actx.queue, - native_curve.pos, - ovsmp_curve.pos, - centers, - [xovsmp * ovsmp_curve.speed * ovsmp_weights], - expansion_radii=np.ones(centers.shape[1]), + sources, + ovsmp_sources, + actx.from_numpy(centers), + [actx.from_numpy(xovsmp * ovsmp_curve.speed * ovsmp_weights)], + expansion_radii=actx.from_numpy(np.ones(centers.shape[1])), **lpot_kwargs) - return y + return actx.to_numpy(y) op = LinearOperator((nsrc, nsrc), apply_lpot) mat = build_matrix(op, dtype=np.complex128) @@ -200,19 +206,26 @@ def apply_lpot(x): mode_nr = 0 density = np.cos(mode_nr*2*np.pi*native_t).astype(np.complex128) - ovsmp_density = np.cos(mode_nr*2*np.pi*ovsmp_t).astype(np.complex128) + strength = actx.from_numpy(native_curve.speed * native_weights * density) + evt, (vol_pot,) = p2p(actx.queue, - fp.points, - native_curve.pos, - [native_curve.speed*native_weights*density], **volpot_kwargs) + targets, + sources, + [strength], **volpot_kwargs) + vol_pot = actx.to_numpy(vol_pot) + + ovsmp_density = np.cos(mode_nr*2*np.pi*ovsmp_t).astype(np.complex128) + ovsmp_strength = actx.from_numpy( + ovsmp_curve.speed * ovsmp_weights * ovsmp_density) evt, (curve_pot,) = lpot(actx.queue, - native_curve.pos, - ovsmp_curve.pos, - centers, - [ovsmp_density * ovsmp_curve.speed * ovsmp_weights], - expansion_radii=np.ones(centers.shape[1]), + sources, + ovsmp_sources, + actx.from_numpy(centers), + [ovsmp_strength], + expansion_radii=actx.from_numpy(np.ones(centers.shape[1])), **lpot_kwargs) + curve_pot = actx.to_numpy(curve_pot) # }}} From e7b455aa40dbc6a3965dca4add1f351c21b90585 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 3 Aug 2023 19:28:20 +0300 Subject: [PATCH 083/335] toys: only send cl arrays to kernels --- sumpy/toys.py | 96 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/sumpy/toys.py b/sumpy/toys.py index 9fa67cbc2..931e96e58 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -201,48 +201,59 @@ def get_l2l(self, from_order, to_order): # {{{ helpers def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): - source_boxes = np.array([0], dtype=np.int32) - box_source_starts = np.array([0], dtype=np.int32) - box_source_counts_nonchild = np.array( - [psource.points.shape[-1]], dtype=np.int32) - toy_ctx = psource.toy_ctx + queue = toy_ctx.queue + + source_boxes = cl.array.to_device( + queue, np.array([0], dtype=np.int32)) + box_source_starts = cl.array.to_device( + queue, np.array([0], dtype=np.int32)) + box_source_counts_nonchild = cl.array.to_device( + queue, np.array([psource.points.shape[-1]], dtype=np.int32)) + center = np.asarray(center) - centers = np.array(center, dtype=np.float64).reshape( - toy_ctx.kernel.dim, 1) + centers = cl.array.to_device( + queue, + np.array(center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) evt, (coeffs,) = p2e(toy_ctx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, centers=centers, - sources=psource.points, - strengths=(psource.weights,), + sources=cl.array.to_device(queue, psource.points), + strengths=(cl.array.to_device(queue, psource.weights),), rscale=rscale, nboxes=1, tgt_base_ibox=0, - #flags="print_hl_cl", out_host=True, **toy_ctx.extra_source_and_kernel_kwargs) - return expn_class(toy_ctx, center, rscale, order, coeffs[0], + return expn_class(toy_ctx, center, rscale, order, coeffs[0].get(queue), derived_from=psource, **expn_kwargs) def _e2p(psource, targets, e2p): - ntargets = targets.shape[-1] + toy_ctx = psource.toy_ctx + queue = toy_ctx.queue - boxes = np.array([0], dtype=np.int32) + ntargets = targets.shape[-1] + boxes = cl.array.to_device( + queue, np.array([0], dtype=np.int32)) + box_target_starts = cl.array.to_device( + queue, np.array([0], dtype=np.int32)) + box_target_counts_nonchild = cl.array.to_device( + queue, np.array([ntargets], dtype=np.int32)) - box_target_starts = np.array([0], dtype=np.int32) - box_target_counts_nonchild = np.array([ntargets], dtype=np.int32) + centers = cl.array.to_device( + queue, + np.array(psource.center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) - toy_ctx = psource.toy_ctx - centers = np.array(psource.center, dtype=np.float64).reshape( - toy_ctx.kernel.dim, 1) + from pytools.obj_array import make_obj_array + from sumpy.tools import vector_to_device - coeffs = np.array([psource.coeffs]) + coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) evt, (pot,) = e2p( toy_ctx.queue, src_expansions=coeffs, @@ -252,31 +263,38 @@ def _e2p(psource, targets, e2p): box_target_counts_nonchild=box_target_counts_nonchild, centers=centers, rscale=psource.rscale, - targets=targets, - #flags="print_hl_cl", - out_host=True, **toy_ctx.extra_kernel_kwargs) + targets=vector_to_device(queue, make_obj_array(targets)), + + out_host=True, + **toy_ctx.extra_kernel_kwargs) - return pot + return pot.get(queue) def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs): toy_ctx = psource.toy_ctx - - target_boxes = np.array([1], dtype=np.int32) - src_box_starts = np.array([0, 1], dtype=np.int32) - src_box_lists = np.array([0], dtype=np.int32) - - centers = (np.array( + queue = toy_ctx.queue + + target_boxes = cl.array.to_device( + queue, np.array([1], dtype=np.int32)) + src_box_starts = cl.array.to_device( + queue, np.array([0, 1], dtype=np.int32)) + src_box_lists = cl.array.to_device( + queue, np.array([0], dtype=np.int32)) + + centers = cl.array.to_device( + queue, + np.array( [ # box 0: source psource.center, # box 1: target to_center, - ], - dtype=np.float64)).T.copy() - - coeffs = np.array([psource.coeffs]) + ], + dtype=np.float64).T.copy() + ) + coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) evt, (to_coeffs,) = e2e( toy_ctx.queue, @@ -294,10 +312,10 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs): src_rscale=psource.rscale, tgt_rscale=to_rscale, - #flags="print_hl_cl", out_host=True, **toy_ctx.extra_kernel_kwargs) - return expn_class(toy_ctx, to_center, to_rscale, to_order, to_coeffs[1], + return expn_class( + toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), derived_from=psource, **expn_kwargs) # }}} @@ -443,12 +461,16 @@ def __init__(self, self._center = center def eval(self, targets: np.ndarray) -> np.ndarray: + queue = self.toy_ctx.queue evt, (potential,) = self.toy_ctx.get_p2p()( - self.toy_ctx.queue, targets, self.points, [self.weights], + queue, + cl.array.to_device(queue, targets), + cl.array.to_device(queue, self.points), + [cl.array.to_device(queue, self.weights)], out_host=True, **self.toy_ctx.extra_source_and_kernel_kwargs) - return potential + return potential.get(queue) @property def center(self): From d1b10c7fc2041b60e8ddb6c19a854cf65e0747e4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 4 Aug 2023 14:58:53 +0300 Subject: [PATCH 084/335] tests: only send cl arrays to kernels --- test/test_fmm.py | 21 +++++--- test/test_kernels.py | 117 +++++++++++++++++++++++++------------------ test/test_qbx.py | 33 ++++++------ 3 files changed, 100 insertions(+), 71 deletions(-) diff --git a/test/test_fmm.py b/test/test_fmm.py index d00b5b456..cf0c6a23b 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -62,9 +62,13 @@ # {{{ test_sumpy_fmm -@pytest.mark.parametrize("use_translation_classes, use_fft, fft_backend", - [(False, False, None), (True, False, None), (True, True, "loopy"), - (True, True, "pyvkfft")]) +@pytest.mark.parametrize( + ("use_translation_classes", "use_fft", "fft_backend"), [ + (False, False, None), + (True, False, None), + (True, True, "loopy"), + (True, True, "pyvkfft"), + ]) @pytest.mark.parametrize( ("knl", "local_expn_class", "mpole_expn_class", "order_varies_with_level"), [ @@ -92,6 +96,9 @@ def test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, order_varies_with_level, use_translation_classes, use_fft, fft_backend, visualize=False): + if fft_backend == "pyvkfft": + pytest.importorskip("pyvkfft") + if visualize: logging.basicConfig(level=logging.INFO) @@ -399,7 +406,7 @@ def test_unified_single_and_double(actx_factory, visualize=False): strength_usages = [[0], [1], [0, 1]] alpha = np.linspace(0, 2*np.pi, nsources, np.float64) - dir_vec = np.vstack([np.cos(alpha), np.sin(alpha)]) + dir_vec = actx.from_numpy(np.vstack([np.cos(alpha), np.sin(alpha)])) results = [] for source_kernels, strength_usage in zip(source_kernel_vecs, strength_usages): @@ -528,7 +535,7 @@ def test_sumpy_fmm_exclude_self(actx_factory, visualize=False): rng = np.random.default_rng(44) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) - target_to_source = np.arange(tree.ntargets, dtype=np.int32) + target_to_source = actx.from_numpy(np.arange(tree.ntargets, dtype=np.int32)) self_extra_kwargs = {"target_to_source": target_to_source} target_kernels = [knl] @@ -597,7 +604,7 @@ def test_sumpy_axis_source_derivative(actx_factory, visualize=False): rng = np.random.default_rng(12) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) - target_to_source = np.arange(tree.ntargets, dtype=np.int32) + target_to_source = actx.from_numpy(np.arange(tree.ntargets, dtype=np.int32)) self_extra_kwargs = {"target_to_source": target_to_source} from sumpy.kernel import AxisTargetDerivative, AxisSourceDerivative @@ -665,7 +672,7 @@ def test_sumpy_target_point_multiplier(actx_factory, deriv_axes, visualize=False rng = np.random.default_rng(12) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) - target_to_source = np.arange(tree.ntargets, dtype=np.int32) + target_to_source = actx.from_numpy(np.arange(tree.ntargets, dtype=np.int32)) self_extra_kwargs = {"target_to_source": target_to_source} from sumpy.kernel import TargetPointMultiplier, AxisTargetDerivative diff --git a/test/test_kernels.py b/test/test_kernels.py index bf03f00d4..018a0f0f6 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -26,6 +26,7 @@ import numpy as np import numpy.linalg as la +from pytools.obj_array import make_obj_array from pytools.convergence import PConvergenceVerifier from arraycontext import pytest_generate_tests_for_array_contexts from sumpy.array_context import ( # noqa: F401 @@ -76,20 +77,23 @@ def test_p2p(actx_factory, exclude_self): rng = np.random.default_rng(42) targets = rng.random(size=(dimensions, n)) sources = targets if exclude_self else rng.random(size=(dimensions, n)) - strengths = np.ones(n, dtype=np.float64) extra_kwargs = {} if exclude_self: - extra_kwargs["target_to_source"] = np.arange(n, dtype=np.int32) + extra_kwargs["target_to_source"] = ( + actx.from_numpy(np.arange(n, dtype=np.int32))) evt, (potential, x_derivative) = knl( - actx.queue, targets, sources, [strengths], + actx.queue, + actx.from_numpy(targets), + actx.from_numpy(sources), + [actx.from_numpy(strengths)], out_host=True, **extra_kwargs) + potential = actx.to_numpy(potential) potential_ref = np.empty_like(potential) - targets = targets.T sources = sources.T for itarg in range(n): @@ -146,21 +150,22 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): rng = np.random.default_rng(14) center = np.array([2, 1, 0][:knl.dim], np.float64) - sources = ( + sources = actx.from_numpy( 0.7 * (-0.5 + rng.random(size=(knl.dim, nsources), dtype=np.float64)) + center[:, np.newaxis]) strengths = [ - np.ones(nsources, dtype=np.float64) * (1/nsources), - np.ones(nsources, dtype=np.float64) * (2/nsources) + actx.from_numpy(np.ones(nsources, dtype=np.float64) * (1/nsources)), + actx.from_numpy(np.ones(nsources, dtype=np.float64) * (2/nsources)) ] - source_boxes = np.array([0], dtype=np.int32) - box_source_starts = np.array([0], dtype=np.int32) - box_source_counts_nonchild = np.array([nsources], dtype=np.int32) + source_boxes = actx.from_numpy(np.array([0], dtype=np.int32)) + box_source_starts = actx.from_numpy(np.array([0], dtype=np.int32)) + box_source_counts_nonchild = ( + actx.from_numpy(np.array([nsources], dtype=np.int32))) alpha = np.linspace(0, 2*np.pi, nsources, np.float64) - dir_vec = np.vstack([np.cos(alpha), np.sin(alpha)]) + dir_vec = actx.from_numpy(np.vstack([np.cos(alpha), np.sin(alpha)])) from sumpy.expansion.local import LocalExpansionBase if issubclass(expn_class, LocalExpansionBase): @@ -170,6 +175,7 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): centers = (np.array([0.0, 0.0, 0.0][:knl.dim], dtype=np.float64).reshape(knl.dim, 1) + center[:, np.newaxis]) + centers = actx.from_numpy(centers) rscale = 0.5 # pick something non-1 @@ -193,7 +199,7 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): dir_vec=dir_vec, **extra_kwargs) - actual_result = mpoles + actual_result = actx.to_numpy(mpoles) # apply p2e separately expected_result = np.zeros_like(actual_result) @@ -217,6 +223,8 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): rscale=rscale, out_host=True, **extra_source_kwargs) + mpoles = actx.to_numpy(mpoles) + expected_result += mpoles norm = la.norm(actual_result - expected_result)/la.norm(expected_result) @@ -302,21 +310,22 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative rng = np.random.default_rng(19) center = np.array([2, 1, 0][:knl.dim], np.float64) - sources = ( + sources = actx.from_numpy( 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + center[:, np.newaxis]) - strengths = np.ones(nsources, dtype=np.float64) / nsources + strengths = actx.from_numpy(np.ones(nsources, dtype=np.float64) / nsources) - source_boxes = np.array([0], dtype=np.int32) - box_source_starts = np.array([0], dtype=np.int32) - box_source_counts_nonchild = np.array([nsources], dtype=np.int32) + source_boxes = actx.from_numpy(np.array([0], dtype=np.int32)) + box_source_starts = actx.from_numpy(np.array([0], dtype=np.int32)) + box_source_counts_nonchild = ( + actx.from_numpy(np.array([nsources], dtype=np.int32))) extra_source_kwargs = extra_kwargs.copy() if isinstance(knl, DirectionalSourceDerivative): alpha = np.linspace(0, 2*np.pi, nsources, np.float64) dir_vec = np.vstack([np.cos(alpha), np.sin(alpha)]) - extra_source_kwargs["dir_vec"] = dir_vec + extra_source_kwargs["dir_vec"] = actx.from_numpy(dir_vec) from sumpy.visualization import FieldPlotter @@ -332,7 +341,8 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative dtype=np.float64).reshape(knl.dim, 1) + center[:, np.newaxis]) - targets = fp.points + centers = actx.from_numpy(centers) + targets = actx.from_numpy(make_obj_array(fp.points)) rscale = 0.5 # pick something non-1 @@ -355,10 +365,11 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative # {{{ apply e2p - ntargets = targets.shape[-1] + ntargets = fp.points.shape[-1] - box_target_starts = np.array([0], dtype=np.int32) - box_target_counts_nonchild = np.array([ntargets], dtype=np.int32) + box_target_starts = actx.from_numpy(np.array([0], dtype=np.int32)) + box_target_counts_nonchild = ( + actx.from_numpy(np.array([ntargets], dtype=np.int32))) evt, (pot, grad_x, ) = e2p( actx.queue, @@ -372,6 +383,8 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative rscale=rscale, out_host=True, **extra_kwargs) + pot = actx.to_numpy(pot) + grad_x = actx.to_numpy(grad_x) # }}} @@ -382,6 +395,8 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative targets, sources, (strengths,), out_host=True, **extra_source_kwargs) + pot_direct = actx.to_numpy(pot_direct) + grad_x_direct = actx.to_numpy(grad_x_direct) err_pot = la.norm((pot - pot_direct)/res**2) err_grad_x = la.norm((grad_x - grad_x_direct)/res**2) @@ -501,10 +516,11 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, # Just to make sure things also work away from the origin rng = np.random.default_rng(18) origin = np.array([2, 1, 0][:knl.dim], np.float64) - sources = ( + sources = actx.from_numpy( 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + origin[:, np.newaxis]) - strengths = np.ones(nsources, dtype=np.float64) * (1/nsources) + strengths = actx.from_numpy( + np.ones(nsources, dtype=np.float64) * (1/nsources)) pconv_verifier_p2m2p = PConvergenceVerifier() pconv_verifier_p2m2m2p = PConvergenceVerifier() @@ -514,8 +530,9 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, from sumpy.visualization import FieldPlotter eval_offset = np.array([5.5, 0.0, 0][:knl.dim]) + fp = FieldPlotter(eval_offset + origin, extent=0.3, npoints=res) - centers = (np.array( + centers = actx.from_numpy((np.array( [ # box 0: particles, first mpole here [0, 0, 0][:knl.dim], @@ -529,7 +546,7 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, # box 3: second local and eval here eval_offset ], - dtype=np.float64) + origin).T.copy() + dtype=np.float64) + origin).T.copy()) del eval_offset @@ -541,13 +558,15 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, nboxes = centers.shape[-1] def eval_at(e2p, source_box_nr, rscale): - e2p_target_boxes = np.array([source_box_nr], dtype=np.int32) + e2p_target_boxes = actx.from_numpy( + np.array([source_box_nr], dtype=np.int32)) # These are indexed by global box numbers. - e2p_box_target_starts = np.array([0, 0, 0, 0], dtype=np.int32) - e2p_box_target_counts_nonchild = np.array([0, 0, 0, 0], - dtype=np.int32) - e2p_box_target_counts_nonchild[source_box_nr] = ntargets + e2p_box_target_starts = actx.from_numpy( + np.array([0, 0, 0, 0], dtype=np.int32)) + e2p_box_target_counts_nonchild = actx.from_numpy( + np.array([0, 0, 0, 0], dtype=np.int32)) + e2p_box_target_counts_nonchild[source_box_nr] = fp.points.shape[-1] evt, (pot,) = e2p( actx.queue, @@ -565,6 +584,7 @@ def eval_at(e2p, source_box_nr, rscale): out_host=True, **extra_kwargs ) + pot = actx.to_numpy(pot) return pot @@ -584,8 +604,7 @@ def eval_at(e2p, source_box_nr, rscale): l2p = E2PFromSingleBox(actx.context, l_expn, target_kernels) p2p = P2P(actx.context, target_kernels, exclude_self=False) - fp = FieldPlotter(centers[:, -1], extent=0.3, npoints=res) - targets = fp.points + targets = actx.from_numpy(make_obj_array(fp.points)) # {{{ compute (direct) reference solution @@ -593,6 +612,7 @@ def eval_at(e2p, source_box_nr, rscale): actx.queue, targets, sources, (strengths,), out_host=True, **extra_kwargs) + pot_direct = actx.to_numpy(pot_direct) # }}} @@ -603,12 +623,13 @@ def eval_at(e2p, source_box_nr, rscale): # {{{ apply P2M - p2m_source_boxes = np.array([0], dtype=np.int32) + p2m_source_boxes = actx.from_numpy(np.array([0], dtype=np.int32)) # These are indexed by global box numbers. - p2m_box_source_starts = np.array([0, 0, 0, 0], dtype=np.int32) - p2m_box_source_counts_nonchild = np.array([nsources, 0, 0, 0], - dtype=np.int32) + p2m_box_source_starts = actx.from_numpy( + np.array([0, 0, 0, 0], dtype=np.int32)) + p2m_box_source_counts_nonchild = actx.from_numpy( + np.array([nsources, 0, 0, 0], dtype=np.int32)) evt, (mpoles,) = p2m(actx.queue, source_boxes=p2m_source_boxes, @@ -626,20 +647,18 @@ def eval_at(e2p, source_box_nr, rscale): # }}} - ntargets = targets.shape[-1] - pot = eval_at(m2p, 0, m1_rscale) - err = la.norm((pot - pot_direct)/res**2) + err = la.norm((pot - pot_direct) / res**2) err = err / (la.norm(pot_direct) / res**2) pconv_verifier_p2m2p.add_data_point(order, err) # {{{ apply M2M - m2m_target_boxes = np.array([1], dtype=np.int32) - m2m_src_box_starts = np.array([0, 1], dtype=np.int32) - m2m_src_box_lists = np.array([0], dtype=np.int32) + m2m_target_boxes = actx.from_numpy(np.array([1], dtype=np.int32)) + m2m_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) + m2m_src_box_lists = actx.from_numpy(np.array([0], dtype=np.int32)) evt, (mpoles,) = m2m(actx.queue, src_expansions=mpoles, @@ -669,9 +688,9 @@ def eval_at(e2p, source_box_nr, rscale): # {{{ apply M2L - m2l_target_boxes = np.array([2], dtype=np.int32) - m2l_src_box_starts = np.array([0, 1], dtype=np.int32) - m2l_src_box_lists = np.array([1], dtype=np.int32) + m2l_target_boxes = actx.from_numpy(np.array([2], dtype=np.int32)) + m2l_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) + m2l_src_box_lists = actx.from_numpy(np.array([1], dtype=np.int32)) evt, (mpoles,) = m2l(actx.queue, src_expansions=mpoles, @@ -700,9 +719,9 @@ def eval_at(e2p, source_box_nr, rscale): # {{{ apply L2L - l2l_target_boxes = np.array([3], dtype=np.int32) - l2l_src_box_starts = np.array([0, 1], dtype=np.int32) - l2l_src_box_lists = np.array([2], dtype=np.int32) + l2l_target_boxes = actx.from_numpy(np.array([3], dtype=np.int32)) + l2l_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) + l2l_src_box_lists = actx.from_numpy(np.array([2], dtype=np.int32)) evt, (mpoles,) = l2l(actx.queue, src_expansions=mpoles, diff --git a/test/test_qbx.py b/test/test_qbx.py index c2b61c3b5..3ad439b9e 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -86,19 +86,19 @@ def test_direct_qbx_vs_eigval(actx_factory, expn_class, visualize=False): h = 2 * np.pi / n - targets = unit_circle - sources = unit_circle + targets = actx.from_numpy(unit_circle) + sources = actx.from_numpy(unit_circle) radius = 7 * h - centers = unit_circle * (1 - radius) + centers = actx.from_numpy((1 - radius) * unit_circle) + expansion_radii = actx.from_numpy(radius * np.ones(n)) + strengths = (actx.from_numpy(sigma * h),) - expansion_radii = np.ones(n) * radius - - strengths = (sigma * h,) evt, (result_qbx,) = lpot( actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) + result_qbx = actx.to_numpy(result_qbx) eocrec.add_data_point(h, np.max(np.abs(result_ref - result_qbx))) @@ -157,23 +157,26 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( h = 2 * np.pi / n - targets = unit_circle - sources = unit_circle + targets = actx.from_numpy(unit_circle) + sources = actx.from_numpy(unit_circle) radius = 7 * h - centers = unit_circle * (1 - radius) - - expansion_radii = np.ones(n) * radius - - strengths = (sigma * h,) + centers = actx.from_numpy((1 - radius) * unit_circle) + expansion_radii = actx.from_numpy(radius * np.ones(n)) + strengths = (actx.from_numpy(sigma * h),) - evt, (result_qbx_dx,) = lpot_dx(actx.queue, + evt, (result_qbx_dx,) = lpot_dx( + actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) - evt, (result_qbx_dy,) = lpot_dy(actx.queue, + evt, (result_qbx_dy,) = lpot_dy( + actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) + result_qbx_dx = actx.to_numpy(result_qbx_dx) + result_qbx_dy = actx.to_numpy(result_qbx_dy) + normals = unit_circle result_qbx = normals[0] * result_qbx_dx + normals[1] * result_qbx_dy From 67c35f2a7f420421dbe97e32b98abcfe57636926 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 4 Aug 2023 15:00:49 +0300 Subject: [PATCH 085/335] do not use out_host=True --- sumpy/toys.py | 8 +------- test/test_kernels.py | 31 ++++++++++--------------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/sumpy/toys.py b/sumpy/toys.py index 931e96e58..a794ff152 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -226,8 +226,6 @@ def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): rscale=rscale, nboxes=1, tgt_base_ibox=0, - - out_host=True, **toy_ctx.extra_source_and_kernel_kwargs) return expn_class(toy_ctx, center, rscale, order, coeffs[0].get(queue), @@ -264,8 +262,6 @@ def _e2p(psource, targets, e2p): centers=centers, rscale=psource.rscale, targets=vector_to_device(queue, make_obj_array(targets)), - - out_host=True, **toy_ctx.extra_kernel_kwargs) return pot.get(queue) @@ -311,8 +307,7 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs): src_rscale=psource.rscale, tgt_rscale=to_rscale, - - out_host=True, **toy_ctx.extra_kernel_kwargs) + **toy_ctx.extra_kernel_kwargs) return expn_class( toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), @@ -467,7 +462,6 @@ def eval(self, targets: np.ndarray) -> np.ndarray: cl.array.to_device(queue, targets), cl.array.to_device(queue, self.points), [cl.array.to_device(queue, self.weights)], - out_host=True, **self.toy_ctx.extra_source_and_kernel_kwargs) return potential.get(queue) diff --git a/test/test_kernels.py b/test/test_kernels.py index 018a0f0f6..2ddbd9c5f 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -90,7 +90,7 @@ def test_p2p(actx_factory, exclude_self): actx.from_numpy(targets), actx.from_numpy(sources), [actx.from_numpy(strengths)], - out_host=True, **extra_kwargs) + **extra_kwargs) potential = actx.to_numpy(potential) potential_ref = np.empty_like(potential) @@ -194,8 +194,6 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): nboxes=1, tgt_base_ibox=0, rscale=rscale, - - out_host=True, dir_vec=dir_vec, **extra_kwargs) @@ -221,8 +219,7 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): nboxes=1, tgt_base_ibox=0, rscale=rscale, - - out_host=True, **extra_source_kwargs) + **extra_source_kwargs) mpoles = actx.to_numpy(mpoles) expected_result += mpoles @@ -358,8 +355,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative nboxes=1, tgt_base_ibox=0, rscale=rscale, - - out_host=True, **extra_source_kwargs) + **extra_source_kwargs) # }}} @@ -381,8 +377,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative centers=centers, targets=targets, rscale=rscale, - - out_host=True, **extra_kwargs) + **extra_kwargs) pot = actx.to_numpy(pot) grad_x = actx.to_numpy(grad_x) @@ -393,7 +388,6 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative evt, (pot_direct, grad_x_direct, ) = p2p( actx.queue, targets, sources, (strengths,), - out_host=True, **extra_source_kwargs) pot_direct = actx.to_numpy(pot_direct) grad_x_direct = actx.to_numpy(grad_x_direct) @@ -581,8 +575,7 @@ def eval_at(e2p, source_box_nr, rscale): targets=targets, rscale=rscale, - - out_host=True, **extra_kwargs + **extra_kwargs ) pot = actx.to_numpy(pot) @@ -611,7 +604,7 @@ def eval_at(e2p, source_box_nr, rscale): evt, (pot_direct,) = p2p( actx.queue, targets, sources, (strengths,), - out_host=True, **extra_kwargs) + **extra_kwargs) pot_direct = actx.to_numpy(pot_direct) # }}} @@ -642,8 +635,7 @@ def eval_at(e2p, source_box_nr, rscale): rscale=m1_rscale, tgt_base_ibox=0, - - out_host=True, **extra_kwargs) + **extra_kwargs) # }}} @@ -674,8 +666,7 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=m1_rscale, tgt_rscale=m2_rscale, - - out_host=True, **extra_kwargs) + **extra_kwargs) # }}} @@ -705,8 +696,7 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=m2_rscale, tgt_rscale=l1_rscale, - - out_host=True, **extra_kwargs) + **extra_kwargs) # }}} @@ -736,8 +726,7 @@ def eval_at(e2p, source_box_nr, rscale): src_rscale=l1_rscale, tgt_rscale=l2_rscale, - - out_host=True, **extra_kwargs) + **extra_kwargs) # }}} From e1048b0a4c0c8512d0765e4eef09963dcc77ab0f Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 9 Sep 2023 16:21:45 -0500 Subject: [PATCH 086/335] register_optimization_preambles for all kernels --- sumpy/e2e.py | 7 +++++++ sumpy/e2p.py | 4 ++++ sumpy/p2e.py | 2 ++ sumpy/p2p.py | 5 +++-- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 3dcf27272..0e218024c 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -29,6 +29,7 @@ from loopy.version import MOST_RECENT_LANGUAGE_VERSION from sumpy.tools import KernelCacheMixin, to_complex_dtype +from sumpy.codegen import register_optimization_preambles from pytools import memoize_method import logging @@ -145,6 +146,7 @@ def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") + knl = register_optimization_preambles(knl, self.device) return knl @@ -279,6 +281,7 @@ def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") + knl = register_optimization_preambles(knl, self.device) return knl @@ -518,6 +521,7 @@ def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) knl = self.tgt_expansion.m2l_translation.optimize_loopy_kernel( knl, self.tgt_expansion, self.src_expansion) + knl = register_optimization_preambles(knl, self.device) return knl @@ -627,6 +631,7 @@ def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) knl = lp.tag_inames(knl, "idim*:unr") knl = lp.tag_inames(knl, {"itr_class": "g.0"}) + knl = register_optimization_preambles(knl, self.device) return knl @@ -732,6 +737,7 @@ def get_optimized_kernel(self, result_dtype): _, optimizations = self.get_inner_knl_and_optimizations(result_dtype) for optimization in optimizations: knl = optimization(knl) + knl = register_optimization_preambles(knl, self.device) return knl def __call__(self, queue, **kwargs): @@ -831,6 +837,7 @@ def get_optimized_kernel(self, result_dtype): for optimization in optimizations: knl = optimization(knl) knl = lp.add_inames_for_unused_hw_axes(knl) + knl = register_optimization_preambles(knl, self.device) return knl def __call__(self, queue, **kwargs): diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 0ec1c48b5..55af69b3a 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -26,6 +26,7 @@ import loopy as lp from sumpy.tools import KernelCacheMixin, gather_loopy_arguments +from sumpy.codegen import register_optimization_preambles from loopy.version import MOST_RECENT_LANGUAGE_VERSION @@ -198,6 +199,7 @@ def get_optimized_kernel(self): knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + knl = register_optimization_preambles(knl, self.device) return knl @@ -324,6 +326,8 @@ def get_optimized_kernel(self): knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + knl = register_optimization_preambles(knl, self.device) + return knl def __call__(self, queue, **kwargs): diff --git a/sumpy/p2e.py b/sumpy/p2e.py index fe52f6b93..acc7e7269 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -25,6 +25,7 @@ from loopy.version import MOST_RECENT_LANGUAGE_VERSION from sumpy.tools import KernelCacheMixin, KernelComputation +from sumpy.codegen import register_optimization_preambles import logging logger = logging.getLogger(__name__) @@ -118,6 +119,7 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + knl = register_optimization_preambles(knl, self.device) return knl def __call__(self, queue, **kwargs): diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 0b986c7d3..9c4302d62 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -29,6 +29,7 @@ from sumpy.tools import ( KernelComputation, KernelCacheMixin, is_obj_array_like) +from sumpy.codegen import register_optimization_preambles __doc__ = """ @@ -190,7 +191,6 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") - from sumpy.codegen import register_optimization_preambles knl = register_optimization_preambles(knl, self.device) return knl @@ -411,6 +411,8 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + knl = register_optimization_preambles(knl, self.device) + return knl def __call__(self, queue, targets, sources, tgtindices, srcindices, **kwargs): @@ -717,7 +719,6 @@ def get_optimized_kernel(self, max_nsources_in_one_box, knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") - from sumpy.codegen import register_optimization_preambles knl = register_optimization_preambles(knl, self.device) return knl From 17f372091f22ae8571a6108d1fa2b62fc9627c44 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 17 Sep 2023 08:02:38 -0500 Subject: [PATCH 087/335] Drop Benchmarks from Gitlab CI --- .gitlab-ci.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2206c2222..85b7eb079 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -140,19 +140,6 @@ Pylint: except: - tags -Benchmarks: - stage: test - script: | - PROJECT=sumpy - PYOPENCL_TEST=portable:pthread - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-benchmark-py-project.sh - . ./build-and-benchmark-py-project.sh - tags: - - linux - - benchmark - except: - - tags - Downstream: parallel: matrix: From d6f4a83b4421a3a2470a7fdb81f83047bbf86df2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 Sep 2023 16:11:06 +0300 Subject: [PATCH 088/335] pass all arguments to CSE constructor --- sumpy/codegen.py | 3 ++- sumpy/kernel.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 3b19fcb9e..c4857fca0 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -290,7 +290,8 @@ def map_call(self, expr, rec_self=None, *args): 2**(-k)*sum( (-1)**idx*int(sym.binomial(k, idx)) * function(i, arg) for idx, i in enumerate(range(order-k, order+k+1, 2))), - f"d{n_derivs}_{function.name}_{order_str}") + f"d{n_derivs}_{function.name}_{order_str}", + scope=prim.cse_scope.EVALUATION) else: return CSECachingIdentityMapper.map_call( rec_self or self, expr, rec_self, *args) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 6c50350b3..760278093 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1077,11 +1077,12 @@ def __init__(self, vec_name, additional_indices): self.additional_indices = additional_indices def map_subscript(self, expr): - from pymbolic.primitives import CommonSubexpression + from pymbolic.primitives import CommonSubexpression, cse_scope if expr.aggregate.name == self.vec_name \ and isinstance(expr.index, int): - return CommonSubexpression(expr.aggregate.index( - (expr.index,) + self.additional_indices)) + return CommonSubexpression( + expr.aggregate.index((expr.index,) + self.additional_indices), + prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr) From 9d1d61160635a3c4eb99335704d4c04b88182e78 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 9 Oct 2023 11:46:27 -0500 Subject: [PATCH 089/335] Fix enqueue_marker for NVIDIA CUDA (#173) * Fix enqueue_marker for NVIDIA CUDA * update comment * check for same queue * Fix bad merge --- sumpy/tools.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 6b92c125d..13acbbab5 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -973,7 +973,17 @@ def run_opencl_fft( import pyopencl as cl import pyopencl.array as cla - start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) + if queue.device.platform.name == "NVIDIA CUDA": + # NVIDIA OpenCL gives wrong event profile values with wait_for + # Not passing wait_for will wait for all events queued before + # and therefore correctness is preserved if it's the same queue + for evt in wait_for: + if not evt.command_queue != queue: + raise RuntimeError( + "Different queues not supported with NVIDIA CUDA") + start_evt = cl.enqueue_marker(queue) + else: + start_evt = cl.enqueue_marker(queue, wait_for=wait_for[:]) if app.inplace: raise RuntimeError("inplace fft is not supported") @@ -991,7 +1001,11 @@ def run_opencl_fft( meth(app.app, int(input_vec.data.int_ptr), int(output_vec.data.int_ptr), int(queue.int_ptr)) - end_evt = cl.enqueue_marker(queue, wait_for=[start_evt]) + if queue.device.platform.name == "NVIDIA CUDA": + end_evt = cl.enqueue_marker(queue) + else: + end_evt = cl.enqueue_marker(queue, wait_for=[start_evt]) + output_vec.add_event(end_evt) return (MarkerBasedProfilingEvent(end_event=end_evt, start_event=start_evt), From 2f4af16f0edc765124b8a6308ed29ff4676c3a5e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 11 Oct 2023 10:10:31 -0500 Subject: [PATCH 090/335] Use sumpy.toys in test_translations (#191) * Use sumpy.toys in test_translations * flake8 fixes --- test/test_kernels.py | 221 ++++++++----------------------------------- 1 file changed, 40 insertions(+), 181 deletions(-) diff --git a/test/test_kernels.py b/test/test_kernels.py index 2ddbd9c5f..d1768fd7c 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -22,6 +22,7 @@ import pytest import sys +from functools import partial import numpy as np import numpy.linalg as la @@ -51,6 +52,8 @@ AxisTargetDerivative, DirectionalSourceDerivative) +import sumpy.toys as t + import logging logger = logging.getLogger(__name__) @@ -499,8 +502,6 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, res = 20 nsources = 15 - target_kernels = [knl] - extra_kwargs = {} if isinstance(knl, HelmholtzKernel): extra_kwargs["k"] = 0.05 @@ -510,11 +511,10 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, # Just to make sure things also work away from the origin rng = np.random.default_rng(18) origin = np.array([2, 1, 0][:knl.dim], np.float64) - sources = actx.from_numpy( + sources = ( 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + origin[:, np.newaxis]) - strengths = actx.from_numpy( - np.ones(nsources, dtype=np.float64) * (1/nsources)) + strengths = np.ones(nsources, dtype=np.float64) * (1/nsources) pconv_verifier_p2m2p = PConvergenceVerifier() pconv_verifier_p2m2m2p = PConvergenceVerifier() @@ -525,8 +525,9 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, eval_offset = np.array([5.5, 0.0, 0][:knl.dim]) fp = FieldPlotter(eval_offset + origin, extent=0.3, npoints=res) + targets = fp.points - centers = actx.from_numpy((np.array( + centers = (np.array( [ # box 0: particles, first mpole here [0, 0, 0][:knl.dim], @@ -540,7 +541,7 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, # box 3: second local and eval here eval_offset ], - dtype=np.float64) + origin).T.copy()) + dtype=np.float64) + origin).T.copy() del eval_offset @@ -549,192 +550,50 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, else: orders = [3, 4, 5] - nboxes = centers.shape[-1] - - def eval_at(e2p, source_box_nr, rscale): - e2p_target_boxes = actx.from_numpy( - np.array([source_box_nr], dtype=np.int32)) - - # These are indexed by global box numbers. - e2p_box_target_starts = actx.from_numpy( - np.array([0, 0, 0, 0], dtype=np.int32)) - e2p_box_target_counts_nonchild = actx.from_numpy( - np.array([0, 0, 0, 0], dtype=np.int32)) - e2p_box_target_counts_nonchild[source_box_nr] = fp.points.shape[-1] - - evt, (pot,) = e2p( - actx.queue, - - src_expansions=mpoles, - src_base_ibox=0, - - target_boxes=e2p_target_boxes, - box_target_starts=e2p_box_target_starts, - box_target_counts_nonchild=e2p_box_target_counts_nonchild, - centers=centers, - targets=targets, - - rscale=rscale, - **extra_kwargs - ) - pot = actx.to_numpy(pot) - - return pot - m2l_factory = NonFFTM2LTranslationClassFactory() m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() - for order in orders: - m_expn = mpole_expn_class(knl, order=order) - l_expn = local_expn_class(knl, order=order, m2l_translation=m2l_translation) - - from sumpy import P2EFromSingleBox, E2PFromSingleBox, P2P, E2EFromCSR - p2m = P2EFromSingleBox(actx.context, m_expn) - m2m = E2EFromCSR(actx.context, m_expn, m_expn) - m2p = E2PFromSingleBox(actx.context, m_expn, target_kernels) - m2l = E2EFromCSR(actx.context, m_expn, l_expn) - l2l = E2EFromCSR(actx.context, l_expn, l_expn) - l2p = E2PFromSingleBox(actx.context, l_expn, target_kernels) - p2p = P2P(actx.context, target_kernels, exclude_self=False) - - targets = actx.from_numpy(make_obj_array(fp.points)) - - # {{{ compute (direct) reference solution - - evt, (pot_direct,) = p2p( - actx.queue, - targets, sources, (strengths,), - **extra_kwargs) - pot_direct = actx.to_numpy(pot_direct) - - # }}} - - m1_rscale = 0.5 - m2_rscale = 0.25 - l1_rscale = 0.5 - l2_rscale = 0.25 - - # {{{ apply P2M - - p2m_source_boxes = actx.from_numpy(np.array([0], dtype=np.int32)) + toy_ctx = t.ToyContext( + actx.context, + kernel=knl, + local_expn_class=partial(local_expn_class, + m2l_translation=m2l_translation), + mpole_expn_class=mpole_expn_class, + extra_kernel_kwargs=extra_kwargs, + ) - # These are indexed by global box numbers. - p2m_box_source_starts = actx.from_numpy( - np.array([0, 0, 0, 0], dtype=np.int32)) - p2m_box_source_counts_nonchild = actx.from_numpy( - np.array([nsources, 0, 0, 0], dtype=np.int32)) + p = t.PointSources(toy_ctx, sources, weights=strengths) + p2p = p.eval(targets) - evt, (mpoles,) = p2m(actx.queue, - source_boxes=p2m_source_boxes, - box_source_starts=p2m_box_source_starts, - box_source_counts_nonchild=p2m_box_source_counts_nonchild, - centers=centers, - sources=sources, - strengths=(strengths,), - nboxes=nboxes, - rscale=m1_rscale, - - tgt_base_ibox=0, - **extra_kwargs) - - # }}} - - pot = eval_at(m2p, 0, m1_rscale) - - err = la.norm((pot - pot_direct) / res**2) - err = err / (la.norm(pot_direct) / res**2) + m1_rscale = 0.5 + m2_rscale = 0.25 + l1_rscale = 0.5 + l2_rscale = 0.25 + for order in orders: + print(centers[:, 0].shape) + p2m = t.multipole_expand(p, centers[:, 0], order, m1_rscale) + p2m2p = p2m.eval(targets) + err = la.norm((p2m2p - p2p) / res**2) + err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2p.add_data_point(order, err) - # {{{ apply M2M - - m2m_target_boxes = actx.from_numpy(np.array([1], dtype=np.int32)) - m2m_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) - m2m_src_box_lists = actx.from_numpy(np.array([0], dtype=np.int32)) - - evt, (mpoles,) = m2m(actx.queue, - src_expansions=mpoles, - src_base_ibox=0, - tgt_base_ibox=0, - ntgt_level_boxes=mpoles.shape[0], - - target_boxes=m2m_target_boxes, - - src_box_starts=m2m_src_box_starts, - src_box_lists=m2m_src_box_lists, - centers=centers, - - src_rscale=m1_rscale, - tgt_rscale=m2_rscale, - **extra_kwargs) - - # }}} - - pot = eval_at(m2p, 1, m2_rscale) - - err = la.norm((pot - pot_direct)/res**2) - err = err / (la.norm(pot_direct) / res**2) - + p2m2m = t.multipole_expand(p2m, centers[:, 1], order, m2_rscale) + p2m2m2p = p2m2m.eval(targets) + err = la.norm((p2m2m2p - p2p)/res**2) + err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2m2p.add_data_point(order, err) - # {{{ apply M2L - - m2l_target_boxes = actx.from_numpy(np.array([2], dtype=np.int32)) - m2l_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) - m2l_src_box_lists = actx.from_numpy(np.array([1], dtype=np.int32)) - - evt, (mpoles,) = m2l(actx.queue, - src_expansions=mpoles, - src_base_ibox=0, - tgt_base_ibox=0, - ntgt_level_boxes=mpoles.shape[0], - - target_boxes=m2l_target_boxes, - src_box_starts=m2l_src_box_starts, - src_box_lists=m2l_src_box_lists, - centers=centers, - - src_rscale=m2_rscale, - tgt_rscale=l1_rscale, - **extra_kwargs) - - # }}} - - pot = eval_at(l2p, 2, l1_rscale) - - err = la.norm((pot - pot_direct)/res**2) - err = err / (la.norm(pot_direct) / res**2) - + p2m2m2l = t.local_expand(p2m2m, centers[:, 2], order, l1_rscale) + p2m2m2l2p = p2m2m2l.eval(targets) + err = la.norm((p2m2m2l2p - p2p)/res**2) + err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2m2l2p.add_data_point(order, err) - # {{{ apply L2L - - l2l_target_boxes = actx.from_numpy(np.array([3], dtype=np.int32)) - l2l_src_box_starts = actx.from_numpy(np.array([0, 1], dtype=np.int32)) - l2l_src_box_lists = actx.from_numpy(np.array([2], dtype=np.int32)) - - evt, (mpoles,) = l2l(actx.queue, - src_expansions=mpoles, - src_base_ibox=0, - tgt_base_ibox=0, - ntgt_level_boxes=mpoles.shape[0], - - target_boxes=l2l_target_boxes, - src_box_starts=l2l_src_box_starts, - src_box_lists=l2l_src_box_lists, - centers=centers, - - src_rscale=l1_rscale, - tgt_rscale=l2_rscale, - **extra_kwargs) - - # }}} - - pot = eval_at(l2p, 3, l2_rscale) - - err = la.norm((pot - pot_direct)/res**2) - err = err / (la.norm(pot_direct) / res**2) - + p2m2m2l2l = t.local_expand(p2m2m2l, centers[:, 3], order, l2_rscale) + p2m2m2l2l2p = p2m2m2l2l.eval(targets) + err = la.norm((p2m2m2l2l2p - p2p)/res**2) + err = err / (la.norm(p2p) / res**2) pconv_verifier_full.add_data_point(order, err) for name, verifier in [ From 8d19f2131a889f5ffeb2e5c0a971ce9baff7e3d7 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 13 Oct 2023 10:04:07 -0500 Subject: [PATCH 091/335] Support M2L with FFT on ToyContext (#189) * Support M2L with FFT on ToyContext * flake8 fixes * Fix src_rscale, tgt_rscale ordering * More tests with FFT --- sumpy/e2e.py | 2 +- sumpy/toys.py | 223 +++++++++++++++++++++++++++++++++++++------ test/test_kernels.py | 42 +++++--- test/test_misc.py | 15 ++- 4 files changed, 238 insertions(+), 44 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 0e218024c..c66f9c022 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -791,8 +791,8 @@ def get_kernel(self, result_dtype): for itgt_box [itgt_coeff]: tgt_expansions[itgt_box, itgt_coeff] = \ m2l_postprocess_inner( - tgt_rscale, src_rscale, + tgt_rscale, [isrc_coeff]: tgt_expansions_before_postprocessing[ \ itgt_box, isrc_coeff], ) diff --git a/sumpy/toys.py b/sumpy/toys.py index a794ff152..c71f6107e 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -102,7 +102,7 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, local_expn_class=None, expansion_factory=None, extra_source_kwargs=None, - extra_kernel_kwargs=None): + extra_kernel_kwargs=None, m2l_use_fft=None): self.cl_context = cl_context self.queue = cl.CommandQueue(self.cl_context) self.kernel = kernel @@ -116,15 +116,22 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, mpole_expn_class = \ expansion_factory.get_multipole_expansion_class(kernel) if local_expn_class is None: - from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory + from sumpy.expansion.m2l import (NonFFTM2LTranslationClassFactory, + FFTM2LTranslationClassFactory) + if m2l_use_fft: + m2l_translation_class_factory = FFTM2LTranslationClassFactory() + else: + m2l_translation_class_factory = NonFFTM2LTranslationClassFactory() local_expn_class = \ expansion_factory.get_local_expansion_class(kernel) - m2l_translation_class_factory = NonFFTM2LTranslationClassFactory() m2l_translation_class = \ m2l_translation_class_factory.get_m2l_translation_class( kernel, local_expn_class) local_expn_class = partial(local_expn_class, m2l_translation=m2l_translation_class()) + elif m2l_use_fft is not None: + raise ValueError("local_expn_class and m2l_use_fft are both supplied. " + "Use only one of these arguments") self.mpole_expn_class = mpole_expn_class self.local_expn_class = local_expn_class @@ -181,10 +188,51 @@ def get_m2m(self, from_order, to_order): self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.mpole_expn_class(self.no_target_deriv_kernel, to_order)) + @memoize_method + def use_translation_classes_dependent_data(self): + l_expn = self.local_expn_class(self.no_target_deriv_kernel, 2) + return l_expn.m2l_translation.use_preprocessing + + @memoize_method + def use_fft(self): + l_expn = self.local_expn_class(self.no_target_deriv_kernel, 2) + return l_expn.m2l_translation.use_fft + @memoize_method def get_m2l(self, from_order, to_order): - from sumpy import E2EFromCSR - return E2EFromCSR(self.cl_context, + from sumpy import E2EFromCSR, M2LUsingTranslationClassesDependentData + if self.use_translation_classes_dependent_data(): + m2l_class = M2LUsingTranslationClassesDependentData + else: + m2l_class = E2EFromCSR + return m2l_class(self.cl_context, + self.mpole_expn_class(self.no_target_deriv_kernel, from_order), + self.local_expn_class(self.no_target_deriv_kernel, to_order)) + + @memoize_method + def get_m2l_translation_class_dependent_data_kernel(self, from_order, to_order): + from sumpy import M2LGenerateTranslationClassesDependentData + return M2LGenerateTranslationClassesDependentData(self.cl_context, + self.mpole_expn_class(self.no_target_deriv_kernel, from_order), + self.local_expn_class(self.no_target_deriv_kernel, to_order)) + + @memoize_method + def get_m2l_expansion_size(self, from_order, to_order): + m_expn = self.mpole_expn_class(self.no_target_deriv_kernel, from_order) + l_expn = self.local_expn_class(self.no_target_deriv_kernel, to_order) + return l_expn.m2l_translation.preprocess_multipole_nexprs(l_expn, m_expn) + + @memoize_method + def get_m2l_preprocess_mpole_kernel(self, from_order, to_order): + from sumpy import M2LPreprocessMultipole + return M2LPreprocessMultipole(self.cl_context, + self.mpole_expn_class(self.no_target_deriv_kernel, from_order), + self.local_expn_class(self.no_target_deriv_kernel, to_order)) + + @memoize_method + def get_m2l_postprocess_local_kernel(self, from_order, to_order): + from sumpy import M2LPostprocessLocal + return M2LPostprocessLocal(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @@ -267,7 +315,8 @@ def _e2p(psource, targets, e2p): return pot.get(queue) -def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs): +def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, + extra_kernel_kwargs): toy_ctx = psource.toy_ctx queue = toy_ctx.queue @@ -290,32 +339,133 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs): ], dtype=np.float64).T.copy() ) + coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) + args = { + "queue": toy_ctx.queue, + "src_expansions": coeffs, + "src_base_ibox": 0, + "tgt_base_ibox": 0, + "ntgt_level_boxes": 2, + "target_boxes": target_boxes, + "src_box_starts": src_box_starts, + "src_box_lists": src_box_lists, + "centers": centers, + "src_rscale": psource.rscale, + "tgt_rscale": to_rscale, + **extra_kernel_kwargs, + **toy_ctx.extra_kernel_kwargs, + } + + evt, (to_coeffs,) = e2e(**args) - evt, (to_coeffs,) = e2e( - toy_ctx.queue, - src_expansions=coeffs, - src_base_ibox=0, - tgt_base_ibox=0, - ntgt_level_boxes=2, + return expn_class( + toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), + derived_from=psource, **expn_kwargs) - target_boxes=target_boxes, - src_box_starts=src_box_starts, - src_box_lists=src_box_lists, - centers=centers, +def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, + translation_classes_kwargs): + toy_ctx = psource.toy_ctx + queue = toy_ctx.queue - src_rscale=psource.rscale, - tgt_rscale=to_rscale, - **toy_ctx.extra_kernel_kwargs) + coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) - return expn_class( - toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), + m2l_use_translation_classes_dependent_data = \ + toy_ctx.use_translation_classes_dependent_data() + + if m2l_use_translation_classes_dependent_data: + data_kernel = translation_classes_kwargs["data_kernel"] + preprocess_kernel = translation_classes_kwargs["preprocess_kernel"] + postprocess_kernel = translation_classes_kwargs["postprocess_kernel"] + expn_size = translation_classes_kwargs["m2l_expn_size"] + + # Preprocess the mpole expansion + preprocessed_src_expansions = cl.array.zeros(queue, (1, expn_size), + dtype=np.complex128) + evt, _ = preprocess_kernel(queue, + src_expansions=coeffs, + preprocessed_src_expansions=preprocessed_src_expansions, + src_rscale=np.float64(psource.rscale), + **toy_ctx.extra_kernel_kwargs) + + if toy_ctx.use_fft: + from sumpy.tools import (run_opencl_fft, get_opencl_fft_app, + get_native_event) + fft_app = get_opencl_fft_app(queue, (expn_size,), + dtype=preprocessed_src_expansions.dtype, inverse=False) + ifft_app = get_opencl_fft_app(queue, (expn_size,), + dtype=preprocessed_src_expansions.dtype, inverse=True) + + evt, preprocessed_src_expansions = run_opencl_fft(fft_app, queue, + preprocessed_src_expansions, inverse=False, wait_for=[evt]) + + # Compute translation classes data + m2l_translation_classes_lists = cl.array.to_device(queue, + np.array([0], dtype=np.int32)) + dist = np.array(to_center - psource.center, dtype=np.float64) + dim = toy_ctx.kernel.dim + m2l_translation_vectors = cl.array.to_device(queue, dist.reshape(dim, 1)) + m2l_translation_classes_dependent_data = cl.array.zeros(queue, + (1, expn_size), dtype=np.complex128) + + evt, _ = data_kernel( + queue, + src_rscale=np.float64(psource.rscale), + ntranslation_classes=1, + translation_classes_level_start=0, + m2l_translation_vectors=m2l_translation_vectors, + m2l_translation_classes_dependent_data=( + m2l_translation_classes_dependent_data), + ntranslation_vectors=1, + wait_for=[get_native_event(evt)], + **toy_ctx.extra_kernel_kwargs) + + if toy_ctx.use_fft: + evt, m2l_translation_classes_dependent_data = run_opencl_fft(fft_app, + queue, m2l_translation_classes_dependent_data, inverse=False, + wait_for=[evt]) + + ret = _e2e(psource, to_center, to_rscale, to_order, + e2e, expn_class, expn_kwargs, + { + "src_expansions": preprocessed_src_expansions, + "m2l_translation_classes_lists": m2l_translation_classes_lists, + "m2l_translation_classes_dependent_data": ( + m2l_translation_classes_dependent_data), + "translation_classes_level_start": 0, + } + ) + + # Postprocess the local expansion + local_before = cl.array.to_device(queue, np.array([ret.coeffs])) + to_coeffs = cl.array.zeros(queue, (1, len(data_kernel.tgt_expansion)), + dtype=coeffs.dtype) + + if toy_ctx.use_fft: + evt, local_before = run_opencl_fft(ifft_app, queue, + local_before, inverse=True, wait_for=[get_native_event(evt)]) + + evt, _ = postprocess_kernel(queue=queue, + tgt_expansions_before_postprocessing=local_before, + tgt_expansions=to_coeffs, + src_rscale=np.float64(psource.rscale), + tgt_rscale=np.float64(to_rscale), + wait_for=[get_native_event(evt)], + **toy_ctx.extra_kernel_kwargs) + + return expn_class( + toy_ctx, to_center, to_rscale, to_order, to_coeffs.get(queue)[0], derived_from=psource, **expn_kwargs) + else: + ret = _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, + expn_kwargs, {}) -# }}} + return ret +# }}} + # {{{ potential source classes class PotentialSource: @@ -596,7 +746,7 @@ def multipole_expand(psource: PotentialSource, return _e2e(psource, center, rscale, order, psource.toy_ctx.get_m2m(psource.order, order), - MultipoleExpansion, expn_kwargs) + MultipoleExpansion, expn_kwargs, {}) else: raise TypeError(f"do not know how to expand '{type(psource).__name__}'") @@ -617,9 +767,28 @@ def local_expand( if order is None: order = psource.order - return _e2e(psource, center, rscale, order, - psource.toy_ctx.get_m2l(psource.order, order), - LocalExpansion, expn_kwargs) + toy_ctx = psource.toy_ctx + translation_classes_kwargs = {} + m2l_use_translation_classes_dependent_data = \ + toy_ctx.use_translation_classes_dependent_data() + + if m2l_use_translation_classes_dependent_data: + data_kernel = toy_ctx.get_m2l_translation_class_dependent_data_kernel( + psource.order, order) + preprocess_kernel = toy_ctx.get_m2l_preprocess_mpole_kernel( + psource.order, order) + postprocess_kernel = toy_ctx.get_m2l_postprocess_local_kernel( + psource.order, order) + translation_classes_kwargs["data_kernel"] = data_kernel + translation_classes_kwargs["preprocess_kernel"] = preprocess_kernel + translation_classes_kwargs["postprocess_kernel"] = postprocess_kernel + translation_classes_kwargs["m2l_expn_size"] = \ + toy_ctx.get_m2l_expansion_size(psource.order, order) + + return _m2l(psource, center, rscale, order, + toy_ctx.get_m2l(psource.order, order), + LocalExpansion, expn_kwargs, + translation_classes_kwargs) elif isinstance(psource, LocalExpansion): if order is None: @@ -627,7 +796,7 @@ def local_expand( return _e2e(psource, center, rscale, order, psource.toy_ctx.get_l2l(psource.order, order), - LocalExpansion, expn_kwargs) + LocalExpansion, expn_kwargs, {}) else: raise TypeError(f"do not know how to expand '{type(psource).__name__}'") diff --git a/test/test_kernels.py b/test/test_kernels.py index d1768fd7c..8f0a98ef2 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -43,7 +43,8 @@ VolumeTaylorLocalExpansion, H2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion) -from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory +from sumpy.expansion.m2l import (NonFFTM2LTranslationClassFactory, + FFTM2LTranslationClassFactory) from sumpy.kernel import ( LaplaceKernel, HelmholtzKernel, @@ -473,27 +474,35 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative # {{{ test_translations -@pytest.mark.parametrize("knl, local_expn_class, mpole_expn_class", [ - (LaplaceKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), +@pytest.mark.parametrize("knl, local_expn_class, mpole_expn_class, use_fft", [ + (LaplaceKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, + False), (LaplaceKernel(2), LinearPDEConformingVolumeTaylorLocalExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion), - (LaplaceKernel(3), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), + LinearPDEConformingVolumeTaylorMultipoleExpansion, False), + (LaplaceKernel(2), LinearPDEConformingVolumeTaylorLocalExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion, True), + (LaplaceKernel(3), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, + False), (LaplaceKernel(3), LinearPDEConformingVolumeTaylorLocalExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion), - (HelmholtzKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), + LinearPDEConformingVolumeTaylorMultipoleExpansion, False), + (LaplaceKernel(3), LinearPDEConformingVolumeTaylorLocalExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion, True), + (HelmholtzKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, + False), (HelmholtzKernel(2), LinearPDEConformingVolumeTaylorLocalExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion), - (HelmholtzKernel(3), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), + LinearPDEConformingVolumeTaylorMultipoleExpansion, False), + (HelmholtzKernel(3), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, + False), (HelmholtzKernel(3), LinearPDEConformingVolumeTaylorLocalExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion), - (HelmholtzKernel(2), H2DLocalExpansion, H2DMultipoleExpansion), + LinearPDEConformingVolumeTaylorMultipoleExpansion, False), + (HelmholtzKernel(2), H2DLocalExpansion, H2DMultipoleExpansion, False), (StokesletKernel(2, 0, 0), VolumeTaylorLocalExpansion, - VolumeTaylorMultipoleExpansion), + VolumeTaylorMultipoleExpansion, False), (StokesletKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion), + LinearPDEConformingVolumeTaylorMultipoleExpansion, False), ]) def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, - visualize=False): + use_fft, visualize=False): if visualize: logging.basicConfig(level=logging.INFO) @@ -550,7 +559,10 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, else: orders = [3, 4, 5] - m2l_factory = NonFFTM2LTranslationClassFactory() + if use_fft: + m2l_factory = FFTM2LTranslationClassFactory() + else: + m2l_factory = NonFFTM2LTranslationClassFactory() m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() toy_ctx = t.ToyContext( diff --git a/test/test_misc.py b/test/test_misc.py index 9b7257812..98f07da10 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -230,6 +230,7 @@ class P2E2E2PTestCase: expansion1: Callable[..., Any] expansion2: Callable[..., Any] conv_factor: str + m2l_use_fft: bool = False @property def dim(self): @@ -266,6 +267,17 @@ def dim(self): expansion1=t.multipole_expand, expansion2=t.local_expand, conv_factor="norm(t-c2)/(norm(c2-c1)-norm(c1-s))"), + + # multipole to local, 3D with FFT + P2E2E2PTestCase( + source=np.array([-2., 2., 1.]), + center1=np.array([-2., 5., 3.]), + center2=np.array([0., 0., 0.]), + target=np.array([0., 0., -1]), + expansion1=t.multipole_expand, + expansion2=t.local_expand, + m2l_use_fft=True, + conv_factor="norm(t-c2)/(norm(c2-c1)-norm(c1-s))"), ) # }}} @@ -302,7 +314,8 @@ def test_toy_p2e2e2p(actx_factory, case): actx = actx_factory() ctx = t.ToyContext(actx.context, LaplaceKernel(dim), - expansion_factory=VolumeTaylorExpansionFactory()) + expansion_factory=VolumeTaylorExpansionFactory(), + m2l_use_fft=case.m2l_use_fft) errors = [] From 656dd729e74d9dff68268072bd161c1cfce98b35 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 18 Oct 2023 11:28:44 -0500 Subject: [PATCH 092/335] improve fallback for vec types (#175) * improve fallback for vec types * fix flake8 --- sumpy/p2p.py | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 9c4302d62..c5acdd9d8 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -661,13 +661,14 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, return loopy_knl def get_optimized_kernel(self, max_nsources_in_one_box, - max_ntargets_in_one_box, dtype_size): + max_ntargets_in_one_box, source_dtype, strength_dtype): if not self.is_gpu: knl = self.get_kernel(max_nsources_in_one_box, max_ntargets_in_one_box) knl = lp.split_iname(knl, "itgt_box", 4, outer_tag="g.0") knl = self._allow_redundant_execution_of_knl_scaling(knl) else: + dtype_size = np.dtype(strength_dtype).alignment work_items_per_group = min(256, max_ntargets_in_one_box) total_local_mem = max_nsources_in_one_box * \ (self.dim + self.strength_count) * dtype_size @@ -682,6 +683,10 @@ def get_optimized_kernel(self, max_nsources_in_one_box, knl = lp.set_temporary_address_space(knl, ["local_isrc", "local_isrc_strength"], lp.AddressSpace.LOCAL) + local_arrays = ["local_isrc", "local_isrc_strength"] + local_array_isrc_axis = [1, 1] + local_array_sizes = [self.dim, self.strength_count] + local_array_dtypes = [source_dtype, strength_dtype] # By having a concatenated memory layout of the temporaries # and marking the first axis as vec, we are transposing the # the arrays and also making the access of the source @@ -689,15 +694,33 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # access of 256 bits (assuming double precision) which is # optimized for NVIDIA GPUs. On an NVIDIA Titan V, this # optimization led to a 8% speedup in the performance. - knl = lp.concatenate_arrays(knl, - ["local_isrc", "local_isrc_strength"], "local_isrc") - count = self.strength_count + self.dim - if count in [2, 3, 4, 8, 16]: - knl = lp.tag_array_axes(knl, "local_isrc", "vec,C") + if strength_dtype == source_dtype: + knl = lp.concatenate_arrays(knl, local_arrays, "local_isrc") + local_arrays = ["local_isrc"] + local_array_sizes = [self.dim + self.strength_count] + local_array_dtypes = [source_dtype] + # We try to mark the local arrays (sources, strengths) + # as vec for the first dimension + for i, (array_name, array_size, array_dtype) in \ + enumerate(zip(local_arrays, local_array_sizes, + local_array_dtypes)): + if array_dtype not in [np.float, np.double]: + # pyopencl does not support complex data type vectors + continue + if array_size in [2, 3, 4, 8, 16]: + knl = lp.tag_array_axes(knl, array_name, "vec,C") + else: + # FIXME: check if CUDA + n = 16 // dtype_size + if n in [1, 2, 4, 8]: + knl = lp.split_array_axis(knl, array_name, 0, n) + knl = lp.tag_array_axes(knl, array_name, "C,vec,C") + local_array_isrc_axis[i] = 2 # We need to split isrc_prefetch and isrc_offset into chunks. nsources = (max_nsources_in_one_box + nprefetch - 1) // nprefetch - knl = lp.split_array_axis(knl, "local_isrc", 1, nsources) + for local_array, axis in zip(local_arrays, local_array_isrc_axis): + knl = lp.split_array_axis(knl, local_array, axis, nsources) knl = lp.split_iname(knl, "isrc_prefetch", nsources, outer_iname="iprefetch") knl = lp.split_iname(knl, "isrc_prefetch_inner", work_items_per_group) @@ -709,7 +732,7 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # be as large as before. Need to simplify before unprivatizing knl = lp.simplify_indices(knl) knl = lp.unprivatize_temporaries_with_inames(knl, - "iprefetch", only_var_names="local_isrc") + "iprefetch", only_var_names=local_arrays) knl = lp.add_inames_to_insn(knl, "inner", "id:init_* or id:*_scaling or id:src_box_insn_*") @@ -728,14 +751,19 @@ def __call__(self, queue, **kwargs): max_ntargets_in_one_box = kwargs.pop("max_ntargets_in_one_box") if self.is_gpu: - dtype_size = kwargs.get("sources")[0].dtype.alignment + source_dtype = kwargs.get("sources")[0].dtype + strength_dtype = kwargs.get("strength").dtype else: - dtype_size = None + # these are unused for not GPU and defeats the caching + # set them to None to keep the caching across dtypes + source_dtype = None + strength_dtype = None knl = self.get_cached_kernel_executor( max_nsources_in_one_box=max_nsources_in_one_box, max_ntargets_in_one_box=max_ntargets_in_one_box, - dtype_size=dtype_size, + source_dtype=source_dtype, + strength_dtype=strength_dtype, ) return knl(queue, **kwargs) From 94f232f6046f9d2feeb1ab801d98f32c9b674e22 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 3 Dec 2023 10:48:34 -0600 Subject: [PATCH 093/335] Remove arbitrary-arg-passing in ComplexRewriter --- sumpy/codegen.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index c4857fca0..670d0729f 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -502,12 +502,12 @@ def __init__(self, complex_dtype=None): super().__init__() self.complex_dtype = complex_dtype - def map_constant(self, expr, rec_self=None, *args, **kwargs): + def map_constant(self, expr, rec_self=None): """Convert complex values to numpy types """ if not isinstance(expr, (complex, np.complex64, np.complex128)): return IdentityMapper.map_constant(rec_self or self, expr, - rec_self=rec_self, *args, **kwargs) + rec_self=rec_self) complex_dtype = self.complex_dtype if complex_dtype is None: From e0f66f64222a72b3ef1394bd77c4fee4f8d5596a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 16 Feb 2024 14:12:07 -0600 Subject: [PATCH 094/335] Add license to CITATION.cff --- CITATION.cff | 1 + 1 file changed, 1 insertion(+) diff --git a/CITATION.cff b/CITATION.cff index 96221bb40..dddf5c235 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -20,3 +20,4 @@ version: 2022.1 doi: 10.5281/zenodo.7349787 date-released: 2022-11-23 url: "https://github.com/inducer/sumpy" +license: MIT From 0a157689b77776c4b2dc4229fa838a2ccb49b14f Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Apr 2024 19:12:20 +0300 Subject: [PATCH 095/335] ci: add dependabot updates for github actions --- .github/dependabot.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..db66bec8c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + # Set update schedule for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + +# vim: sw=4 From 25e910721ae37183daea091b3115de040ab91651 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 18:05:25 +0000 Subject: [PATCH 096/335] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/autopush.yml | 2 +- .github/workflows/ci.yml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index 900413986..627c567a4 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -9,7 +9,7 @@ jobs: name: Automatic push to gitlab.tiker.net runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: | mkdir ~/.ssh && echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config eval $(ssh-agent) && echo "$GITLAB_AUTOPUSH_KEY" | ssh-add - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 893a8b7d0..65f5e5d03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: name: Flake8 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: @@ -27,7 +27,7 @@ jobs: name: Pylint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" run: | USE_CONDA_BUILD=1 @@ -41,7 +41,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" run: | CONDA_ENVIRONMENT=.test-conda-env-py3.yml @@ -54,7 +54,7 @@ jobs: name: Conda Pytest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -66,7 +66,7 @@ jobs: name: Conda Pytest Symengine runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -76,7 +76,7 @@ jobs: name: Conda Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -94,7 +94,7 @@ jobs: name: Tests for downstream project ${{ matrix.downstream_project }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Main Script" env: DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }} From 41158f168063207c5ee70fcb045ad6d4bbb504cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 19:49:07 +0000 Subject: [PATCH 097/335] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65f5e5d03..6a2c714a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: # matches compat target in setup.py python-version: '3.8' From 4c097e21cda6ebaa7160a7801e4dc6b2f7406ac6 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 21 May 2024 16:59:49 -0500 Subject: [PATCH 098/335] Ignore false-positive use-before-assign warnings from pylint --- sumpy/toys.py | 5 +++-- test/test_cse.py | 13 +++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sumpy/toys.py b/sumpy/toys.py index c71f6107e..41117eedb 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -389,9 +389,10 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, src_rscale=np.float64(psource.rscale), **toy_ctx.extra_kernel_kwargs) + from sumpy.tools import (run_opencl_fft, get_opencl_fft_app, + get_native_event) + if toy_ctx.use_fft: - from sumpy.tools import (run_opencl_fft, get_opencl_fft_app, - get_native_event) fft_app = get_opencl_fft_app(queue, (expn_size,), dtype=preprocessed_src_expansions.dtype, inverse=False) ifft_app = get_opencl_fft_app(queue, (expn_size,), diff --git a/test/test_cse.py b/test/test_cse.py index 68352c905..e84548c7c 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -142,8 +142,8 @@ def test_cse_not_possible(): assert substs == [] assert reduced == [x + y] # issue 6329 - eq = (meijerg((1, 2), (y, 4), (5,), [], x) - + meijerg((1, 3), (y, 4), (5,), [], x)) + eq = (meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment # noqa: E501 + + meijerg((1, 3), (y, 4), (5,), [], x)) # pylint: disable=possibly-used-before-assignment # noqa: E501 assert cse(eq) == ([], [eq]) # }}} @@ -168,7 +168,7 @@ def test_subtraction_opt(): # Make sure subtraction is optimized. e = (x - y)*(z - y) + sym.exp((x - y)*(z - y)) substs, reduced = cse( - [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) + [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) # pylint: disable=possibly-used-before-assignment # noqa: E501 assert substs == [(x0, (x - y)*(y - z))] assert reduced == [-x0 + sym.exp(-x0)] e = -(x - y)*(z - y) + sym.exp(-(x - y)*(z - y)) @@ -179,8 +179,9 @@ def test_subtraction_opt(): # issue 4077 n = -1 + 1/x e = n/x/(-n)**2 - 1/n/x - assert cse(e, optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) == \ - ([], [0]) + assert cse(e, optimizations=[ + (cse_opts.sub_pre, cse_opts.sub_post)] # pylint: disable=possibly-used-before-assignment # noqa: E501 + ) == ([], [0]) # }}} @@ -331,7 +332,7 @@ def test_issue_6169(): assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism - assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y + assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y # pylint: disable=possibly-used-before-assignment # noqa: E501 # }}} From 4ee8960f69178b21c9612feb5a745726b81cd419 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran <32660271+hirish99@users.noreply.github.com> Date: Wed, 22 May 2024 12:51:00 -0700 Subject: [PATCH 099/335] Found slight typo (#200) * Found slight typo * Update point_calculus.py --- sumpy/point_calculus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 20d7435d3..2a26ecfcb 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -297,7 +297,7 @@ def frequency_domain_maxwell(cpatch, e, h, k): # https://en.wikipedia.org/w/index.php?title=Maxwell%27s_equations&oldid=798940325#Macroscopic_formulation # assumed time dependence exp(-1j*omega*t) - # Agrees with Jackson, Third Ed., (8.16) + # This agrees with Jackson, Third Ed., (8.16) resid_faraday = cpatch.curl(e) - 1j * omega * b resid_ampere = cpatch.curl(h) + 1j * omega * d From 346e328957d1becfed4b3034ed0962daeb7fc29e Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 28 May 2024 15:53:31 -0500 Subject: [PATCH 100/335] Pin conda OpenMPI to non-external --- .test-conda-env-py3.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index fa9b319dc..caa303f59 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -17,3 +17,11 @@ dependencies: - pyrsistent - pyvkfft - mpi4py + +# This is intended to prevent conda from selecting 'external' (i.e. empty) builds +# of OpenMPI to satisfy the MPI dependency of mpi4py. It did so in May 2024, leading +# to confusing failues saying +# 'libmpi.so.40: cannot open shared object file: No such file or directory'. +# https://github.com/conda-forge/openmpi-feedstock/issues/153 +# https://conda-forge.org/docs/user/tipsandtricks/#using-external-message-passing-interface-mpi-libraries +- openmpi>=5=h* From 8243cde9191ab629eb40af5079727e9942d30e58 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 7 Jun 2024 15:46:45 -0500 Subject: [PATCH 101/335] Gitlab autopush: use script from ci-support --- .github/workflows/autopush.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index 627c567a4..f0b30a9ce 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -7,14 +7,15 @@ on: jobs: autopush: name: Automatic push to gitlab.tiker.net + if: startsWith(github.repository, 'inducer/') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: | - mkdir ~/.ssh && echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config - eval $(ssh-agent) && echo "$GITLAB_AUTOPUSH_KEY" | ssh-add - - git fetch --unshallow - git push "git@gitlab.tiker.net:inducer/$(basename $GITHUB_REPOSITORY).git" main + curl -L -O https://tiker.net/ci-support-v0 + . ./ci-support-v0 + mirror_github_to_gitlab + env: GITLAB_AUTOPUSH_KEY: ${{ secrets.GITLAB_AUTOPUSH_KEY }} From ff3e2fa6e92eb0393b26c11fcb1e8fed595c67a1 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 2 Jul 2024 21:27:50 +0300 Subject: [PATCH 102/335] rename TestKernel to not confuse pytest --- test/test_misc.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/test_misc.py b/test/test_misc.py index 98f07da10..9cee476cd 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -534,7 +534,7 @@ def get_pde_as_diff_op(self): # {{{ test_get_storage_index -class TestKernel(ExpressionKernel): +class StorageIndexTestKernel(ExpressionKernel): def __init__(self, dim, max_mi): super().__init__(dim=dim, expression=1, global_scaling_const=1, is_complex_valued=False) @@ -550,11 +550,11 @@ def get_pde_as_diff_op(self): @pytest.mark.parametrize("knl", [ LaplaceKernel(2), LaplaceKernel(3), - TestKernel(2, (3, 0)), - TestKernel(2, (0, 3)), - TestKernel(3, (3, 0, 0)), - TestKernel(3, (0, 3, 0)), - TestKernel(3, (0, 0, 3)), + StorageIndexTestKernel(2, (3, 0)), + StorageIndexTestKernel(2, (0, 3)), + StorageIndexTestKernel(3, (3, 0, 0)), + StorageIndexTestKernel(3, (0, 3, 0)), + StorageIndexTestKernel(3, (0, 0, 3)), BiharmonicKernel(2), BiharmonicKernel(3), ]) From 472ae20617baa846ae9cfd248136fe5277bb3dba Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 12 Jul 2024 16:35:06 -0500 Subject: [PATCH 103/335] Set safe_sync to false for sumpy's code cache --- sumpy/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sumpy/__init__.py b/sumpy/__init__.py index bfcbf6d7c..d03122e14 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -41,7 +41,8 @@ "M2LPreprocessMultipole", "M2LPostprocessLocal"] -code_cache = WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT) +code_cache = WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT, + safe_sync=False) # {{{ optimization control From 60b04940e37af517d0284188ddd43c3c87c57476 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 13:21:09 -0500 Subject: [PATCH 104/335] LinearSystemOperator: switch to dataclass, add types --- sumpy/expansion/diff_op.py | 66 +++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index e6d540c5d..8d8700bac 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -20,14 +20,15 @@ THE SOFTWARE. """ -from collections import namedtuple +from dataclasses import dataclass from pyrsistent import pmap from pytools import memoize from sumpy.tools import add_mi from itertools import accumulate import sumpy.symbolic as sym import logging -from typing import List +from typing import List, Mapping, Sequence +import sympy as sp logger = logging.getLogger(__name__) @@ -41,9 +42,28 @@ .. autofunction:: as_scalar_pde """ -DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) + +@dataclass(frozen=True) +class DerivativeIdentifier: + """ + .. autoattribute:: mi + .. autoattribute: vec_idx + """ + + mi: tuple[int, ...] + """ + Multi-index of the derivative being taken, a tuple with a number of entries + corresponding to the dimension. + """ + + vec_idx: int + """ + In a PDE system of :math:`n` variables, an integer between :math:`0` and :math:`n-1` + indicating which variable is being differentiated. + """ +@dataclass(frozen=True, eq=True) class LinearPDESystemOperator: r""" Represents a constant-coefficient linear differential operator of a @@ -52,21 +72,17 @@ class LinearPDESystemOperator: :class:`DerivativeIdentifier` to the coefficient. This object is immutable. Optionally supports a time variable as the last variable in the multi-index of the :class:`DerivativeIdentifier`. - """ - def __init__(self, dim, *eqs): - """ - :arg dim: Number of spatial dimensions of the LinearPDESystemOperator - :arg eqs: A list of dictionaries mapping a :class:`DerivativeIdentifier` - to a coefficient. - """ - self.dim = dim - self.eqs = tuple(eqs) - def __eq__(self, other): - return self.dim == other.dim and self.eqs == other.eqs + .. autoattribute:: dim + .. autoattribute:: eqs + + .. autoattribute:: order + .. autoattribute:: total_dims + .. automethod:: to_sym + """ - def __hash__(self): - return hash((self.dim, self.eqs)) + dim: int + eqs: Sequence[Mapping[DerivativeIdentifier, sp.Expr]] @property def order(self): @@ -82,7 +98,7 @@ def __mul__(self, param): for k, v in eq.items(): deriv_ident_to_coeff[k] = v * param eqs.append(pmap(deriv_ident_to_coeff)) - return LinearPDESystemOperator(self.dim, *eqs) + return LinearPDESystemOperator(self.dim, tuple(eqs)) __rmul__ = __mul__ @@ -98,7 +114,7 @@ def __add__(self, other_diff_op): else: res[k] = v eqs.append(pmap(res)) - return LinearPDESystemOperator(self.dim, *eqs) + return LinearPDESystemOperator(self.dim, tuple(eqs)) __radd__ = __add__ @@ -112,7 +128,7 @@ def __getitem__(self, idx): item = self.eqs.__getitem__(idx) if not isinstance(item, tuple): item = (item,) - return LinearPDESystemOperator(self.dim, *item) + return LinearPDESystemOperator(self.dim, tuple(item)) @property def total_dims(self): @@ -306,7 +322,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ def laplacian(diff_op): dim = diff_op.dim empty = [pmap()] * len(diff_op.eqs) - res = LinearPDESystemOperator(dim, *empty) + res = LinearPDESystemOperator(dim, empty) for j in range(dim): mi = [0]*diff_op.total_dims mi[j] = 2 @@ -322,7 +338,7 @@ def diff(diff_op, mi): new_mi = add_mi(deriv_ident.mi, mi) res[DerivativeIdentifier(new_mi, deriv_ident.vec_idx)] = v eqs.append(pmap(res)) - return LinearPDESystemOperator(diff_op.dim, *eqs) + return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) def divergence(diff_op): @@ -343,7 +359,7 @@ def gradient(diff_op): mi = [0]*diff_op.total_dims mi[i] = 1 eqs.append(diff(diff_op, tuple(mi)).eqs[0]) - return LinearPDESystemOperator(dim, *eqs) + return LinearPDESystemOperator(dim, tuple(eqs)) def curl(pde): @@ -361,7 +377,7 @@ def curl(pde): diff(pde[(i+1) % 3], mis[(i+2) % 3]) eqs.append(new_pde.eqs[0]) - return LinearPDESystemOperator(pde.dim, *eqs) + return LinearPDESystemOperator(pde.dim, tuple(eqs)) def concat(*ops): @@ -373,7 +389,7 @@ def concat(*ops): eqs = list(ops[0].eqs) for op in ops[1:]: eqs.extend(list(op.eqs)) - return LinearPDESystemOperator(dim, *eqs) + return LinearPDESystemOperator(dim, eqs) def make_identity_diff_op(ninput, noutput=1, time_dependent=False): @@ -391,4 +407,4 @@ def make_identity_diff_op(ninput, noutput=1, time_dependent=False): else: mi = tuple([0]*ninput) eqs = [pmap({DerivativeIdentifier(mi, i): 1}) for i in range(noutput)] - return LinearPDESystemOperator(ninput, *eqs) + return LinearPDESystemOperator(ninput, eqs) From 371d28d8a45c55f54fd6b113e1ef688773002aad Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 13:37:15 -0500 Subject: [PATCH 105/335] Switch to ruff, fix issues --- .github/workflows/ci.yml | 13 +++------ .gitlab-ci.yml | 8 +++--- benchmarks/bench_translations.py | 4 +-- examples/expansion-toys.py | 3 ++- pyproject.toml | 45 ++++++++++++++++++++++++++++++++ setup.py | 2 +- sumpy/assignment_collection.py | 4 +-- sumpy/codegen.py | 2 +- sumpy/cse.py | 2 +- sumpy/expansion/__init__.py | 6 ++--- sumpy/kernel.py | 4 +-- sumpy/p2p.py | 2 +- sumpy/qbx.py | 5 ++-- sumpy/tools.py | 8 +++--- test/test_misc.py | 2 +- 15 files changed, 76 insertions(+), 34 deletions(-) create mode 100644 pyproject.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a2c714a6..0a1dcf6fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,20 +8,15 @@ on: - cron: '17 3 * * 0' jobs: - flake8: - name: Flake8 + ruff: + name: Ruff runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - # matches compat target in setup.py - python-version: '3.8' - name: "Main Script" run: | - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh - . ./prepare-and-run-flake8.sh "$(basename $GITHUB_REPOSITORY)" test examples benchmarks + pipx install ruff + ruff check pylint: name: Pylint diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 85b7eb079..2326e6539 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -118,13 +118,13 @@ Documentation: tags: - linux -Flake8: +Ruff: stage: test script: - - curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh - - . ./prepare-and-run-flake8.sh "$CI_PROJECT_NAME" test examples benchmarks + - pix install ruff + - ruff check tags: - - python3 + - docker-runner except: - tags diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index f8d718f41..8c31eb8b1 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -45,7 +45,7 @@ class TranslationBenchmarkSuite: def setup(self, param): logging.basicConfig(level=logging.INFO) - np.random.seed(17) + np.random.seed(17) # noqa: NPY002 if self.__class__ == TranslationBenchmarkSuite: raise NotImplementedError mpole_expn_class = self.mpole_expn_class @@ -78,7 +78,7 @@ def track_m2l_op_count(self, param): insns = to_loopy_insns(sac.assignments.items()) counter = pymbolic.mapper.flop_counter.CSEAwareFlopCounter() - return sum([counter.rec(insn.expression)+1 for insn in insns]) + return sum(counter.rec(insn.expression)+1 for insn in insns) track_m2l_op_count.unit = "ops" track_m2l_op_count.timeout = 300.0 diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index 48647d0ee..6e7d66b38 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -29,9 +29,10 @@ def main(): # HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3}, ) + rng = np.random.default_rng() pt_src = t.PointSources( tctx, - np.random.rand(2, 50) - 0.5, + rng.uniform(size=(2, 50)) - 0.5, np.ones(50)) fp = FieldPlotter([3, 0], extent=8) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..11cf370cf --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,45 @@ +[tool.ruff] +target-version = "py38" +preview = true + +[tool.ruff.lint] +extend-select = [ + "B", # flake8-bugbear + "C", # flake8-comprehensions + "E", # pycodestyle + "F", # pyflakes + "G", # flake8-logging-format + # "I", # flake8-isort + "N", # pep8-naming + "NPY", # numpy + "Q", # flake8-quotes + # "UP", # pyupgrade + # "RUF", # ruff + # "W", # pycodestyle +] +extend-ignore = [ + "C90", # McCabe complexity + "E221", # multiple spaces before operator + "E226", # missing whitespace around arithmetic operator + "E402", # module-level import not at top of file + "UP006", # updated annotations due to __future__ import + "UP007", # updated annotations due to __future__ import + "UP031", # use f-strings instead of % + "UP032", # use f-strings instead of .format + + # TODO + "E265", # comment format + "F841", # unused local +] + +[tool.ruff.lint.flake8-quotes] +docstring-quotes = "double" +inline-quotes = "double" +multiline-quotes = "double" + +[tool.ruff.lint.isort] +combine-as-imports = true +known-local-folder = [ + "pytools", +] +lines-after-imports = 2 diff --git a/setup.py b/setup.py index 359a3ea5b..c6fb7427d 100644 --- a/setup.py +++ b/setup.py @@ -50,7 +50,7 @@ def find_git_revision(tree_root): if retcode != 0: from warnings import warn - warn("unable to find git revision") + warn("unable to find git revision", stacklevel=1) return None return git_rev diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 81bb066f9..5115714d8 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -216,8 +216,8 @@ def run_global_cse(self, extra_exprs=None): del self.assignments[name] self.assignments[name] = new_expr - logger.info("common subexpression elimination: done after {dur:.2f} s" - .format(dur=time.time() - start_time)) + logger.info("common subexpression elimination: done after %.2f s", + time.time() - start_time) return new_extra_exprs # }}} diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 670d0729f..5c51cd9c7 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -481,7 +481,7 @@ def map_constant(self, expr, *args): if int(expr_as_float) != int(expr): from warnings import warn warn(f"Converting '{expr}' to " - f"'{self.float_type.__name__}' loses digits") + f"'{self.float_type.__name__}' loses digits", stacklevel=1) # Suppress further warnings. self.warn = False diff --git a/sumpy/cse.py b/sumpy/cse.py index f7023aa14..635c26f12 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -527,7 +527,7 @@ def rebuild(expr): try: sym = next(symbols) except StopIteration: - raise ValueError("Symbols iterator ran out of symbols.") + raise ValueError("Symbols iterator ran out of symbols.") from None subs[orig_expr] = sym replacements.append((sym, new_expr)) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index dc3ce3baa..493ff7108 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -734,9 +734,9 @@ def is_stored(mi): plog.done() - logger.debug("number of Taylor coefficients was reduced from {orig} to {red}" - .format(orig=len(self.get_full_coefficient_identifiers()), - red=len(stored_identifiers))) + logger.debug("number of Taylor coefficients was reduced from %d to %d", + len(self.get_full_coefficient_identifiers()), + len(stored_identifiers)) shape = (len(mis), len(stored_identifiers)) op = CSEMatVecOperator(from_input_coeffs_by_row, diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 760278093..d3edefa09 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1313,9 +1313,9 @@ class KernelMapper: def rec(self, kernel): try: method = getattr(self, kernel.mapper_method) - except AttributeError: + except AttributeError as err: raise RuntimeError("{} cannot handle {}".format( - type(self), type(kernel))) + type(self), type(kernel))) from err else: return method(kernel) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index c5acdd9d8..6babc2372 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -704,7 +704,7 @@ def get_optimized_kernel(self, max_nsources_in_one_box, for i, (array_name, array_size, array_dtype) in \ enumerate(zip(local_arrays, local_array_sizes, local_array_dtypes)): - if array_dtype not in [np.float, np.double]: + if issubclass(array_dtype.type, np.complexfloating): # pyopencl does not support complex data type vectors continue if array_size in [2, 3, 4, 8, 16]: diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 9c903ab17..19ff0f7fd 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -210,7 +210,8 @@ def get_optimized_kernel(self, ["isrc_outer", f"{itgt_name}_inner"]) else: from warnings import warn - warn(f"don't know how to tune layer potential computation for '{dev}'") + warn(f"don't know how to tune layer potential computation for '{dev}'", + stacklevel=1) loopy_knl = lp.split_iname(loopy_knl, itgt_name, 128, outer_tag="g.0") loopy_knl = self._allow_redundant_execution_of_knl_scaling(loopy_knl) @@ -574,7 +575,7 @@ def find_jump_term(kernel, arg_provider): elif tgt_count == 1: from warnings import warn warn("jump terms for mixed derivatives (1 src+1 tgt) only available " - "for the double-layer potential") + "for the double-layer potential", stacklevel=1) i, = tgt_derivatives assert isinstance(i, int) return ( diff --git a/sumpy/tools.py b/sumpy/tools.py index 13acbbab5..8c666b613 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -473,8 +473,8 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: logger.info("%s: kernel cache miss", self.name) if CACHING_ENABLED and not ( NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): - logger.info("{}: kernel cache miss [key={}]".format( - self.name, cache_key)) + logger.info("%s: kernel cache miss [key=%d]", + self.name, cache_key) from pytools import MinRecursionLimit with MinRecursionLimit(3000): @@ -666,8 +666,8 @@ def to_complex_dtype(dtype): np_type = np.dtype(dtype).type try: return to_complex_type_dict[np_type] - except KeyError: - raise RuntimeError(f"Unknown dtype: {dtype}") + except KeyError as err: + raise RuntimeError(f"Unknown dtype: {dtype}") from err @dataclass(frozen=True) diff --git a/test/test_misc.py b/test/test_misc.py index 9cee476cd..028425701 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -426,7 +426,7 @@ def test_as_scalar_pde_maxwell(): mu, epsilon = symbols("mu, epsilon") t = (0, 0, 0, 1) - pde = concat(curl(E) + diff(B, t), curl(B) - mu*epsilon*diff(E, t), + pde = concat(curl(E) + diff(B, t), curl(B) - mu*epsilon*diff(E, t), divergence(E), divergence(B)) as_scalar_pde(pde, 3) From c276919f868fb59359f2a489eca7ad62947dfa39 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 13:56:35 -0500 Subject: [PATCH 106/335] Enable RUF and UP rules --- benchmarks/bench_translations.py | 18 +++++++------- examples/expansion-toys.py | 2 +- pyproject.toml | 4 ++-- sumpy/__init__.py | 19 ++++++++++----- sumpy/cse.py | 2 +- sumpy/e2e.py | 39 ++++++++++++++++++------------- sumpy/e2p.py | 14 +++++------ sumpy/expansion/__init__.py | 2 +- sumpy/expansion/diff_op.py | 4 ++-- sumpy/expansion/level_to_order.py | 2 +- sumpy/expansion/local.py | 3 +-- sumpy/expansion/loopy.py | 4 ++-- sumpy/fmm.py | 2 +- sumpy/kernel.py | 12 +++++----- sumpy/p2e.py | 2 +- sumpy/p2p.py | 11 ++++----- sumpy/qbx.py | 7 +++--- sumpy/symbolic.py | 4 ++-- sumpy/tools.py | 3 ++- sumpy/toys.py | 4 ++-- test/test_cse.py | 10 ++++---- 21 files changed, 91 insertions(+), 77 deletions(-) diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index 8c31eb8b1..0601889c8 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -33,15 +33,15 @@ def __repr__(self): class TranslationBenchmarkSuite: - params = [ + params = ( Param(2, 10), Param(2, 15), Param(2, 20), Param(3, 5), Param(3, 10), - ] + ) - param_names = ["order"] + param_names = ("order",) def setup(self, param): logging.basicConfig(level=logging.INFO) @@ -88,10 +88,10 @@ class LaplaceVolumeTaylorTranslation(TranslationBenchmarkSuite): knl = LaplaceKernel local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion - params = [ + params = ( Param(2, 10), Param(3, 5), - ] + ) class LaplaceConformingVolumeTaylorTranslation(TranslationBenchmarkSuite): @@ -104,10 +104,10 @@ class HelmholtzVolumeTaylorTranslation(TranslationBenchmarkSuite): knl = HelmholtzKernel local_expn_class = VolumeTaylorLocalExpansion mpole_expn_class = VolumeTaylorMultipoleExpansion - params = [ + params = ( Param(2, 10), Param(3, 5), - ] + ) class HelmholtzConformingVolumeTaylorTranslation(TranslationBenchmarkSuite): @@ -120,8 +120,8 @@ class Helmholtz2DTranslation(TranslationBenchmarkSuite): knl = HelmholtzKernel local_expn_class = H2DLocalExpansion mpole_expn_class = H2DMultipoleExpansion - params = [ + params = ( Param(2, 10), Param(2, 15), Param(2, 20), - ] + ) diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index 6e7d66b38..e76e958d0 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -43,7 +43,7 @@ def main(): plt.show() mexp = t.multipole_expand(pt_src, [0, 0], 5) - mexp2 = t.multipole_expand(mexp, [0, 0.25]) # noqa: F841 + mexp2 = t.multipole_expand(mexp, [0, 0.25]) lexp = t.local_expand(mexp, [3, 0]) lexp2 = t.local_expand(lexp, [3, 1], 3) diff --git a/pyproject.toml b/pyproject.toml index 11cf370cf..19db2276a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,8 +13,8 @@ extend-select = [ "N", # pep8-naming "NPY", # numpy "Q", # flake8-quotes - # "UP", # pyupgrade - # "RUF", # ruff + "UP", # pyupgrade + "RUF", # ruff # "W", # pycodestyle ] extend-ignore = [ diff --git a/sumpy/__init__.py b/sumpy/__init__.py index d03122e14..e4daaaae7 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -32,13 +32,20 @@ from pytools.persistent_dict import WriteOncePersistentDict __all__ = [ - "P2P", "P2PFromCSR", - "P2EFromSingleBox", "P2EFromCSR", - "E2PFromSingleBox", "E2PFromCSR", - "E2EFromCSR", "E2EFromChildren", "E2EFromParent", - "M2LUsingTranslationClassesDependentData", + "P2P", + "E2EFromCSR", + "E2EFromChildren", + "E2EFromParent", + "E2PFromCSR", + "E2PFromSingleBox", "M2LGenerateTranslationClassesDependentData", - "M2LPreprocessMultipole", "M2LPostprocessLocal"] + "M2LPostprocessLocal", + "M2LPreprocessMultipole", + "M2LUsingTranslationClassesDependentData", + "P2EFromCSR", + "P2EFromSingleBox", + "P2PFromCSR", +] code_cache = WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT, diff --git a/sumpy/cse.py b/sumpy/cse.py index 635c26f12..c401e84fb 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -304,7 +304,7 @@ def match_common_args(func_class, funcs, opt_subs): # This makes us try combining smaller matches first. common_arg_candidates = OrderedSet(sorted( common_arg_candidates_counts.keys(), - key=lambda k: (common_arg_candidates_counts[k], k))) # noqa: B023 + key=lambda k: (common_arg_candidates_counts[k], k))) while common_arg_candidates: j = common_arg_candidates.pop(last=False) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index c66f9c022..4167d993a 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -257,9 +257,10 @@ def get_kernel(self): shape=("nsrc_level_boxes", ncoeff_src), offset=lp.auto), lp.GlobalArg("tgt_expansions", None, shape=("ntgt_level_boxes", ncoeff_tgt), offset=lp.auto), - "..." - ] + gather_loopy_arguments([self.src_expansion, - self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, + self.tgt_expansion]) + ], name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", @@ -489,9 +490,10 @@ def get_kernel(self, result_dtype): offset=lp.auto), lp.ValueArg("ntranslation_classes, ntranslation_classes_lists", np.int32), - ... - ] + gather_loopy_arguments([self.src_expansion, - self.tgt_expansion]), + ..., + *gather_loopy_arguments([self.src_expansion, + self.tgt_expansion]) + ], name=self.name, assumptions="ntgt_boxes>=1", default_offset=lp.auto, @@ -600,8 +602,9 @@ def get_kernel(self, result_dtype): lp.ValueArg("ntranslation_classes", np.int32), lp.ValueArg("ntranslation_vectors", np.int32), lp.ValueArg("translation_classes_level_start", np.int32), - "..." - ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) + ], name=self.name, assumptions="ntranslation_classes>=1", default_offset=lp.auto, @@ -712,8 +715,9 @@ def get_kernel(self, result_dtype): lp.GlobalArg("preprocessed_src_expansions", None, shape=("nsrc_boxes", npreprocessed_src_coeffs), offset=lp.auto), - "..." - ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) + ], name=self.name, assumptions="nsrc_boxes>=1", fixed_parameters={ @@ -807,8 +811,9 @@ def get_kernel(self, result_dtype): lp.GlobalArg("tgt_expansions_before_postprocessing", None, shape=("ntgt_boxes", ntgt_coeffs_before_postprocessing), offset=lp.auto), - "..." - ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) + ], name=self.name, assumptions="ntgt_boxes>=1", default_offset=lp.auto, @@ -931,8 +936,9 @@ def get_kernel(self): lp.ValueArg("src_base_ibox,tgt_base_ibox", np.int32), lp.ValueArg("ntgt_level_boxes,nsrc_level_boxes", np.int32), lp.ValueArg("aligned_nboxes", np.int32), - "..." - ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) + ], name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", @@ -1036,8 +1042,9 @@ def get_kernel(self): shape=("ntgt_level_boxes", ncoeffs_tgt), offset=lp.auto), lp.GlobalArg("src_expansions", None, shape=("nsrc_level_boxes", ncoeffs_src), offset=lp.auto), - "..." - ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), + "...", + *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) + ], name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", fixed_parameters={"dim": self.dim, "nchildren": 2**self.dim}, diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 55af69b3a..f19ca7d74 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -97,7 +97,7 @@ def add_loopy_eval_callable( return loopy_knl def get_loopy_args(self): - return gather_loopy_arguments((self.expansion,) + tuple(self.kernels)) + return gather_loopy_arguments((self.expansion, *tuple(self.kernels))) def get_kernel_scaling_assignment(self): from sumpy.symbolic import SympyToPymbolicMapper @@ -128,9 +128,9 @@ def get_kernel(self): "{[itgt,idim]: itgt_start<=itgt tgt_ibox = target_boxes[itgt_box] <> itgt_start = box_target_starts[tgt_ibox] @@ -243,9 +243,9 @@ def get_kernel(self): "{[idim]: 0<=idim tgt_ibox = target_boxes[itgt_box] <> itgt_start = box_target_starts[tgt_ibox] diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 493ff7108..294337dc4 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -419,7 +419,7 @@ def mi_key(ident): mi = ident.mi else: mi = ident - return tuple([sum(mi)] + list(reversed(mi))) + return (sum(mi), *list(reversed(mi))) return mi_key, axis_permutation # }}} diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 8d8700bac..bca672c7d 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -122,7 +122,7 @@ def __sub__(self, other_diff_op): return self + (-1)*other_diff_op def __repr__(self): - return f"LinearPDESystemOperator({self.dim}, {repr(self.eqs)})" + return f"LinearPDESystemOperator({self.dim}, {self.eqs!r})" def __getitem__(self, idx): item = self.eqs.__getitem__(idx) @@ -313,7 +313,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ indices.add(deriv_ident.vec_idx) # this is already a scalar pde - if len(indices) == 1 and list(indices)[0] == comp_idx: + if len(indices) == 1 and next(iter(indices)) == comp_idx: return pde return _get_all_scalar_pdes(pde)[comp_idx] diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 82db1aef2..9c9f13103 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -133,7 +133,7 @@ def __call__(self, kernel, kernel_args, tree, level): laplace_order = int(np.ceil( (np.log(self.tol) - np.log(self.err_const_laplace)) - / # noqa: W504 + / np.log( np.sqrt(tree.dimensions)/3 ) - 1)) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 7f0607f0d..13933d736 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -340,8 +340,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, for axis in {d for d, _ in tgt_split}: # Use the axis as the first dimension to vary so that the below # algorithm is O(p^{d+1}) for full and O(p^{d}) for compressed - dims = [axis] + list(range(axis)) + \ - list(range(axis+1, self.dim)) + dims = [axis, *list(range(axis)), *list(range(axis + 1, self.dim))] # Start with source coefficients. Gets updated after each axis. cur_dim_input_coeffs = src_coeffs # O(1) iterations diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 00bbd3dbe..20be150a9 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -64,7 +64,7 @@ def make_e2p_loopy_kernel( expression="target[idim]-center[idim]", temp_var_type=lp.Optional(None), )) - target_args = gather_loopy_arguments((expansion,) + tuple(kernels)) + target_args = gather_loopy_arguments((expansion, *tuple(kernels))) coeff_exprs = sym.make_sym_vector("coeffs", ncoeffs) coeff_names = [ @@ -159,7 +159,7 @@ def make_p2e_loopy_kernel( expression="center[idim]-source[idim]", temp_var_type=lp.Optional(None), )) - source_args = gather_loopy_source_arguments((expansion,) + tuple(kernels)) + source_args = gather_loopy_source_arguments((expansion, *tuple(kernels))) all_strengths = sym.make_sym_vector("strength", nstrengths) strengths = [all_strengths[i] for i in strength_usage] diff --git a/sumpy/fmm.py b/sumpy/fmm.py index de7ac6aec..d956c100b 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -28,7 +28,7 @@ import pyopencl as cl -import pyopencl.array # noqa +import pyopencl.array from pytools import memoize_method from boxtree.fmm import TreeIndependentDataForWrangler, ExpansionWranglerInterface diff --git a/sumpy/kernel.py b/sumpy/kernel.py index d3edefa09..0c68aa15d 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -160,7 +160,7 @@ def __hash__(self): try: return self.hash_value except AttributeError: - self.hash_value = hash((type(self),) + self.__getinitargs__()) + self.hash_value = hash((type(self), *self.__getinitargs__())) return self.hash_value def update_persistent_hash(self, key_hash, key_builder): @@ -692,7 +692,7 @@ def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): # See (Berger and Karageorghis 2001) expr = ( -var("log")(r)*((3 - 4 * nu) if icomp == jcomp else 0) - + # noqa: W504 + + d[icomp]*d[jcomp]/r**2 ) scaling = -1/(8*var("pi")*(1 - nu)*mu) @@ -703,7 +703,7 @@ def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): # Kelvin solution expr = ( (1/r)*((3 - 4*nu) if icomp == jcomp else 0) - + # noqa: W504 + + d[icomp]*d[jcomp]/r**3 ) scaling = -1/(16*var("pi")*(1 - nu)*mu) @@ -1081,7 +1081,7 @@ def map_subscript(self, expr): if expr.aggregate.name == self.vec_name \ and isinstance(expr.index, int): return CommonSubexpression( - expr.aggregate.index((expr.index,) + self.additional_indices), + expr.aggregate.index((expr.index, *self.additional_indices)), prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr) @@ -1231,8 +1231,8 @@ def get_source_args(self): None, shape=(self.dim, "nsources"), offset=lp.auto), - ) - ] + self.inner_kernel.get_source_args() + ), + *self.inner_kernel.get_source_args()] def prepare_loopy_kernel(self, loopy_knl): loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) diff --git a/sumpy/p2e.py b/sumpy/p2e.py index acc7e7269..7268275c2 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -102,7 +102,7 @@ def add_loopy_form_callable( def get_loopy_args(self): from sumpy.tools import gather_loopy_source_arguments return gather_loopy_source_arguments( - (self.expansion,) + tuple(self.source_kernels)) + (self.expansion, *tuple(self.source_kernels))) def get_cache_key(self): return (type(self).__name__, self.name, self.expansion, diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 6babc2372..ed3e80129 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -210,14 +210,13 @@ def default_name(self): def get_kernel(self): loopy_insns, result_names = self.get_loopy_insns_and_result_names() - arguments = ( - self.get_default_src_tgt_arguments() - + [ + arguments = [ + *self.get_default_src_tgt_arguments(), lp.GlobalArg("strength", None, shape="nstrengths, nsources", dim_tags="sep,C"), lp.GlobalArg("result", None, shape="nresults, ntargets", dim_tags="sep,C") - ]) + ] loopy_knl = lp.make_kernel([""" {[itgt, isrc, idim]: \ @@ -454,8 +453,8 @@ def default_name(self): def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, work_items_per_group=32): loopy_insns, result_names = self.get_loopy_insns_and_result_names() - arguments = self.get_default_src_tgt_arguments() \ - + [ + arguments = [ + *self.get_default_src_tgt_arguments(), lp.GlobalArg("box_target_starts", None, shape=None), lp.GlobalArg("box_target_counts_nonchild", diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 19ff0f7fd..345d251aa 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -168,7 +168,7 @@ def get_kernel_exprs(self, result_names): def get_default_src_tgt_arguments(self): from sumpy.tools import gather_loopy_source_arguments - return ([ + return [ lp.GlobalArg("sources", None, shape=(self.dim, "nsources"), order="C"), lp.GlobalArg("targets", None, @@ -178,8 +178,9 @@ def get_default_src_tgt_arguments(self): lp.GlobalArg("expansion_radii", None, shape="ntargets"), lp.ValueArg("nsources", None), - lp.ValueArg("ntargets", None)] - + gather_loopy_source_arguments(self.source_kernels)) + lp.ValueArg("ntargets", None), + *gather_loopy_source_arguments(self.source_kernels) + ] def get_kernel(self): raise NotImplementedError diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 48d43a5ef..089b1507c 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -129,13 +129,13 @@ def _coeff_isneg(a): if USE_SYMENGINE: - def UnevaluatedExpr(x): # noqa: F811, N802 + def UnevaluatedExpr(x): # noqa: N802 return x else: try: from sympy import UnevaluatedExpr except ImportError: - def UnevaluatedExpr(x): # noqa: F811, N802 + def UnevaluatedExpr(x): # noqa: N802 return x diff --git a/sumpy/tools.py b/sumpy/tools.py index 8c666b613..6b8b68825 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -955,7 +955,8 @@ def run_opencl_fft( queue: "pyopencl.CommandQueue", input_vec: Any, inverse: bool = False, - wait_for: List["pyopencl.Event"] = None) -> Tuple["pyopencl.Event", Any]: + wait_for: Optional[List["pyopencl.Event"]] = None + ) -> Tuple["pyopencl.Event", Any]: """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. diff --git a/sumpy/toys.py b/sumpy/toys.py index 41117eedb..45d71425e 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -35,9 +35,9 @@ if TYPE_CHECKING: from sumpy.kernel import Kernel from sumpy.visualization import FieldPlotter - import pyopencl # noqa: F401 + import pyopencl -import numpy as np # noqa: F401 +import numpy as np import loopy as lp # noqa: F401 import pyopencl as cl import pyopencl.array diff --git a/test/test_cse.py b/test/test_cse.py index e84548c7c..e88407880 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -142,8 +142,8 @@ def test_cse_not_possible(): assert substs == [] assert reduced == [x + y] # issue 6329 - eq = (meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment # noqa: E501 - + meijerg((1, 3), (y, 4), (5,), [], x)) # pylint: disable=possibly-used-before-assignment # noqa: E501 + eq = (meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment + + meijerg((1, 3), (y, 4), (5,), [], x)) # pylint: disable=possibly-used-before-assignment assert cse(eq) == ([], [eq]) # }}} @@ -168,7 +168,7 @@ def test_subtraction_opt(): # Make sure subtraction is optimized. e = (x - y)*(z - y) + sym.exp((x - y)*(z - y)) substs, reduced = cse( - [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) # pylint: disable=possibly-used-before-assignment # noqa: E501 + [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) # pylint: disable=possibly-used-before-assignment assert substs == [(x0, (x - y)*(y - z))] assert reduced == [-x0 + sym.exp(-x0)] e = -(x - y)*(z - y) + sym.exp(-(x - y)*(z - y)) @@ -180,7 +180,7 @@ def test_subtraction_opt(): n = -1 + 1/x e = n/x/(-n)**2 - 1/n/x assert cse(e, optimizations=[ - (cse_opts.sub_pre, cse_opts.sub_post)] # pylint: disable=possibly-used-before-assignment # noqa: E501 + (cse_opts.sub_pre, cse_opts.sub_post)] # pylint: disable=possibly-used-before-assignment ) == ([], [0]) # }}} @@ -332,7 +332,7 @@ def test_issue_6169(): assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism - assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y # pylint: disable=possibly-used-before-assignment # noqa: E501 + assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y # pylint: disable=possibly-used-before-assignment # }}} From 3a60a8d4001a4f5ecf3db273bc5d7cd56e928ab0 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 13:59:20 -0500 Subject: [PATCH 107/335] Enable I (isort) rule --- benchmarks/bench_translations.py | 22 +++++++----- doc/conf.py | 1 + examples/curve-pot.py | 10 ++++-- examples/curve.py | 1 - examples/expansion-toys.py | 6 ++-- examples/sym-exp-complexity.py | 15 ++++---- pyproject.toml | 11 ++++-- setup.py | 8 +++-- sumpy/__init__.py | 22 ++++++++---- sumpy/array_context.py | 7 ++-- sumpy/assignment_collection.py | 4 ++- sumpy/codegen.py | 16 +++++---- sumpy/cse.py | 6 ++-- sumpy/derivative_taker.py | 11 +++--- sumpy/distributed.py | 7 ++-- sumpy/e2e.py | 24 ++++++++----- sumpy/e2p.py | 11 +++--- sumpy/expansion/__init__.py | 24 +++++++------ sumpy/expansion/diff_op.py | 16 +++++---- sumpy/expansion/level_to_order.py | 13 ++++--- sumpy/expansion/local.py | 20 ++++++----- sumpy/expansion/loopy.py | 14 +++++--- sumpy/expansion/m2l.py | 33 +++++++++++------- sumpy/expansion/multipole.py | 14 ++++---- sumpy/fmm.py | 40 ++++++++++++++-------- sumpy/kernel.py | 57 ++++++++++++++++++------------- sumpy/p2e.py | 13 ++++--- sumpy/p2p.py | 14 +++++--- sumpy/point_calculus.py | 5 ++- sumpy/qbx.py | 23 +++++++------ sumpy/symbolic.py | 17 ++++++--- sumpy/tools.py | 5 ++- sumpy/toys.py | 29 ++++++++++------ sumpy/version.py | 2 ++ sumpy/visualization.py | 6 ++-- test/test_codegen.py | 14 ++++---- test/test_cse.py | 16 +++++---- test/test_distributed.py | 7 ++-- test/test_fmm.py | 44 +++++++++++------------- test/test_kernels.py | 44 +++++++++++++----------- test/test_matrixgen.py | 13 +++---- test/test_misc.py | 55 +++++++++++++++++------------ test/test_qbx.py | 14 ++++---- test/test_tools.py | 13 +++---- 44 files changed, 451 insertions(+), 296 deletions(-) diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index 0601889c8..8cd52af47 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -1,18 +1,24 @@ +import logging + import numpy as np from pyopencl.tools import ( # noqa - pytest_generate_tests_for_pyopencl as pytest_generate_tests) + pytest_generate_tests_for_pyopencl as pytest_generate_tests, +) -from sumpy.expansion.multipole import ( - VolumeTaylorMultipoleExpansion, H2DMultipoleExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion) from sumpy.expansion.local import ( - VolumeTaylorLocalExpansion, H2DLocalExpansion, - LinearPDEConformingVolumeTaylorLocalExpansion) + H2DLocalExpansion, + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, +) +from sumpy.expansion.multipole import ( + H2DMultipoleExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, +) +from sumpy.kernel import HelmholtzKernel, LaplaceKernel -from sumpy.kernel import LaplaceKernel, HelmholtzKernel -import logging logger = logging.getLogger(__name__) import pymbolic.mapper.flop_counter diff --git a/doc/conf.py b/doc/conf.py index 0780e3d3d..ed5049e54 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,6 +1,7 @@ import os from urllib.request import urlopen + _conf_url = \ "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py" with urlopen(_conf_url) as _inf: diff --git a/examples/curve-pot.py b/examples/curve-pot.py index db2c667c7..85de64eb6 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -3,6 +3,7 @@ import pyopencl as cl + try: import matplotlib.pyplot as plt USE_MATPLOTLIB = True @@ -16,6 +17,8 @@ USE_MAYAVI = False import logging + + logging.basicConfig(level=logging.INFO) @@ -72,9 +75,9 @@ def draw_pot_figure(aspect_ratio, # {{{ make p2p kernel calculator - from sumpy.p2p import P2P - from sumpy.kernel import LaplaceKernel, HelmholtzKernel from sumpy.expansion.local import H2DLocalExpansion, LineTaylorLocalExpansion + from sumpy.kernel import HelmholtzKernel, LaplaceKernel + from sumpy.p2p import P2P if helmholtz_k: if isinstance(helmholtz_k, complex): knl = HelmholtzKernel(2, allow_evanescent=True) @@ -178,9 +181,10 @@ def map_to_curve(t): from fourier import make_fourier_interp_matrix fim = make_fourier_interp_matrix(novsmp, nsrc) - from sumpy.tools import build_matrix from scipy.sparse.linalg import LinearOperator + from sumpy.tools import build_matrix + def apply_lpot(x): xovsmp = np.dot(fim, x) evt, (y,) = lpot(actx.queue, diff --git a/examples/curve.py b/examples/curve.py index 589ad16e7..760db5f77 100644 --- a/examples/curve.py +++ b/examples/curve.py @@ -1,5 +1,4 @@ import numpy as np - import scipy as sp import scipy.fftpack diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index e76e958d0..395929e7c 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -3,11 +3,9 @@ import pyopencl as cl import sumpy.toys as t +from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401 from sumpy.visualization import FieldPlotter -from sumpy.kernel import ( # noqa: F401 - YukawaKernel, - HelmholtzKernel, - LaplaceKernel) + try: import matplotlib.pyplot as plt diff --git a/examples/sym-exp-complexity.py b/examples/sym-exp-complexity.py index 138c9c871..bc88cdf0c 100644 --- a/examples/sym-exp-complexity.py +++ b/examples/sym-exp-complexity.py @@ -1,16 +1,17 @@ import numpy as np -import loopy as lp +import loopy as lp import pyopencl as cl -from sumpy.kernel import LaplaceKernel, HelmholtzKernel +from sumpy.e2e import E2EFromCSR from sumpy.expansion.local import ( - LinearPDEConformingVolumeTaylorLocalExpansion, - ) + LinearPDEConformingVolumeTaylorLocalExpansion, +) from sumpy.expansion.multipole import ( - LinearPDEConformingVolumeTaylorMultipoleExpansion, - ) -from sumpy.e2e import E2EFromCSR + LinearPDEConformingVolumeTaylorMultipoleExpansion, +) +from sumpy.kernel import HelmholtzKernel, LaplaceKernel + try: import matplotlib.pyplot as plt diff --git a/pyproject.toml b/pyproject.toml index 19db2276a..519401633 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ extend-select = [ "E", # pycodestyle "F", # pyflakes "G", # flake8-logging-format - # "I", # flake8-isort + "I", # flake8-isort "N", # pep8-naming "NPY", # numpy "Q", # flake8-quotes @@ -39,7 +39,14 @@ multiline-quotes = "double" [tool.ruff.lint.isort] combine-as-imports = true -known-local-folder = [ +known-first-party = [ "pytools", + "pymbolic", + "arraycontext", + "loopy", + "pyopencl", +] +known-local-folder = [ + "sumpy", ] lines-after-imports = 2 diff --git a/setup.py b/setup.py index c6fb7427d..59c7f9b87 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,11 @@ #!/usr/bin/env python import os -from setuptools import setup from pathlib import Path +from setuptools import setup + + ver_dic = {} version_file = open("sumpy/version.py") try: @@ -22,14 +24,14 @@ def find_git_revision(tree_root): # Keep this routine self-contained so that it can be copy-pasted into # setup.py. - from os.path import join, exists, abspath + from os.path import abspath, exists, join tree_root = abspath(tree_root) if not exists(join(tree_root, ".git")): return None - from subprocess import Popen, PIPE, STDOUT + from subprocess import PIPE, STDOUT, Popen p = Popen( ["git", "rev-parse", "HEAD"], diff --git a/sumpy/__init__.py b/sumpy/__init__.py index e4daaaae7..29c5904b8 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -21,15 +21,23 @@ """ import os -from sumpy.p2p import P2P, P2PFromCSR -from sumpy.p2e import P2EFromSingleBox, P2EFromCSR -from sumpy.e2p import E2PFromSingleBox, E2PFromCSR -from sumpy.e2e import (E2EFromCSR, E2EFromChildren, E2EFromParent, + +from pytools.persistent_dict import WriteOncePersistentDict + +from sumpy.e2e import ( + E2EFromChildren, + E2EFromCSR, + E2EFromParent, + M2LGenerateTranslationClassesDependentData, + M2LPostprocessLocal, + M2LPreprocessMultipole, M2LUsingTranslationClassesDependentData, - M2LGenerateTranslationClassesDependentData, M2LPreprocessMultipole, - M2LPostprocessLocal) +) +from sumpy.e2p import E2PFromCSR, E2PFromSingleBox +from sumpy.p2e import P2EFromCSR, P2EFromSingleBox +from sumpy.p2p import P2P, P2PFromCSR from sumpy.version import VERSION_TEXT -from pytools.persistent_dict import WriteOncePersistentDict + __all__ = [ "P2P", diff --git a/sumpy/array_context.py b/sumpy/array_context.py index 3c3288495..21432af35 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -21,9 +21,12 @@ """ from boxtree.array_context import PyOpenCLArrayContext as PyOpenCLArrayContextBase + from arraycontext.pytest import ( - _PytestPyOpenCLArrayContextFactoryWithClass, - register_pytest_array_context_factory) + _PytestPyOpenCLArrayContextFactoryWithClass, + register_pytest_array_context_factory, +) + __doc__ = """ Array Context diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 5115714d8..204d0fd4f 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -21,9 +21,11 @@ """ +import logging + import sumpy.symbolic as sym -import logging + logger = logging.getLogger(__name__) __doc__ = """ diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 5c51cd9c7..139a17b06 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -21,20 +21,20 @@ """ +import logging import re import numpy as np -import loopy as lp -from loopy.kernel.instruction import make_assignment -from pymbolic.mapper import IdentityMapper, CSECachingMapperMixin +import loopy as lp import pymbolic.primitives as prim - +from loopy.kernel.instruction import make_assignment +from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper from pytools import memoize_method -from sumpy.symbolic import (SympyToPymbolicMapper as SympyToPymbolicMapperBase) +from sumpy.symbolic import SympyToPymbolicMapper as SympyToPymbolicMapperBase + -import logging logger = logging.getLogger(__name__) @@ -52,6 +52,8 @@ # {{{ sympy -> pymbolic mapper import sumpy.symbolic as sym + + _SPECIAL_FUNCTION_NAMES = frozenset(dir(sym.functions)) @@ -654,8 +656,8 @@ def _map(method_name, self, expr, rec_self=None, *args): return self.rec(new_expr) return expr - from functools import partial import types + from functools import partial combine_mapper = CombinedMapper(all_methods) for method_name in all_methods.keys(): setattr(combine_mapper, method_name, diff --git a/sumpy/cse.py b/sumpy/cse.py index c401e84fb..35b399802 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -64,9 +64,11 @@ # }}} -from sumpy.symbolic import ( - Basic, Mul, Add, Pow, Symbol, _coeff_isneg, Derivative, Subs) from sympy.utilities.iterables import numbered_symbols + +from sumpy.symbolic import Add, Basic, Derivative, Mul, Pow, Subs, Symbol, _coeff_isneg + + try: from sympy.utilities.iterables import iterable except ImportError: diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 86b8a0240..7e6192026 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -35,15 +35,16 @@ .. autoclass:: DifferentiatedExprDerivativeTaker """ -from pytools.tag import tag_dataclass +import logging +from typing import Any, Dict, Tuple import numpy as np -import sumpy.symbolic as sym -from sumpy.tools import add_to_sac, add_mi -from typing import Dict, Tuple, Any +from pytools.tag import tag_dataclass + +import sumpy.symbolic as sym +from sumpy.tools import add_mi, add_to_sac -import logging logger = logging.getLogger(__name__) diff --git a/sumpy/distributed.py b/sumpy/distributed.py index 1707e5e6a..e0b6ee3b1 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -21,9 +21,11 @@ """ from boxtree.distributed.calculation import DistributedExpansionWrangler -from sumpy.fmm import SumpyExpansionWrangler + import pyopencl as cl +from sumpy.fmm import SumpyExpansionWrangler + class DistributedSumpyExpansionWrangler( DistributedExpansionWrangler, SumpyExpansionWrangler): @@ -78,8 +80,9 @@ def reorder_sources(self, source_array): def reorder_potentials(self, potentials): if self.comm.Get_rank() == 0: - from pytools.obj_array import obj_array_vectorize import numpy as np + + from pytools.obj_array import obj_array_vectorize assert ( isinstance(potentials, np.ndarray) and potentials.dtype.char == "O") diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 4167d993a..c57a90b35 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -20,19 +20,21 @@ THE SOFTWARE. """ +import logging from abc import ABC, abstractmethod import numpy as np + import loopy as lp -import sumpy.symbolic as sym import pymbolic - from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import KernelCacheMixin, to_complex_dtype -from sumpy.codegen import register_optimization_preambles from pytools import memoize_method -import logging +import sumpy.symbolic as sym +from sumpy.codegen import register_optimization_preambles +from sumpy.tools import KernelCacheMixin, to_complex_dtype + + logger = logging.getLogger(__name__) @@ -66,16 +68,20 @@ def __init__(self, ctx, src_expansion, tgt_expansion, device = ctx.devices[0] if src_expansion is tgt_expansion: - from sumpy.kernel import (TargetTransformationRemover, - SourceTransformationRemover) + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) tgt_expansion = src_expansion = src_expansion.with_kernel( SourceTransformationRemover()( TargetTransformationRemover()(src_expansion.kernel))) else: - from sumpy.kernel import (TargetTransformationRemover, - SourceTransformationRemover) + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) src_expansion = src_expansion.with_kernel( SourceTransformationRemover()( TargetTransformationRemover()(src_expansion.kernel))) diff --git a/sumpy/e2p.py b/sumpy/e2p.py index f19ca7d74..07066f39a 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -23,11 +23,12 @@ from abc import ABC, abstractmethod import numpy as np + import loopy as lp +from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import KernelCacheMixin, gather_loopy_arguments from sumpy.codegen import register_optimization_preambles -from loopy.version import MOST_RECENT_LANGUAGE_VERSION +from sumpy.tools import KernelCacheMixin, gather_loopy_arguments __doc__ = """ @@ -58,8 +59,10 @@ def __init__(self, ctx, expansion, kernels, if device is None: device = ctx.devices[0] - from sumpy.kernel import (SourceTransformationRemover, - TargetTransformationRemover) + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) sxr = SourceTransformationRemover() txr = TargetTransformationRemover() expansion = expansion.with_kernel( diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 294337dc4..e2edd47c2 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -20,19 +20,19 @@ THE SOFTWARE. """ +import logging from abc import ABC, abstractmethod -from typing import ( - Any, ClassVar, Dict, Hashable, List, Optional, Sequence, Tuple, Type) +from typing import Any, ClassVar, Dict, Hashable, List, Optional, Sequence, Tuple, Type -from pytools import memoize_method import loopy as lp +import pymbolic.primitives as prim +from pytools import memoize_method import sumpy.symbolic as sym from sumpy.kernel import Kernel from sumpy.tools import add_mi -import pymbolic.primitives as prim -import logging + logger = logging.getLogger(__name__) @@ -284,8 +284,8 @@ def get_full_coefficient_identifiers(self) -> List[Hashable]: Returns identifiers for every coefficient in the complete expansion. """ from pytools import ( - generate_nonnegative_integer_tuples_summing_to_at_most - as gnitstam) + generate_nonnegative_integer_tuples_summing_to_at_most as gnitstam, + ) res = sorted(gnitstam(self.order, self.dim), key=sum) @@ -948,8 +948,9 @@ def get_local_expansion_class(self, base_kernel): :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.local import ( - LinearPDEConformingVolumeTaylorLocalExpansion, - VolumeTaylorLocalExpansion) + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, + ) try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorLocalExpansion @@ -961,8 +962,9 @@ def get_multipole_expansion_class(self, base_kernel): :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.multipole import ( - LinearPDEConformingVolumeTaylorMultipoleExpansion, - VolumeTaylorMultipoleExpansion) + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, + ) try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorMultipoleExpansion diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index bca672c7d..bc439e516 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -20,15 +20,19 @@ THE SOFTWARE. """ +import logging from dataclasses import dataclass -from pyrsistent import pmap -from pytools import memoize -from sumpy.tools import add_mi from itertools import accumulate -import sumpy.symbolic as sym -import logging from typing import List, Mapping, Sequence + import sympy as sp +from pyrsistent import pmap + +from pytools import memoize + +import sumpy.symbolic as sym +from sumpy.tools import add_mi + logger = logging.getLogger(__name__) @@ -139,7 +143,7 @@ def total_dims(self): return len(did.mi) def to_sym(self, fnames=None): - from sumpy.symbolic import make_sym_vector, Function + from sumpy.symbolic import Function, make_sym_vector x = list(make_sym_vector("x", self.dim)) x += list(make_sym_vector("t", self.total_dims - self.dim)) diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 9c9f13103..37a729b98 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -48,9 +48,14 @@ def __init__(self, tol, extra_order=0): self.extra_order = extra_order def __call__(self, kernel, kernel_args, tree, level): - from pyfmmlib import ( # pylint: disable=no-name-in-module - l2dterms, l3dterms, h2dterms, h3dterms) - from sumpy.kernel import LaplaceKernel, HelmholtzKernel + from pyfmmlib import ( # pylint: disable=no-name-in-module + h2dterms, + h3dterms, + l2dterms, + l3dterms, + ) + + from sumpy.kernel import HelmholtzKernel, LaplaceKernel if isinstance(kernel, LaplaceKernel): if tree.dimensions == 2: @@ -127,7 +132,7 @@ def __init__(self, tol, err_const_laplace=0.01, err_const_helmholtz=100, self.extra_order = extra_order def __call__(self, kernel, kernel_args, tree, level): - from sumpy.kernel import LaplaceKernel, HelmholtzKernel + from sumpy.kernel import HelmholtzKernel, LaplaceKernel assert isinstance(kernel, (LaplaceKernel, HelmholtzKernel)) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 13933d736..512ba782a 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -20,6 +20,7 @@ THE SOFTWARE. """ +import logging import math from abc import abstractmethod @@ -27,13 +28,14 @@ import sumpy.symbolic as sym from sumpy.expansion import ( - ExpansionBase, - VolumeTaylorExpansion, - VolumeTaylorExpansionMixin, - LinearPDEConformingVolumeTaylorExpansion) + ExpansionBase, + LinearPDEConformingVolumeTaylorExpansion, + VolumeTaylorExpansion, + VolumeTaylorExpansionMixin, +) from sumpy.tools import add_to_sac, mi_increment_axis -import logging + logger = logging.getLogger(__name__) __doc__ = """ @@ -225,7 +227,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): coeffs, rscale, sac=sac)) bvec_scaled = [b*rscale**-1 for b in bvec] - from sumpy.tools import mi_power, mi_factorial + from sumpy.tools import mi_factorial, mi_power result = sum( coeff @@ -490,7 +492,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): if not self.use_rscale: rscale = 1 - from sumpy.symbolic import sym_real_norm_2, Hankel1 + from sumpy.symbolic import Hankel1, sym_real_norm_2 arg_scale = self.get_bessel_arg_scaling() @@ -507,7 +509,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): if not self.use_rscale: rscale = 1 - from sumpy.symbolic import sym_real_norm_2, BesselJ + from sumpy.symbolic import BesselJ, sym_real_norm_2 bvec_len = sym_real_norm_2(bvec) target_angle_rel_center = sym.atan2(bvec[1], bvec[0]) @@ -522,7 +524,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): - from sumpy.symbolic import sym_real_norm_2, BesselJ + from sumpy.symbolic import BesselJ, sym_real_norm_2 if not self.use_rscale: src_rscale = 1 diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 20be150a9..6c4ad3704 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -20,17 +20,21 @@ THE SOFTWARE. """ +import logging from typing import Sequence -import pymbolic -import loopy as lp + import numpy as np -from sumpy.expansion import ExpansionBase -from sumpy.kernel import Kernel + +import loopy as lp +import pymbolic + import sumpy.symbolic as sym from sumpy.assignment_collection import SymbolicAssignmentCollection +from sumpy.expansion import ExpansionBase +from sumpy.kernel import Kernel from sumpy.tools import gather_loopy_arguments, gather_loopy_source_arguments -import logging + logger = logging.getLogger(__name__) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 9a75f8ea6..951b76ab3 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -20,17 +20,19 @@ THE SOFTWARE. """ +import logging from abc import ABC, abstractmethod from typing import Any, ClassVar, Tuple -import pymbolic -import loopy as lp import numpy as np + +import loopy as lp +import pymbolic + import sumpy.symbolic as sym -from sumpy.tools import ( - add_to_sac, matvec_toeplitz_upper_triangular) +from sumpy.tools import add_to_sac, matvec_toeplitz_upper_triangular + -import logging logger = logging.getLogger(__name__) __doc__ = """ @@ -69,8 +71,10 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): """Returns a subclass of :class:`M2LTranslationBase` suitable for *base_kernel* and *local_expansion_class*. """ - from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion) + from sumpy.expansion.local import ( + VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion, + ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LTranslation elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): @@ -89,8 +93,10 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): """Returns a subclass of :class:`M2LTranslationBase` suitable for *base_kernel* and *local_expansion_class*. """ - from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion) + from sumpy.expansion.local import ( + VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion, + ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LWithFFT elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): @@ -104,8 +110,10 @@ class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): """An implementation of :class:`M2LTranslationClassFactoryBase` that gives the 'best known' translation type for each kernel and local expansion class""" def get_m2l_translation_class(self, base_kernel, local_expansion_class): - from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion) + from sumpy.expansion.local import ( + VolumeTaylorLocalExpansionBase, + _FourierBesselLocalExpansion, + ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LWithFFT elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): @@ -307,6 +315,7 @@ def _translation_classes_dependent_data_mis(self, tgt_expansion, latter. """ from pytools import generate_nonnegative_integer_tuples_below as gnitb + from sumpy.tools import add_mi dim = tgt_expansion.dim @@ -837,7 +846,7 @@ def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): def translation_classes_dependent_data(self, tgt_expansion, src_expansion, src_rscale, dvec, sac): - from sumpy.symbolic import sym_real_norm_2, Hankel1 + from sumpy.symbolic import Hankel1, sym_real_norm_2 dvec_len = sym_real_norm_2(dvec) new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index d63a094b4..eed92b3b6 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -20,18 +20,20 @@ THE SOFTWARE. """ +import logging import math from abc import abstractmethod import sumpy.symbolic as sym from sumpy.expansion import ( ExpansionBase, + LinearPDEConformingVolumeTaylorExpansion, VolumeTaylorExpansion, VolumeTaylorExpansionMixin, - LinearPDEConformingVolumeTaylorExpansion) -from sumpy.tools import mi_set_axis, add_to_sac, mi_power, mi_factorial +) +from sumpy.tools import add_to_sac, mi_factorial, mi_power, mi_set_axis + -import logging logger = logging.getLogger(__name__) @@ -418,7 +420,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): if kernel is None: kernel = self.kernel - from sumpy.symbolic import sym_real_norm_2, BesselJ + from sumpy.symbolic import BesselJ, sym_real_norm_2 avec_len = sym_real_norm_2(avec) arg_scale = self.get_bessel_arg_scaling() @@ -437,7 +439,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): if not self.use_rscale: rscale = 1 - from sumpy.symbolic import sym_real_norm_2, Hankel1 + from sumpy.symbolic import Hankel1, sym_real_norm_2 bvec_len = sym_real_norm_2(bvec) target_angle_rel_center = sym.atan2(bvec[1], bvec[0]) @@ -461,7 +463,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, src_rscale = 1 tgt_rscale = 1 - from sumpy.symbolic import sym_real_norm_2, BesselJ + from sumpy.symbolic import BesselJ, sym_real_norm_2 dvec_len = sym_real_norm_2(dvec) new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index d956c100b..836182f35 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -27,24 +27,35 @@ """ +from typing import List, TypeVar, Union + +from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler + import pyopencl as cl import pyopencl.array - from pytools import memoize_method -from boxtree.fmm import TreeIndependentDataForWrangler, ExpansionWranglerInterface from sumpy import ( - P2EFromSingleBox, P2EFromCSR, - E2PFromSingleBox, E2PFromCSR, - P2PFromCSR, - E2EFromCSR, M2LUsingTranslationClassesDependentData, - E2EFromChildren, E2EFromParent, - M2LGenerateTranslationClassesDependentData, - M2LPreprocessMultipole, M2LPostprocessLocal) -from sumpy.tools import (to_complex_dtype, AggregateProfilingEvent, - run_opencl_fft, get_opencl_fft_app, get_native_event) - -from typing import TypeVar, List, Union + E2EFromChildren, + E2EFromCSR, + E2EFromParent, + E2PFromCSR, + E2PFromSingleBox, + M2LGenerateTranslationClassesDependentData, + M2LPostprocessLocal, + M2LPreprocessMultipole, + M2LUsingTranslationClassesDependentData, + P2EFromCSR, + P2EFromSingleBox, + P2PFromCSR, +) +from sumpy.tools import ( + AggregateProfilingEvent, + get_native_event, + get_opencl_fft_app, + run_opencl_fft, + to_complex_dtype, +) # {{{ tree-independent data for wrangler @@ -506,8 +517,9 @@ def reorder_sources(self, source_array): return source_array.with_queue(source_array.queue)[self.tree.user_source_ids] def reorder_potentials(self, potentials): - from pytools.obj_array import obj_array_vectorize import numpy as np + + from pytools.obj_array import obj_array_vectorize assert ( isinstance(potentials, np.ndarray) and potentials.dtype.char == "O") diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 0c68aa15d..31f1fe7ed 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -20,17 +20,20 @@ THE SOFTWARE. """ +from collections import defaultdict from typing import ClassVar, Tuple -import loopy as lp import numpy as np -from pymbolic.mapper import IdentityMapper, CSECachingMapperMixin -from sumpy.symbolic import pymbolic_real_norm_2, SpatialConstant -import sumpy.symbolic as sym -from pymbolic.primitives import make_sym_vector + +import loopy as lp from pymbolic import var +from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper +from pymbolic.primitives import make_sym_vector from pytools import memoize_method -from collections import defaultdict + +import sumpy.symbolic as sym +from sumpy.symbolic import SpatialConstant, pymbolic_real_norm_2 + __doc__ = """ Kernel interface @@ -226,8 +229,10 @@ def postprocess_at_source(self, expr, avec): The typical use of this function is to apply source-variable derivatives to the kernel. """ - from sumpy.derivative_taker import (ExprDerivativeTaker, - DifferentiatedExprDerivativeTaker) + from sumpy.derivative_taker import ( + DifferentiatedExprDerivativeTaker, + ExprDerivativeTaker, + ) expr_dict = {(0,)*self.dim: 1} expr_dict = self.get_derivative_coeff_dict_at_source(expr_dict) if isinstance(expr, ExprDerivativeTaker): @@ -370,7 +375,8 @@ def update_persistent_hash(self, key_hash, key_builder): for name, value in zip(self.init_arg_names, self.__getinitargs__()): if name in ["expression", "global_scaling_const"]: from pymbolic.mapper.persistent_hash import ( - PersistentHashWalkMapper as PersistentHashWalkMapper) + PersistentHashWalkMapper as PersistentHashWalkMapper, + ) PersistentHashWalkMapper(key_hash)(value) else: key_builder.rec(key_hash, value) @@ -445,7 +451,7 @@ def get_derivative_taker(self, dvec, rscale, sac): return LaplaceDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) @@ -494,7 +500,7 @@ def get_derivative_taker(self, dvec, rscale, sac): sac) def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) @@ -570,7 +576,7 @@ def get_derivative_taker(self, dvec, rscale, sac): return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) k = sym.Symbol(self.helmholtz_k_name) @@ -652,7 +658,7 @@ def get_derivative_taker(self, dvec, rscale, sac): return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) lam = sym.Symbol(self.yukawa_lambda_name) return (laplacian(w) - lam**2 * w) @@ -762,7 +768,7 @@ def get_source_args(self): mapper_method = "map_elasticity_kernel" def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) @@ -848,7 +854,7 @@ def get_args(self): mapper_method = "map_stresslet_kernel" def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) @@ -928,7 +934,7 @@ def get_args(self): mapper_method = "map_line_of_compression_kernel" def get_pde_as_diff_op(self): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) @@ -1044,8 +1050,10 @@ def __repr__(self): return f"AxisTargetDerivative({self.axis}, {self.inner_kernel!r})" def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import (DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict) + from sumpy.derivative_taker import ( + DifferentiatedExprDerivativeTaker, + diff_derivative_coeff_dict, + ) from sumpy.symbolic import make_sym_vector as make_sympy_vector target_vec = make_sympy_vector(self.target_array_name, self.dim) @@ -1143,9 +1151,10 @@ def transform(expr): return transform def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import (DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict) - + from sumpy.derivative_taker import ( + DifferentiatedExprDerivativeTaker, + diff_derivative_coeff_dict, + ) from sumpy.symbolic import make_sym_vector as make_sympy_vector dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) target_vec = make_sympy_vector(self.target_array_name, self.dim) @@ -1270,9 +1279,11 @@ def replace_inner_kernel(self, new_inner_kernel): return type(self)(self.axis, new_inner_kernel) def postprocess_at_target(self, expr, avec): + from sumpy.derivative_taker import ( + DifferentiatedExprDerivativeTaker, + ExprDerivativeTaker, + ) from sumpy.symbolic import make_sym_vector as make_sympy_vector - from sumpy.derivative_taker import (ExprDerivativeTaker, - DifferentiatedExprDerivativeTaker) expr = self.inner_kernel.postprocess_at_target(expr, avec) target_vec = make_sympy_vector(self.target_array_name, self.dim) diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 7268275c2..4a4816091 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -20,14 +20,17 @@ THE SOFTWARE. """ +import logging + import numpy as np + import loopy as lp from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import KernelCacheMixin, KernelComputation from sumpy.codegen import register_optimization_preambles +from sumpy.tools import KernelCacheMixin, KernelComputation + -import logging logger = logging.getLogger(__name__) @@ -63,8 +66,10 @@ def __init__(self, ctx, expansion, kernels=None, number of strength arrays that need to be passed in. By default all kernels use the same strength. """ - from sumpy.kernel import (TargetTransformationRemover, - SourceTransformationRemover) + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) txr = TargetTransformationRemover() sxr = SourceTransformationRemover() diff --git a/sumpy/p2p.py b/sumpy/p2p.py index ed3e80129..d89c85e85 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -24,12 +24,12 @@ """ import numpy as np + import loopy as lp from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.tools import ( - KernelComputation, KernelCacheMixin, is_obj_array_like) from sumpy.codegen import register_optimization_preambles +from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like __doc__ = """ @@ -65,8 +65,11 @@ def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, Default: all kernels use the same strength. """ from pytools import single_valued - from sumpy.kernel import (TargetTransformationRemover, - SourceTransformationRemover) + + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) txr = TargetTransformationRemover() sxr = SourceTransformationRemover() @@ -102,9 +105,10 @@ def get_cache_key(self): self.device.hashable_model_and_version_identifier) def get_loopy_insns_and_result_names(self): - from sumpy.symbolic import make_sym_vector from pymbolic import var + from sumpy.symbolic import make_sym_vector + dvec = make_sym_vector("d", self.dim) from sumpy.assignment_collection import SymbolicAssignmentCollection diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 2a26ecfcb..238f03413 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -22,8 +22,10 @@ import numpy as np import numpy.linalg as la + from pytools import memoize_method + __doc__ = """ .. autoclass:: CalculusPatch @@ -119,8 +121,9 @@ def basis(self): a high-order interpolation basis on the :py:attr:`points`. """ + from scipy.special import eval_chebyt # pylint: disable=no-name-in-module + from pytools import indices_in_shape - from scipy.special import eval_chebyt # pylint: disable=no-name-in-module def eval_basis(ind, x): result = 1 diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 345d251aa..50005ddfe 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -24,17 +24,19 @@ """ +import logging + import numpy as np + import loopy as lp from loopy.version import MOST_RECENT_LANGUAGE_VERSION -import sumpy.symbolic as sym -from pytools import memoize_method from pymbolic import parse, var +from pytools import memoize_method + +import sumpy.symbolic as sym +from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like -from sumpy.tools import ( - KernelComputation, KernelCacheMixin, is_obj_array_like) -import logging logger = logging.getLogger(__name__) @@ -503,11 +505,12 @@ def __call__(self, queue, targets, sources, centers, expansion_radii, def find_jump_term(kernel, arg_provider): from sumpy.kernel import ( - AxisSourceDerivative, - AxisTargetDerivative, - DirectionalSourceDerivative, - DirectionalTargetDerivative, - DerivativeBase) + AxisSourceDerivative, + AxisTargetDerivative, + DerivativeBase, + DirectionalSourceDerivative, + DirectionalTargetDerivative, + ) tgt_derivatives = [] src_derivatives = [] diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 089b1507c..4e1b52765 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -34,12 +34,15 @@ """ +import logging +import math + import numpy as np -from pymbolic.mapper import IdentityMapper as IdentityMapperBase + import pymbolic.primitives as prim -import math +from pymbolic.mapper import IdentityMapper as IdentityMapperBase + -import logging logger = logging.getLogger(__name__) USE_SYMENGINE = False @@ -85,14 +88,18 @@ def _find_symbolic_backend(): if USE_SYMENGINE: import symengine as sym + from pymbolic.interop.symengine import ( PymbolicToSymEngineMapper as PymbolicToSympyMapperBase, - SymEngineToPymbolicMapper as SympyToPymbolicMapperBase) + SymEngineToPymbolicMapper as SympyToPymbolicMapperBase, + ) else: import sympy as sym + from pymbolic.interop.sympy import ( PymbolicToSympyMapper as PymbolicToSympyMapperBase, - SympyToPymbolicMapper as SympyToPymbolicMapperBase) + SympyToPymbolicMapper as SympyToPymbolicMapperBase, + ) # Symbolic API common to SymEngine and sympy. # Before adding a function here, make sure it's present in both modules. diff --git a/sumpy/tools.py b/sumpy/tools.py index 6b8b68825..68c7627ec 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -31,16 +31,19 @@ from dataclasses import dataclass from typing import TYPE_CHECKING, Any, List, Optional, Sequence, Tuple -import loopy as lp import numpy as np + +import loopy as lp from pymbolic.mapper import WalkMapper from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import sumpy.symbolic as sym + if TYPE_CHECKING: import numpy + import pyopencl from sumpy.kernel import Kernel diff --git a/sumpy/toys.py b/sumpy/toys.py index 45d71425e..02e4e214b 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -1,5 +1,6 @@ from __future__ import annotations + __copyright__ = """ Copyright (C) 2017 Andreas Kloeckner Copyright (C) 2017 Matt Wala @@ -25,24 +26,30 @@ THE SOFTWARE. """ -from typing import Sequence, Union, Optional, TYPE_CHECKING +from functools import partial +from numbers import Number +from typing import TYPE_CHECKING, Optional, Sequence, Union from pytools import memoize_method -from numbers import Number -from functools import partial + from sumpy.kernel import TargetTransformationRemover + if TYPE_CHECKING: + import pyopencl + from sumpy.kernel import Kernel from sumpy.visualization import FieldPlotter - import pyopencl + +import logging import numpy as np + import loopy as lp # noqa: F401 import pyopencl as cl import pyopencl.array -import logging + logger = logging.getLogger(__name__) __doc__ = """ @@ -116,8 +123,10 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, mpole_expn_class = \ expansion_factory.get_multipole_expansion_class(kernel) if local_expn_class is None: - from sumpy.expansion.m2l import (NonFFTM2LTranslationClassFactory, - FFTM2LTranslationClassFactory) + from sumpy.expansion.m2l import ( + FFTM2LTranslationClassFactory, + NonFFTM2LTranslationClassFactory, + ) if m2l_use_fft: m2l_translation_class_factory = FFTM2LTranslationClassFactory() else: @@ -297,6 +306,7 @@ def _e2p(psource, targets, e2p): np.array(psource.center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) from pytools.obj_array import make_obj_array + from sumpy.tools import vector_to_device coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) @@ -389,8 +399,7 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, src_rscale=np.float64(psource.rscale), **toy_ctx.extra_kernel_kwargs) - from sumpy.tools import (run_opencl_fft, get_opencl_fft_app, - get_native_event) + from sumpy.tools import get_native_event, get_opencl_fft_app, run_opencl_fft if toy_ctx.use_fft: fft_app = get_opencl_fft_app(queue, (expn_size,), @@ -878,8 +887,8 @@ def l_inf(psource: PotentialSource, radius: float, # {{{ schematic visualization def draw_box(el, eh, **kwargs): - import matplotlib.pyplot as pt import matplotlib.patches as mpatches + import matplotlib.pyplot as pt from matplotlib.path import Path pathdata = [ diff --git a/sumpy/version.py b/sumpy/version.py index 5f8b4ff71..a812f4d67 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -23,6 +23,8 @@ # {{{ find install- or run-time git revision import os + + if os.environ.get("AKPYTHON_EXEC_FROM_WITHIN_WITHIN_SETUP_PY") is not None: # We're just being exec'd by setup.py. We can't import anything. _git_rev = None diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 258745982..02803a8e3 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -30,7 +30,7 @@ def separate_by_real_and_imag(data, real_only): - from pytools.obj_array import obj_array_real_copy, obj_array_imag_copy + from pytools.obj_array import obj_array_imag_copy, obj_array_real_copy for name, field in data: try: @@ -165,7 +165,7 @@ def set_matplotlib_limits(self): def show_vector_in_mayavi(self, fld, do_show=True, **kwargs): c = self.points - from mayavi import mlab # pylint: disable=import-error + from mayavi import mlab # pylint: disable=import-error mlab.quiver3d(c[0], c[1], c[2], fld[0], fld[1], fld[2], **kwargs) @@ -190,7 +190,7 @@ def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): nd_points = self.nd_points.squeeze()[self._get_nontrivial_dims()] squeezed_fld = fld.squeeze() - from mayavi import mlab # pylint: disable=import-error + from mayavi import mlab # pylint: disable=import-error mlab.surf(nd_points[0], nd_points[1], squeezed_fld, **kwargs) # vim: foldmethod=marker diff --git a/test/test_codegen.py b/test/test_codegen.py index 9c092e58e..ff73bc73f 100644 --- a/test/test_codegen.py +++ b/test/test_codegen.py @@ -20,10 +20,12 @@ THE SOFTWARE. """ -import pytest +import logging import sys -import logging +import pytest + + logger = logging.getLogger(__name__) @@ -53,12 +55,12 @@ def test_symbolic_assignment_name_uniqueness(): def test_line_taylor_coeff_growth(): # Regression test for LineTaylorLocalExpansion. # See https://gitlab.tiker.net/inducer/pytential/merge_requests/12 - from sumpy.kernel import LaplaceKernel - from sumpy.expansion.local import LineTaylorLocalExpansion - from sumpy.symbolic import make_sym_vector, SympyToPymbolicMapper - import numpy as np + from sumpy.expansion.local import LineTaylorLocalExpansion + from sumpy.kernel import LaplaceKernel + from sumpy.symbolic import SympyToPymbolicMapper, make_sym_vector + order = 10 expn = LineTaylorLocalExpansion(LaplaceKernel(2), order) avec = make_sym_vector("a", 2) diff --git a/test/test_cse.py b/test/test_cse.py index e88407880..a1d913a67 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -64,18 +64,22 @@ # }}} -import pytest import sys +import pytest + import sumpy.symbolic as sym -from sumpy.cse import cse, preprocess_for_cse, postprocess_for_cse +from sumpy.cse import cse, postprocess_for_cse, preprocess_for_cse + if not sym.USE_SYMENGINE: - from sympy.simplify.cse_opts import sub_pre, sub_post from sympy.functions.special.hyper import meijerg from sympy.simplify import cse_opts + from sympy.simplify.cse_opts import sub_post, sub_pre import logging + + logger = logging.getLogger(__name__) w, x, y, z = sym.symbols("w,x,y,z") @@ -287,8 +291,8 @@ def test_pow_invpow(): @sympyonly def test_issue_4499(): # previously, this gave 16 constants + from sympy import S, Tuple from sympy.abc import a, b - from sympy import Tuple, S B = sym.Function("B") # noqa: N806 G = sym.Function("G") # noqa: N806 @@ -341,7 +345,7 @@ def test_issue_6169(): @sympyonly def test_cse_indexed(): - from sympy import IndexedBase, Idx + from sympy import Idx, IndexedBase len_y = 5 y = IndexedBase("y", shape=(len_y,)) x = IndexedBase("x", shape=(len_y,)) @@ -359,7 +363,7 @@ def test_cse_indexed(): @sympyonly def test_piecewise(): - from sympy import Piecewise, Eq + from sympy import Eq, Piecewise f = Piecewise((-z + x*y, Eq(y, 0)), (-z - x*y, True)) ans = cse(f) actual_ans = ([(x0, -z), (x1, x*y)], diff --git a/test/test_distributed.py b/test/test_distributed.py index dd21b224f..2e3911bbd 100644 --- a/test/test_distributed.py +++ b/test/test_distributed.py @@ -22,10 +22,13 @@ import os from functools import partial -import pyopencl as cl + import numpy as np import pytest +import pyopencl as cl + + # Note: Do not import mpi4py.MPI object at the module level, because OpenMPI does not # support recursive invocations. @@ -60,8 +63,8 @@ def fmm_level_to_order(base_kernel, kernel_arg_set, tree, level): from boxtree.traversal import FMMTraversalBuilder traversal_builder = FMMTraversalBuilder(cl_context, well_sep_is_n_away=2) - from sumpy.kernel import LaplaceKernel from sumpy.expansion import DefaultExpansionFactory + from sumpy.kernel import LaplaceKernel kernel = LaplaceKernel(dims) expansion_factory = DefaultExpansionFactory() local_expansion_factory = expansion_factory.get_local_expansion_class(kernel) diff --git a/test/test_fmm.py b/test/test_fmm.py index cf0c6a23b..21d312ac5 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -20,39 +20,34 @@ THE SOFTWARE. """ -import pytest -import sys +import logging import os +import sys from functools import partial import numpy as np import numpy.linalg as la +import pytest from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) - -from sumpy.kernel import ( - LaplaceKernel, - HelmholtzKernel, - YukawaKernel, - BiharmonicKernel) -from sumpy.expansion.multipole import ( - VolumeTaylorMultipoleExpansion, - H2DMultipoleExpansion, - Y2DMultipoleExpansion, - LinearPDEConformingVolumeTaylorMultipoleExpansion) + +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import ( - VolumeTaylorLocalExpansion, H2DLocalExpansion, + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, Y2DLocalExpansion, - LinearPDEConformingVolumeTaylorLocalExpansion) -from sumpy.fmm import ( - SumpyTreeIndependentDataForWrangler, - SumpyExpansionWrangler) +) +from sumpy.expansion.multipole import ( + H2DMultipoleExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, + Y2DMultipoleExpansion, +) +from sumpy.fmm import SumpyExpansionWrangler, SumpyTreeIndependentDataForWrangler +from sumpy.kernel import BiharmonicKernel, HelmholtzKernel, LaplaceKernel, YukawaKernel -import logging logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -397,7 +392,7 @@ def test_unified_single_and_double(actx_factory, visualize=False): dtype = np.float64 order = 3 - from sumpy.kernel import DirectionalSourceDerivative, AxisTargetDerivative + from sumpy.kernel import AxisTargetDerivative, DirectionalSourceDerivative deriv_knl = DirectionalSourceDerivative(knl, "dir_vec") @@ -445,6 +440,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) logging.basicConfig(level=logging.INFO) import pyopencl as cl + from sumpy.array_context import PyOpenCLArrayContext ctx = ctx_factory() @@ -607,7 +603,7 @@ def test_sumpy_axis_source_derivative(actx_factory, visualize=False): target_to_source = actx.from_numpy(np.arange(tree.ntargets, dtype=np.int32)) self_extra_kwargs = {"target_to_source": target_to_source} - from sumpy.kernel import AxisTargetDerivative, AxisSourceDerivative + from sumpy.kernel import AxisSourceDerivative, AxisTargetDerivative pots = [] for tgt_knl, src_knl in [ @@ -675,7 +671,7 @@ def test_sumpy_target_point_multiplier(actx_factory, deriv_axes, visualize=False target_to_source = actx.from_numpy(np.arange(tree.ntargets, dtype=np.int32)) self_extra_kwargs = {"target_to_source": target_to_source} - from sumpy.kernel import TargetPointMultiplier, AxisTargetDerivative + from sumpy.kernel import AxisTargetDerivative, TargetPointMultiplier tgt_knls = [TargetPointMultiplier(0, knl), knl, knl] for axis in deriv_axes: diff --git a/test/test_kernels.py b/test/test_kernels.py index 8f0a98ef2..8be53ec79 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -20,42 +20,46 @@ THE SOFTWARE. """ -import pytest +import logging import sys from functools import partial import numpy as np import numpy.linalg as la +import pytest -from pytools.obj_array import make_obj_array -from pytools.convergence import PConvergenceVerifier from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) +from pytools.convergence import PConvergenceVerifier +from pytools.obj_array import make_obj_array import sumpy.symbolic as sym +import sumpy.toys as t +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import ( + H2DLocalExpansion, + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, +) +from sumpy.expansion.m2l import ( + FFTM2LTranslationClassFactory, + NonFFTM2LTranslationClassFactory, +) from sumpy.expansion.multipole import ( - VolumeTaylorMultipoleExpansion, H2DMultipoleExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, VolumeTaylorMultipoleExpansionBase, - LinearPDEConformingVolumeTaylorMultipoleExpansion) -from sumpy.expansion.local import ( - VolumeTaylorLocalExpansion, - H2DLocalExpansion, - LinearPDEConformingVolumeTaylorLocalExpansion) -from sumpy.expansion.m2l import (NonFFTM2LTranslationClassFactory, - FFTM2LTranslationClassFactory) +) from sumpy.kernel import ( - LaplaceKernel, - HelmholtzKernel, + AxisTargetDerivative, BiharmonicKernel, + DirectionalSourceDerivative, + HelmholtzKernel, + LaplaceKernel, StokesletKernel, - AxisTargetDerivative, - DirectionalSourceDerivative) +) -import sumpy.toys as t -import logging logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -294,7 +298,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative ] expn = expn_class(knl, order=order) - from sumpy import P2EFromSingleBox, E2PFromSingleBox, P2P + from sumpy import P2P, E2PFromSingleBox, P2EFromSingleBox p2e = P2EFromSingleBox(actx.context, expn, kernels=[knl]) e2p = E2PFromSingleBox(actx.context, expn, kernels=target_kernels) p2p = P2P(actx.context, target_kernels, exclude_self=False) diff --git a/test/test_matrixgen.py b/test/test_matrixgen.py index 4baf30312..516a95814 100644 --- a/test/test_matrixgen.py +++ b/test/test_matrixgen.py @@ -20,17 +20,18 @@ THE SOFTWARE. """ -import pytest +import logging import sys import numpy as np import numpy.linalg as la +import pytest from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) -import logging +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 + + logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -97,7 +98,7 @@ def test_qbx_direct(actx_factory, factor, lpot_id, visualize=False): order = 12 mode_nr = 25 - from sumpy.kernel import LaplaceKernel, DirectionalSourceDerivative + from sumpy.kernel import DirectionalSourceDerivative, LaplaceKernel if lpot_id == 1: base_knl = LaplaceKernel(ndim) knl = base_knl @@ -191,7 +192,7 @@ def test_p2p_direct(actx_factory, exclude_self, factor, lpot_id, visualize=False ndim = 2 mode_nr = 25 - from sumpy.kernel import LaplaceKernel, DirectionalSourceDerivative + from sumpy.kernel import DirectionalSourceDerivative, LaplaceKernel if lpot_id == 1: lknl = LaplaceKernel(ndim) elif lpot_id == 2: diff --git a/test/test_misc.py b/test/test_misc.py index 028425701..302f5b858 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -20,39 +20,47 @@ THE SOFTWARE. """ -import pytest +import logging import sys from dataclasses import dataclass from typing import Any, Callable import numpy as np import numpy.linalg as la +import pytest from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) -import sumpy.toys as t import sumpy.symbolic as sym - +import sumpy.toys as t +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion import ( + FullExpansionTermsWrangler, + LinearPDEBasedExpansionTermsWrangler, +) +from sumpy.expansion.diff_op import ( + as_scalar_pde, + concat, + curl, + diff, + divergence, + gradient, + laplacian, + make_identity_diff_op, +) from sumpy.kernel import ( - LaplaceKernel, - HelmholtzKernel, BiharmonicKernel, - YukawaKernel, - StokesletKernel, - StressletKernel, ElasticityKernel, + ExpressionKernel, + HelmholtzKernel, + LaplaceKernel, LineOfCompressionKernel, - ExpressionKernel) -from sumpy.expansion.diff_op import ( - make_identity_diff_op, concat, as_scalar_pde, diff, - gradient, divergence, laplacian, curl) + StokesletKernel, + StressletKernel, + YukawaKernel, +) -from sumpy.expansion import (FullExpansionTermsWrangler, - LinearPDEBasedExpansionTermsWrangler) -import logging logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -125,6 +133,7 @@ def test_pde_check_kernels(actx_factory, knl_info, order=5): np.ones(50)) from pytools.convergence import EOCRecorder + from sumpy.point_calculus import CalculusPatch eoc_rec = EOCRecorder() @@ -147,9 +156,10 @@ def test_pde_check_kernels(actx_factory, knl_info, order=5): @pytest.mark.parametrize("dim", [1, 2, 3]) def test_pde_check(dim, order=4): - from sumpy.point_calculus import CalculusPatch from pytools.convergence import EOCRecorder + from sumpy.point_calculus import CalculusPatch + for iaxis in range(dim): eoc_rec = EOCRecorder() for h in [0.1, 0.01, 0.001]: @@ -296,7 +306,7 @@ def test_toy_p2e2e2p(actx_factory, case): src = case.source.reshape(dim, -1) tgt = case.target.reshape(dim, -1) - from pymbolic import parse, evaluate + from pymbolic import evaluate, parse case_conv_factor = evaluate(parse(case.conv_factor), { "s": case.source, "c1": case.center1, @@ -373,7 +383,7 @@ def test_cse_matvec(): # {{{ test_diff_op_stokes def test_diff_op_stokes(): - from sumpy.symbolic import symbols, Function + from sumpy.symbolic import Function, symbols diff_op = make_identity_diff_op(3, 4) u = diff_op[:3] p = diff_op[3] @@ -515,9 +525,10 @@ def __init__(self): def get_pde_as_diff_op(self): return pde - from sumpy.expansion import LinearPDEConformingVolumeTaylorExpansion - from operator import mul from functools import reduce + from operator import mul + + from sumpy.expansion import LinearPDEConformingVolumeTaylorExpansion knl = MyKernel() order = 10 diff --git a/test/test_qbx.py b/test/test_qbx.py index 3ad439b9e..fa7f6044c 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -20,20 +20,18 @@ THE SOFTWARE. """ -import pytest +import logging import sys import numpy as np +import pytest from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) -from sumpy.expansion.local import ( - LineTaylorLocalExpansion, - VolumeTaylorLocalExpansion) +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion + -import logging logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -126,7 +124,7 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( actx = actx_factory() - from sumpy.kernel import LaplaceKernel, AxisTargetDerivative + from sumpy.kernel import AxisTargetDerivative, LaplaceKernel lknl = LaplaceKernel(2) order = 8 diff --git a/test/test_tools.py b/test/test_tools.py index 09c88b78e..2043fce97 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -20,23 +20,24 @@ THE SOFTWARE. """ -import pytest +import logging import sys import numpy as np +import pytest from arraycontext import pytest_generate_tests_for_array_contexts -from sumpy.array_context import ( # noqa: F401 - PytestPyOpenCLArrayContextFactory, _acf) import sumpy.symbolic as sym +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.tools import ( + fft, fft_toeplitz_upper_triangular, - matvec_toeplitz_upper_triangular, loopy_fft, - fft) + matvec_toeplitz_upper_triangular, +) + -import logging logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ From 7b809d0e07da89d617e3ffad1f06d0f4857662fb Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 14:52:11 -0500 Subject: [PATCH 108/335] Enable 'W' rules --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 519401633..7f65a49f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ extend-select = [ "Q", # flake8-quotes "UP", # pyupgrade "RUF", # ruff - # "W", # pycodestyle + "W", # pycodestyle ] extend-ignore = [ "C90", # McCabe complexity From 384e2a07f1e886fe84626ab71eb786f194bd06e5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 15:04:22 -0500 Subject: [PATCH 109/335] Enable F841: unused local --- examples/curve-pot.py | 8 ++++---- examples/expansion-toys.py | 2 +- pyproject.toml | 1 - sumpy/expansion/m2l.py | 4 ++-- sumpy/p2p.py | 8 ++++---- sumpy/tools.py | 2 +- sumpy/toys.py | 8 ++++---- test/test_cse.py | 4 ++-- test/test_fmm.py | 6 +++--- test/test_kernels.py | 12 ++++++------ test/test_qbx.py | 6 +++--- test/test_tools.py | 2 +- 12 files changed, 31 insertions(+), 32 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 85de64eb6..c52799d37 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -187,7 +187,7 @@ def map_to_curve(t): def apply_lpot(x): xovsmp = np.dot(fim, x) - evt, (y,) = lpot(actx.queue, + _evt, (y,) = lpot(actx.queue, sources, ovsmp_sources, actx.from_numpy(centers), @@ -199,7 +199,7 @@ def apply_lpot(x): op = LinearOperator((nsrc, nsrc), apply_lpot) mat = build_matrix(op, dtype=np.complex128) - w, v = la.eig(mat) + w, _v = la.eig(mat) plt.plot(w.real, "o-") #import sys; sys.exit(0) return @@ -212,7 +212,7 @@ def apply_lpot(x): density = np.cos(mode_nr*2*np.pi*native_t).astype(np.complex128) strength = actx.from_numpy(native_curve.speed * native_weights * density) - evt, (vol_pot,) = p2p(actx.queue, + _evt, (vol_pot,) = p2p(actx.queue, targets, sources, [strength], **volpot_kwargs) @@ -222,7 +222,7 @@ def apply_lpot(x): ovsmp_strength = actx.from_numpy( ovsmp_curve.speed * ovsmp_weights * ovsmp_density) - evt, (curve_pot,) = lpot(actx.queue, + _evt, (curve_pot,) = lpot(actx.queue, sources, ovsmp_sources, actx.from_numpy(centers), diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index 395929e7c..c7052fe36 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -41,7 +41,7 @@ def main(): plt.show() mexp = t.multipole_expand(pt_src, [0, 0], 5) - mexp2 = t.multipole_expand(mexp, [0, 0.25]) + mexp2 = t.multipole_expand(mexp, [0, 0.25]) # noqa: F841 lexp = t.local_expand(mexp, [3, 0]) lexp2 = t.local_expand(lexp, [3, 1], 3) diff --git a/pyproject.toml b/pyproject.toml index 7f65a49f2..c39191d71 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,6 @@ extend-ignore = [ # TODO "E265", # comment format - "F841", # unused local ] [tool.ruff.lint.flake8-quotes] diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 951b76ab3..2dc5f8e9d 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -449,7 +449,7 @@ def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): def loopy_preprocess_multipole(self, tgt_expansion, src_expansion, result_dtype): - circulant_matrix_mis, _, max_mi = \ + _circulant_matrix_mis, _, max_mi = \ self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) @@ -564,7 +564,7 @@ def postprocess_local_nexprs(self, tgt_expansion, src_expansion): def loopy_postprocess_local(self, tgt_expansion, src_expansion, result_dtype): - circulant_matrix_mis, needed_vector_terms, _ = \ + circulant_matrix_mis, _needed_vector_terms, _ = \ self._translation_classes_dependent_data_mis(tgt_expansion, src_expansion) circulant_matrix_ident_to_index = {ident: i for i, ident in diff --git a/sumpy/p2p.py b/sumpy/p2p.py index d89c85e85..6298da349 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -213,7 +213,7 @@ def default_name(self): return "p2p_apply" def get_kernel(self): - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_insns, _result_names = self.get_loopy_insns_and_result_names() arguments = [ *self.get_default_src_tgt_arguments(), lp.GlobalArg("strength", None, @@ -282,7 +282,7 @@ def get_strength_or_not(self, isrc, kernel_idx): return 1 def get_kernel(self): - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_insns, _result_names = self.get_loopy_insns_and_result_names() arguments = ( self.get_default_src_tgt_arguments() + [ @@ -349,7 +349,7 @@ def get_strength_or_not(self, isrc, kernel_idx): return 1 def get_kernel(self): - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_insns, _result_names = self.get_loopy_insns_and_result_names() arguments = ( self.get_default_src_tgt_arguments() + [ @@ -456,7 +456,7 @@ def default_name(self): def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, work_items_per_group=32): - loopy_insns, result_names = self.get_loopy_insns_and_result_names() + loopy_insns, _result_names = self.get_loopy_insns_and_result_names() arguments = [ *self.get_default_src_tgt_arguments(), lp.GlobalArg("box_target_starts", diff --git a/sumpy/tools.py b/sumpy/tools.py index 68c7627ec..c9d9d0a4c 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -188,7 +188,7 @@ def build_matrix(op, dtype=None, shape=None): dtype = dtype or op.dtype from pytools import ProgressBar shape = shape or op.shape - rows, cols = shape + _rows, cols = shape pb = ProgressBar("matrix", cols) mat = np.zeros(shape, dtype) diff --git a/sumpy/toys.py b/sumpy/toys.py index 02e4e214b..5834d63f1 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -273,7 +273,7 @@ def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): queue, np.array(center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) - evt, (coeffs,) = p2e(toy_ctx.queue, + _evt, (coeffs,) = p2e(toy_ctx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -310,7 +310,7 @@ def _e2p(psource, targets, e2p): from sumpy.tools import vector_to_device coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) - evt, (pot,) = e2p( + _evt, (pot,) = e2p( toy_ctx.queue, src_expansions=coeffs, src_base_ibox=0, @@ -367,7 +367,7 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, **toy_ctx.extra_kernel_kwargs, } - evt, (to_coeffs,) = e2e(**args) + _evt, (to_coeffs,) = e2e(**args) return expn_class( toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), @@ -617,7 +617,7 @@ def __init__(self, def eval(self, targets: np.ndarray) -> np.ndarray: queue = self.toy_ctx.queue - evt, (potential,) = self.toy_ctx.get_p2p()( + _evt, (potential,) = self.toy_ctx.get_p2p()( queue, cl.array.to_device(queue, targets), cl.array.to_device(queue, self.points), diff --git a/test/test_cse.py b/test/test_cse.py index a1d913a67..e28bf8e46 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -239,7 +239,7 @@ def test_dont_cse_subs(): f = sym.Function("f") g = sym.Function("g") - name_val, (expr,) = cse(f(x+y).diff(x) + g(x+y).diff(x)) + name_val, (_expr,) = cse(f(x+y).diff(x) + g(x+y).diff(x)) assert name_val == [] @@ -353,7 +353,7 @@ def test_cse_indexed(): expr1 = (y[i+1]-y[i])/(x[i+1]-x[i]) expr2 = 1/(x[i+1]-x[i]) - replacements, reduced_exprs = cse([expr1, expr2]) + replacements, _reduced_exprs = cse([expr1, expr2]) assert len(replacements) > 0 # }}} diff --git a/test/test_fmm.py b/test/test_fmm.py index 21d312ac5..433fca8a0 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -241,7 +241,7 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): from sumpy import P2P p2p = P2P(actx.context, target_kernels, exclude_self=False) - evt, (ref_pot,) = p2p(actx.queue, targets, sources, (weights,), + _evt, (ref_pot,) = p2p(actx.queue, targets, sources, (weights,), **extra_kwargs) pot = actx.to_numpy(pot) @@ -495,7 +495,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) from boxtree.fmm import drive_fmm timing_data = {} - pot, = drive_fmm(wrangler, (weights,), timing_data=timing_data) + _pot, = drive_fmm(wrangler, (weights,), timing_data=timing_data) logger.info("timing_data:\n%s", timing_data) assert timing_data @@ -553,7 +553,7 @@ def test_sumpy_fmm_exclude_self(actx_factory, visualize=False): from sumpy import P2P p2p = P2P(actx.context, target_kernels, exclude_self=True) - evt, (ref_pot,) = p2p(actx.queue, sources, sources, (weights,), + _evt, (ref_pot,) = p2p(actx.queue, sources, sources, (weights,), **self_extra_kwargs) pot = actx.to_numpy(pot) diff --git a/test/test_kernels.py b/test/test_kernels.py index 8be53ec79..6edb07f35 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -93,7 +93,7 @@ def test_p2p(actx_factory, exclude_self): extra_kwargs["target_to_source"] = ( actx.from_numpy(np.arange(n, dtype=np.int32))) - evt, (potential, x_derivative) = knl( + _evt, (potential, _x_derivative) = knl( actx.queue, actx.from_numpy(targets), actx.from_numpy(sources), @@ -192,7 +192,7 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): kernels=source_kernels, strength_usage=[0, 1]) - evt, (mpoles,) = p2e(actx.queue, + _evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -217,7 +217,7 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): p2e = P2EFromSingleBox(actx.context, expn, kernels=[source_kernel], strength_usage=[i]) - evt, (mpoles,) = p2e(actx.queue, + _evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -353,7 +353,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative # {{{ apply p2e - evt, (mpoles,) = p2e(actx.queue, + _evt, (mpoles,) = p2e(actx.queue, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -375,7 +375,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative box_target_counts_nonchild = ( actx.from_numpy(np.array([ntargets], dtype=np.int32))) - evt, (pot, grad_x, ) = e2p( + _evt, (pot, grad_x, ) = e2p( actx.queue, src_expansions=mpoles, src_base_ibox=0, @@ -393,7 +393,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative # {{{ compute (direct) reference solution - evt, (pot_direct, grad_x_direct, ) = p2p( + _evt, (pot_direct, grad_x_direct, ) = p2p( actx.queue, targets, sources, (strengths,), **extra_source_kwargs) diff --git a/test/test_qbx.py b/test/test_qbx.py index fa7f6044c..4b9870c4e 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -92,7 +92,7 @@ def test_direct_qbx_vs_eigval(actx_factory, expn_class, visualize=False): expansion_radii = actx.from_numpy(radius * np.ones(n)) strengths = (actx.from_numpy(sigma * h),) - evt, (result_qbx,) = lpot( + _evt, (result_qbx,) = lpot( actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) @@ -163,11 +163,11 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( expansion_radii = actx.from_numpy(radius * np.ones(n)) strengths = (actx.from_numpy(sigma * h),) - evt, (result_qbx_dx,) = lpot_dx( + _evt, (result_qbx_dx,) = lpot_dx( actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) - evt, (result_qbx_dy,) = lpot_dy( + _evt, (result_qbx_dy,) = lpot_dy( actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii) diff --git a/test/test_tools.py b/test/test_tools.py index 2043fce97..309121c54 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -91,7 +91,7 @@ def test_fft(actx_factory, size): out = fft(inp) fft_func = loopy_fft(inp.shape, inverse=False, complex_dtype=inp.dtype.type) - evt, (out_dev,) = fft_func(actx.queue, y=inp_dev) + _evt, (out_dev,) = fft_func(actx.queue, y=inp_dev) assert np.allclose(actx.to_numpy(out_dev), out) From f26e167d0e81a0268f684ff83bcab7387acdd59c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 15:04:55 -0500 Subject: [PATCH 110/335] Enable E265 --- examples/curve-pot.py | 2 +- pyproject.toml | 3 --- sumpy/assignment_collection.py | 2 +- test/test_qbx.py | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index c52799d37..c6402352f 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -201,7 +201,7 @@ def apply_lpot(x): mat = build_matrix(op, dtype=np.complex128) w, _v = la.eig(mat) plt.plot(w.real, "o-") - #import sys; sys.exit(0) + # import sys; sys.exit(0) return # }}} diff --git a/pyproject.toml b/pyproject.toml index c39191d71..b4f17271c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,9 +26,6 @@ extend-ignore = [ "UP007", # updated annotations due to __future__ import "UP031", # use f-strings instead of % "UP032", # use f-strings instead of .format - - # TODO - "E265", # comment format ] [tool.ruff.lint.flake8-quotes] diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 204d0fd4f..d49064555 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -193,7 +193,7 @@ def run_global_cse(self, extra_exprs=None): # Uses maxima to verify. # - sym.cse: The sympy thing. # - sumpy.cse.cse: Based on sympy, designed to go faster. - #from sumpy.symbolic import checked_cse + # from sumpy.symbolic import checked_cse from sumpy.cse import cse new_assignments, new_exprs = cse(assign_exprs + extra_exprs, diff --git a/test/test_qbx.py b/test/test_qbx.py index 4b9870c4e..88c226bc8 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -148,7 +148,7 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( unit_circle = np.array([unit_circle.real, unit_circle.imag]) sigma = np.cos(mode_nr * t) - #eigval = 1/(2*mode_nr) + # eigval = 1/(2*mode_nr) eigval = 0.5 result_ref = eigval * sigma From 21e70bf2c22a59d5c7d6568165c750234cc71f94 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 15:05:58 -0500 Subject: [PATCH 111/335] Enable rules relating to f-string use --- pyproject.toml | 2 -- sumpy/e2e.py | 24 ++++++++++++------------ sumpy/kernel.py | 8 ++------ sumpy/qbx.py | 22 +++++++++++----------- 4 files changed, 25 insertions(+), 31 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b4f17271c..823e76baf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,8 +24,6 @@ extend-ignore = [ "E402", # module-level import not at top of file "UP006", # updated annotations due to __future__ import "UP007", # updated annotations due to __future__ import - "UP031", # use f-strings instead of % - "UP032", # use f-strings instead of .format ] [tool.ruff.lint.flake8-quotes] diff --git a/sumpy/e2e.py b/sumpy/e2e.py index c57a90b35..dde5d2730 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -235,11 +235,11 @@ def get_kernel(self): <> src_center[idim] = centers[idim, src_ibox] {dup=idim} <> d[idim] = tgt_center[idim] - src_center[idim] \ {dup=idim} - """] + [""" - <> src_coeff{coeffidx} = \ - src_expansions[src_ibox - src_base_ibox, {coeffidx}] \ + """] + [f""" + <> src_coeff{i} = \ + src_expansions[src_ibox - src_base_ibox, {i}] \ {{dep=read_src_ibox}} - """.format(coeffidx=i) for i in range(ncoeff_src)] + [ + """ for i in range(ncoeff_src)] + [ ] + self.get_translation_loopy_insns() + [""" end @@ -912,18 +912,18 @@ def get_kernel(self): <> d[idim] = tgt_center[idim] - src_center[idim] \ {dup=idim} - """] + [""" + """] + [f""" <> src_coeff{i} = \ src_expansions[src_ibox - src_base_ibox, {i}] \ {{id_prefix=read_coeff,dep=read_src_ibox}} - """.format(i=i) for i in range(ncoeffs_src)] + [ - ] + loopy_insns + [""" + """ for i in range(ncoeffs_src)] + [ + ] + loopy_insns + [f""" tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] = \ tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] \ + coeff{i} \ {{id_prefix=write_expn,dep=compute_coeff*, nosync=read_coeff*}} - """.format(i=i) for i in range(ncoeffs_tgt)] + [""" + """ for i in range(ncoeffs_tgt)] + [""" end end end @@ -1021,18 +1021,18 @@ def get_kernel(self): <> src_center[idim] = centers[idim, src_ibox] {dup=idim} <> d[idim] = tgt_center[idim] - src_center[idim] {dup=idim} - """] + [""" + """] + [f""" <> src_coeff{i} = \ src_expansions[src_ibox - src_base_ibox, {i}] \ {{id_prefix=read_expn,dep=read_src_ibox}} - """.format(i=i) for i in range(ncoeffs_src)] + [ + """ for i in range(ncoeffs_src)] + [ - ] + self.get_translation_loopy_insns() + [""" + ] + self.get_translation_loopy_insns() + [f""" tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] = \ tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] + coeff{i} \ {{id_prefix=write_expn,nosync=read_expn*}} - """.format(i=i) for i in range(ncoeffs_tgt)] + [""" + """ for i in range(ncoeffs_tgt)] + [""" end """], [ diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 31f1fe7ed..1cf2c29e3 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1127,10 +1127,7 @@ def __str__(self): self.inner_kernel) def __repr__(self): - return "{}({!r}, {})".format( - type(self).__name__, - self.inner_kernel, - self.dir_vec_name) + return f"{type(self).__name__}({self.inner_kernel!r}, {self.dir_vec_name})" class DirectionalTargetDerivative(DirectionalDerivative): @@ -1325,8 +1322,7 @@ def rec(self, kernel): try: method = getattr(self, kernel.mapper_method) except AttributeError as err: - raise RuntimeError("{} cannot handle {}".format( - type(self), type(kernel))) from err + raise RuntimeError(f"{type(self)} cannot handle {type(kernel)}") from err else: return method(kernel) diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 50005ddfe..f587905f3 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -264,11 +264,11 @@ def get_kernel(self): + [f"<> strength_{i}_isrc = strength_{i}[isrc]" for i in range(self.strength_count)] + loopy_insns + kernel_exprs - + [""" - result_{i}[itgt] = knl_{i}_scaling * \ - simul_reduce(sum, isrc, pair_result_{i}) \ + + [f""" + result_{iknl}[itgt] = knl_{iknl}_scaling * \ + simul_reduce(sum, isrc, pair_result_{iknl}) \ {{id_prefix=write_lpot,inames=itgt}} - """.format(i=iknl) + """ for iknl in range(len(self.target_kernels))] + ["end"], arguments, @@ -342,11 +342,11 @@ def get_kernel(self): + ["<> b[idim] = targets[idim, itgt] - center[idim, itgt] {dup=idim}"] + ["<> rscale = expansion_radii[itgt]"] + loopy_insns + kernel_exprs - + [""" - result_{i}[itgt, isrc] = \ - knl_{i}_scaling * pair_result_{i} \ + + [f""" + result_{iknl}[itgt, isrc] = \ + knl_{iknl}_scaling * pair_result_{iknl} \ {{inames=isrc:itgt}} - """.format(i=iknl) + """ for iknl in range(len(self.target_kernels))] + ["end"], arguments, @@ -422,10 +422,10 @@ def get_kernel(self): <> rscale = expansion_radii[itgt] """] + loopy_insns + kernel_exprs - + [""" - result_{i}[imat] = knl_{i}_scaling * pair_result_{i} \ + + [f""" + result_{iknl}[imat] = knl_{iknl}_scaling * pair_result_{iknl} \ {{id_prefix=write_lpot}} - """.format(i=iknl) + """ for iknl in range(len(self.target_kernels))] + ["end"], arguments, From 5ca771305984225d0932be3d40e37ca68f783439 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 15:06:51 -0500 Subject: [PATCH 112/335] Enable UP006,UP007 --- pyproject.toml | 2 -- sumpy/toys.py | 28 ++++++++++++++-------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 823e76baf..34ae84cab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,8 +22,6 @@ extend-ignore = [ "E221", # multiple spaces before operator "E226", # missing whitespace around arithmetic operator "E402", # module-level import not at top of file - "UP006", # updated annotations due to __future__ import - "UP007", # updated annotations due to __future__ import ] [tool.ruff.lint.flake8-quotes] diff --git a/sumpy/toys.py b/sumpy/toys.py index 5834d63f1..7f0d170cf 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, Optional, Sequence, Union +from typing import TYPE_CHECKING, Sequence from pytools import memoize_method @@ -508,7 +508,7 @@ def eval(self, targets: np.ndarray) -> np.ndarray: def __neg__(self) -> PotentialSource: return -1*self - def __add__(self, other: Union[Number, np.number, PotentialSource] + def __add__(self, other: Number | np.number | PotentialSource ) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) @@ -520,16 +520,16 @@ def __add__(self, other: Union[Number, np.number, PotentialSource] __radd__ = __add__ def __sub__(self, - other: Union[Number, np.number, PotentialSource]) -> PotentialSource: + other: Number | np.number | PotentialSource) -> PotentialSource: return self.__add__(-other) def __rsub__(self, - other: Union[Number, np.number, PotentialSource] + other: Number | np.number | PotentialSource ) -> PotentialSource: return (-self).__add__(other) def __mul__(self, - other: Union[Number, np.number, PotentialSource]) -> PotentialSource: + other: Number | np.number | PotentialSource) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -608,7 +608,7 @@ class PointSources(PotentialSource): def __init__(self, toy_ctx: ToyContext, points: np.ndarray, weights: np.ndarray, - center: Optional[np.ndarray] = None): + center: np.ndarray | None = None): super().__init__(toy_ctx) self.points = points @@ -741,7 +741,7 @@ def eval(self, targets: np.ndarray) -> np.ndarray: def multipole_expand(psource: PotentialSource, - center: np.ndarray, order: Optional[int] = None, + center: np.ndarray, order: int | None = None, rscale: float = 1, **expn_kwargs) -> MultipoleExpansion: if isinstance(psource, PointSources): if order is None: @@ -764,7 +764,7 @@ def multipole_expand(psource: PotentialSource, def local_expand( psource: PotentialSource, - center: np.ndarray, order: Optional[int] = None, rscale: Number = 1, + center: np.ndarray, order: int | None = None, rscale: Number = 1, **expn_kwargs) -> LocalExpansion: if isinstance(psource, PointSources): if order is None: @@ -820,8 +820,8 @@ def logplot(fp: FieldPlotter, psource: PotentialSource, **kwargs) -> None: def combine_inner_outer( psource_inner: PotentialSource, psource_outer: PotentialSource, - radius: Optional[float], - center: Optional[np.ndarray] = None) -> PotentialSource: + radius: float | None, + center: np.ndarray | None = None) -> PotentialSource: if center is None: center = psource_inner.center if radius is None: @@ -835,7 +835,7 @@ def combine_inner_outer( def combine_halfspace(psource_pos: PotentialSource, psource_neg: PotentialSource, axis: int, - center: Optional[np.ndarray] = None) -> PotentialSource: + center: np.ndarray | None = None) -> PotentialSource: if center is None: center = psource_pos.center @@ -849,8 +849,8 @@ def combine_halfspace_and_outer( psource_pos: PotentialSource, psource_neg: PotentialSource, psource_outer: PotentialSource, - axis: int, radius: Optional[Number] = None, - center: Optional[np.ndarray] = None) -> PotentialSource: + axis: int, radius: Number | None = None, + center: np.ndarray | None = None) -> PotentialSource: if center is None: center = psource_pos.center @@ -863,7 +863,7 @@ def combine_halfspace_and_outer( def l_inf(psource: PotentialSource, radius: float, - center: Optional[np.ndarray] = None, npoints: int = 100, + center: np.ndarray | None = None, npoints: int = 100, debug: bool = False) -> np.number: if center is None: center = psource.center From 0f5fdadeeaf127db73458b3c045cc6501858d966 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 13:18:07 -0500 Subject: [PATCH 113/335] Add typos CI, fix typos --- .github/workflows/ci.yml | 7 +++++++ pyproject.toml | 19 +++++++++++++++++++ test/test_distributed.py | 6 +++--- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a1dcf6fe..027e6533c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,13 @@ jobs: pipx install ruff ruff check + typos: + name: Typos + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: crate-ci/typos@master + pylint: name: Pylint runs-on: ubuntu-latest diff --git a/pyproject.toml b/pyproject.toml index 34ae84cab..bbdbb5e7d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,3 +42,22 @@ known-local-folder = [ "sumpy", ] lines-after-imports = 2 + +[tool.typos.default] +extend-ignore-re = [ + "(?Rm)^.*(#|//)\\s*spellchecker:\\s*disable-line$" +] + +[tool.typos.default.extend-words] +# short for multi-indices +mis = "mis" +# short for n-dimensional +nd = "nd" +# short for Theorem +thm = "thm" + +[tool.typos.files] +extend-exclude = [ + "contrib/*/*.ipynb", + "notes/*/*.eps", +] diff --git a/test/test_distributed.py b/test/test_distributed.py index 2e3911bbd..60e94fff0 100644 --- a/test/test_distributed.py +++ b/test/test_distributed.py @@ -34,7 +34,7 @@ def set_cache_dir(mpirank): - """Make each rank use a differnt cache location to avoid conflict.""" + """Make each rank use a different cache location to avoid conflict.""" import platformdirs cache_dir = platformdirs.user_cache_dir("sumpy", "sumpy") @@ -122,11 +122,11 @@ def wrangler_factory(local_traversal, global_traversal): communicate_mpoles_via_allreduce=communicate_mpoles_via_allreduce) from boxtree.distributed import DistributedFMMRunner - distribued_fmm_info = DistributedFMMRunner( + distributed_fmm_info = DistributedFMMRunner( queue, global_tree_dev, traversal_builder, wrangler_factory, comm=comm) timing_data = {} - distributed_potential = distribued_fmm_info.drive_dfmm( + distributed_potential = distributed_fmm_info.drive_dfmm( [sources_weights], timing_data=timing_data) assert timing_data From 469862486b827dcb91eee280313e77f05164799a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 18 Jul 2024 08:38:54 -0500 Subject: [PATCH 114/335] Get mypy-clean, enable mypy in CI Also, required from __future__ import annotations --- .github/workflows/ci.yml | 17 +++++ .gitlab-ci.yml | 12 ++++ benchmarks/bench_translations.py | 2 + pyproject.toml | 29 +++++++++ sumpy/__init__.py | 9 ++- sumpy/array_context.py | 3 + sumpy/assignment_collection.py | 3 + sumpy/codegen.py | 3 + sumpy/cse.py | 3 + sumpy/derivative_taker.py | 7 +- sumpy/distributed.py | 3 + sumpy/e2e.py | 3 + sumpy/e2p.py | 3 + sumpy/expansion/__init__.py | 35 +++++----- sumpy/expansion/diff_op.py | 105 +++++++++++++++++++----------- sumpy/expansion/level_to_order.py | 3 + sumpy/expansion/local.py | 3 + sumpy/expansion/loopy.py | 3 + sumpy/expansion/m2l.py | 7 +- sumpy/expansion/multipole.py | 3 + sumpy/fmm.py | 20 +++--- sumpy/kernel.py | 54 ++++++++++----- sumpy/p2e.py | 3 + sumpy/p2p.py | 3 + sumpy/point_calculus.py | 3 + sumpy/qbx.py | 3 + sumpy/symbolic.py | 17 +++-- sumpy/tools.py | 66 +++++++++++-------- sumpy/toys.py | 38 +++++++---- sumpy/version.py | 3 + sumpy/visualization.py | 3 + test/test_codegen.py | 3 + test/test_cse.py | 3 + test/test_distributed.py | 3 + test/test_fmm.py | 3 + test/test_kernels.py | 3 + test/test_matrixgen.py | 3 + test/test_misc.py | 3 + test/test_qbx.py | 3 + test/test_tools.py | 3 + 40 files changed, 367 insertions(+), 129 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 027e6533c..8e5ab234f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,23 @@ jobs: - uses: actions/checkout@v4 - uses: crate-ci/typos@master + mypy: + name: Mypy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - + uses: actions/setup-python@v5 + with: + python-version: '3.x' + - name: "Main Script" + run: | + curl -L -O https://tiker.net/ci-support-v0 + . ./ci-support-v0 + build_py_project_in_conda_env + python -m pip install mypy + mypy $(get_proj_name) + pylint: name: Pylint runs-on: ubuntu-latest diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2326e6539..c494bc440 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -140,6 +140,18 @@ Pylint: except: - tags +Mypy: + script: | + curl -L -O https://tiker.net/ci-support-v0 + . ./ci-support-v0 + build_py_project_in_venv + python -m pip install mypy + mypy $(get_proj_name) + tags: + - python3 + except: + - tags + Downstream: parallel: matrix: diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index 8cd52af47..8c0e17720 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import logging import numpy as np diff --git a/pyproject.toml b/pyproject.toml index bbdbb5e7d..c568b2ae0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,9 @@ extend-select = [ "UP", # pyupgrade "RUF", # ruff "W", # pycodestyle + + # TODO + # "SIM", ] extend-ignore = [ "C90", # McCabe complexity @@ -42,6 +45,12 @@ known-local-folder = [ "sumpy", ] lines-after-imports = 2 +required-imports = ["from __future__ import annotations"] + +[tool.ruff.lint.per-file-ignores] +"doc/**/*.py" = ["I002"] +"examples/**/*.py" = ["I002"] +"setup.py" = ["I002"] [tool.typos.default] extend-ignore-re = [ @@ -61,3 +70,23 @@ extend-exclude = [ "contrib/*/*.ipynb", "notes/*/*.eps", ] + +[tool.mypy] +warn_unused_ignores = true + +[[tool.mypy.overrides]] +module = [ + "pyopencl.*", + "pymbolic.*", + "loopy.*", + "symengine.*", + "boxtree.*", + "pyvkfft.*", + "pyfmmlib.*", + "mayavi.*", + "scipy.*", + "sympy.*", + "matplotlib.*", + "pyvisfile.*", +] +ignore_missing_imports = true diff --git a/sumpy/__init__.py b/sumpy/__init__.py index 29c5904b8..ab98d1040 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ @@ -21,7 +24,9 @@ """ import os +from typing import Hashable +import loopy as lp from pytools.persistent_dict import WriteOncePersistentDict from sumpy.e2e import ( @@ -56,8 +61,8 @@ ] -code_cache = WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT, - safe_sync=False) +code_cache: WriteOncePersistentDict[Hashable, lp.TranslationUnit] = \ + WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT, safe_sync=False) # {{{ optimization control diff --git a/sumpy/array_context.py b/sumpy/array_context.py index 21432af35..eddfb2cc8 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2022 Alexandru Fikl" __license__ = """ diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index d49064555..678dbbd45 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 139a17b06..22ee9d64e 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/cse.py b/sumpy/cse.py index 35b399802..6dbb4d479 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2017 Matt Wala Copyright (C) 2006-2016 SymPy Development Team diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 7e6192026..ffe234857 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner Copyright (C) 2020 Isuru Fernando @@ -338,7 +341,7 @@ def diff(self, mi, q=0): # {{{ DifferentiatedExprDerivativeTaker -DerivativeCoeffDict = Dict[Tuple[int], Any] +DerivativeCoeffDict = Dict[Tuple[int, ...], Any] @tag_dataclass @@ -390,7 +393,7 @@ def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, and return a new derivative transformation dictionary. """ from collections import defaultdict - new_derivative_coeff_dict = defaultdict(lambda: 0) + new_derivative_coeff_dict: DerivativeCoeffDict = defaultdict(lambda: 0) for mi, coeff in derivative_coeff_dict.items(): # In the case where we have x * u.diff(x), the result should diff --git a/sumpy/distributed.py b/sumpy/distributed.py index e0b6ee3b1..84f3c4e8e 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2022 Hao Gao" __license__ = """ diff --git a/sumpy/e2e.py b/sumpy/e2e.py index dde5d2730..e6bedebf9 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 07066f39a..87e2f1394 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index e2edd47c2..6a4bf3a43 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ @@ -22,7 +25,7 @@ import logging from abc import ABC, abstractmethod -from typing import Any, ClassVar, Dict, Hashable, List, Optional, Sequence, Tuple, Type +from typing import Any, ClassVar, Hashable, Sequence import loopy as lp import pymbolic.primitives as prim @@ -77,12 +80,12 @@ class ExpansionBase(ABC): .. automethod:: __eq__ .. automethod:: __ne__ """ - init_arg_names = ("kernel", "order", "use_rscale") + init_arg_names: tuple[str, ...] = ("kernel", "order", "use_rscale") def __init__(self, kernel: Kernel, order: int, - use_rscale: Optional[bool] = None) -> None: + use_rscale: bool | None = None) -> None: # Don't be tempted to remove target derivatives here. # Line Taylor QBX can't do without them, because it can't # apply those derivatives to the expanded quantity. @@ -125,7 +128,7 @@ def get_source_args(self): # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self) -> List[Hashable]: + def get_coefficient_identifiers(self) -> list[Hashable]: """ :returns: the identifiers of the coefficients that actually get stored. """ @@ -195,10 +198,10 @@ def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: # {{{ copy - def with_kernel(self, kernel: Kernel) -> "ExpansionBase": + def with_kernel(self, kernel: Kernel) -> ExpansionBase: return type(self)(kernel, self.order, self.use_rscale) - def copy(self, **kwargs) -> "ExpansionBase": + def copy(self, **kwargs) -> ExpansionBase: new_kwargs = { name: getattr(self, name) for name in self.init_arg_names} @@ -250,12 +253,12 @@ class ExpansionTermsWrangler(ABC): .. automethod:: get_full_coefficient_identifiers """ - init_arg_names = ("order", "dim", "max_mi") + init_arg_names: tuple[str, ...] = ("order", "dim", "max_mi") def __init__(self, order: int, dim: int, - max_mi: Optional[int] = None) -> None: + max_mi: tuple[int, ...] | None = None) -> None: self.order = order self.dim = dim self.max_mi = max_mi @@ -263,7 +266,7 @@ def __init__(self, # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self) -> List[Hashable]: + def get_coefficient_identifiers(self) -> list[tuple[int, ...]]: pass @abstractmethod @@ -279,7 +282,7 @@ def get_stored_mpole_coefficients_from_full(self, # }}} @memoize_method - def get_full_coefficient_identifiers(self) -> List[Hashable]: + def get_full_coefficient_identifiers(self) -> list[Hashable]: """ Returns identifiers for every coefficient in the complete expansion. """ @@ -311,7 +314,7 @@ def copy(self, **kwargs): # {{{ hyperplane helpers - def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: + def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: r""" Coefficient storage is organized into "hyperplanes" in multi-index space. Potentially only a subset of these hyperplanes contain @@ -332,7 +335,7 @@ def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: @memoize_method def _split_coeffs_into_hyperplanes( - self) -> List[Tuple[int, List[Tuple[int, ...]]]]: + self) -> list[tuple[int, list[tuple[int, ...]]]]: r""" This splits the coefficients into :math:`O(p)` disjoint sets so that for each set, all the identifiers have the form, @@ -511,7 +514,7 @@ class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): def __init__(self, order: int, dim: int, knl: Kernel, - max_mi: Optional[int] = None) -> None: + max_mi: tuple[int, ...] | None = None) -> None: r""" :param order: order of the expansion :param dim: number of dimensions @@ -592,7 +595,7 @@ def mi_key(ident): return mi_key, axis_permutation - def _get_mi_hyperpplanes(self) -> List[Tuple[int, int]]: + def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: mis = self.get_full_coefficient_identifiers() mi_to_index = {mi: i for i, mi in enumerate(mis)} @@ -804,8 +807,8 @@ def get_projection_matrix(self, rscale): # FIXME: This is called an expansion but doesn't inherit from ExpansionBase? class VolumeTaylorExpansionMixin: - expansion_terms_wrangler_class: ClassVar[Type[ExpansionTermsWrangler]] - expansion_terms_wrangler_cache: ClassVar[Dict[Hashable, Any]] = {} + expansion_terms_wrangler_class: ClassVar[type[ExpansionTermsWrangler]] + expansion_terms_wrangler_cache: ClassVar[dict[Hashable, Any]] = {} @classmethod def get_or_make_expansion_terms_wrangler(cls, *key): diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index bc439e516..63c234a05 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -1,3 +1,8 @@ +# mypy: disallow-untyped-defs + +from __future__ import annotations + + __copyright__ = "Copyright (C) 2019 Isuru Fernando" __license__ = """ @@ -23,9 +28,11 @@ import logging from dataclasses import dataclass from itertools import accumulate -from typing import List, Mapping, Sequence +from typing import Mapping, Sequence, Union +import numpy as np import sympy as sp +import sympy.polys.agca.modules as sp_modules from pyrsistent import pmap from pytools import memoize @@ -67,6 +74,9 @@ class DerivativeIdentifier: """ +Number_ish = Union[int, float, complex, np.number] + + @dataclass(frozen=True, eq=True) class LinearPDESystemOperator: r""" @@ -86,16 +96,20 @@ class LinearPDESystemOperator: """ dim: int - eqs: Sequence[Mapping[DerivativeIdentifier, sp.Expr]] + eqs: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] + + if __debug__: + def __post_init__(self) -> None: + hash(self) @property - def order(self): + def order(self) -> int: deg = 0 for eq in self.eqs: deg = max(deg, max(sum(ident.mi) for ident in eq.keys())) return deg - def __mul__(self, param): + def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: eqs = [] for eq in self.eqs: deriv_ident_to_coeff = {} @@ -106,7 +120,9 @@ def __mul__(self, param): __rmul__ = __mul__ - def __add__(self, other_diff_op): + def __add__( + self, other_diff_op: LinearPDESystemOperator + ) -> LinearPDESystemOperator: assert self.dim == other_diff_op.dim assert len(self.eqs) == len(other_diff_op.eqs) eqs = [] @@ -122,27 +138,31 @@ def __add__(self, other_diff_op): __radd__ = __add__ - def __sub__(self, other_diff_op): + def __sub__( + self, other_diff_op: LinearPDESystemOperator + ) -> LinearPDESystemOperator: return self + (-1)*other_diff_op - def __repr__(self): + def __repr__(self) -> str: return f"LinearPDESystemOperator({self.dim}, {self.eqs!r})" - def __getitem__(self, idx): + def __getitem__(self, idx: int | slice) -> LinearPDESystemOperator: item = self.eqs.__getitem__(idx) - if not isinstance(item, tuple): - item = (item,) - return LinearPDESystemOperator(self.dim, tuple(item)) + if isinstance(item, tuple): + eqs = item + else: + eqs = (item,) + return LinearPDESystemOperator(self.dim, eqs) @property - def total_dims(self): + def total_dims(self) -> int: """ Returns the total number of dimensions including time """ did = next(iter(self.eqs[0].keys())) return len(did.mi) - def to_sym(self, fnames=None): + def to_sym(self, fnames: Sequence[str] | None = None) -> list[sp.Expr]: from sumpy.symbolic import Function, make_sym_vector x = list(make_sym_vector("x", self.dim)) x += list(make_sym_vector("t", self.total_dims - self.dim)) @@ -158,7 +178,7 @@ def to_sym(self, fnames=None): res = [] for eq in self.eqs: - sym_eq = 0 + sym_eq: sp.Expr = sp.sympify(0) for deriv_ident, coeff in eq.items(): expr = funcs[deriv_ident.vec_idx] for i, val in enumerate(deriv_ident.mi): @@ -169,7 +189,10 @@ def to_sym(self, fnames=None): return res -def convert_module_to_matrix(module, generators): +def convert_module_to_matrix( + module: Sequence[sp_modules.FreeModuleElement], + generators: Sequence[sp.Expr] + ) -> sp.Matrix: import sympy # poly is a sympy DMP (dense multi-variate polynomial) # type and we convert it to a sympy expression because @@ -180,8 +203,7 @@ def convert_module_to_matrix(module, generators): @memoize -def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> \ - List[LinearPDESystemOperator]: +def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOperator]: import sympy from sympy.polys.orderings import grevlex gens = [sympy.symbols(f"_x{i}") for i in range(pde.dim)] @@ -214,7 +236,10 @@ def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> \ # for each column we calculate the intersection of the left modules and the # right modules. This requires only $3*(n-2)$ work. - def intersect(a, b): + def intersect( + a: sp_modules.SubModulePolyRing, + b: sp_modules.SubModulePolyRing, + ) -> sp_modules.SubModulePolyRing: return a.intersect(b) left_intersections = list(accumulate(column_syzygy_modules, func=intersect)) @@ -247,7 +272,7 @@ def intersect(a, b): DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs()) } - results.append(LinearPDESystemOperator(pde.dim, pmap(pde_dict))) + results.append(LinearPDESystemOperator(pde.dim, (pmap(pde_dict),))) return results @@ -323,9 +348,10 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ return _get_all_scalar_pdes(pde)[comp_idx] -def laplacian(diff_op): +def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: dim = diff_op.dim - empty = [pmap()] * len(diff_op.eqs) + empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = \ + (pmap(),) * len(diff_op.eqs) res = LinearPDESystemOperator(dim, empty) for j in range(dim): mi = [0]*diff_op.total_dims @@ -334,7 +360,9 @@ def laplacian(diff_op): return res -def diff(diff_op, mi): +def diff( + diff_op: LinearPDESystemOperator, mi: tuple[int, ...] + ) -> LinearPDESystemOperator: eqs = [] for eq in diff_op.eqs: res = {} @@ -345,9 +373,9 @@ def diff(diff_op, mi): return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) -def divergence(diff_op): +def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: assert len(diff_op.eqs) == diff_op.dim - res = LinearPDESystemOperator(diff_op.dim, pmap()) + res = LinearPDESystemOperator(diff_op.dim, (pmap(),)) for i in range(diff_op.dim): mi = [0]*diff_op.total_dims mi[i] = 1 @@ -355,7 +383,7 @@ def divergence(diff_op): return res -def gradient(diff_op): +def gradient(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: assert len(diff_op.eqs) == 1 eqs = [] dim = diff_op.dim @@ -366,26 +394,25 @@ def gradient(diff_op): return LinearPDESystemOperator(dim, tuple(eqs)) -def curl(pde): - assert len(pde.eqs) == 3 - assert pde.dim == 3 +def curl(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: + assert len(diff_op.eqs) == 3 + assert diff_op.dim == 3 eqs = [] mis = [] for i in range(3): - mi = [0]*pde.total_dims + mi = [0]*diff_op.total_dims mi[i] = 1 mis.append(tuple(mi)) for i in range(3): - new_pde = diff(pde[(i+2) % 3], mis[(i+1) % 3]) - \ - diff(pde[(i+1) % 3], mis[(i+2) % 3]) + new_pde = diff(diff_op[(i+2) % 3], mis[(i+1) % 3]) - \ + diff(diff_op[(i+1) % 3], mis[(i+2) % 3]) eqs.append(new_pde.eqs[0]) - return LinearPDESystemOperator(pde.dim, tuple(eqs)) + return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) -def concat(*ops): - ops = list(ops) +def concat(*ops: LinearPDESystemOperator) -> LinearPDESystemOperator: assert len(ops) >= 1 dim = ops[0].dim for op in ops: @@ -393,10 +420,12 @@ def concat(*ops): eqs = list(ops[0].eqs) for op in ops[1:]: eqs.extend(list(op.eqs)) - return LinearPDESystemOperator(dim, eqs) + return LinearPDESystemOperator(dim, tuple(eqs)) -def make_identity_diff_op(ninput, noutput=1, time_dependent=False): +def make_identity_diff_op( + ninput: int, noutput: int = 1, time_dependent: bool = False + ) -> LinearPDESystemOperator: """ Returns the identity as a linear PDE system operator. if *include_time* is true, then the last dimension of the @@ -410,5 +439,7 @@ def make_identity_diff_op(ninput, noutput=1, time_dependent=False): mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) - eqs = [pmap({DerivativeIdentifier(mi, i): 1}) for i in range(noutput)] + eqs = tuple(pmap( + {DerivativeIdentifier(mi, i): sp.sympify(1)}) + for i in range(noutput)) return LinearPDESystemOperator(ninput, eqs) diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 37a729b98..c81a4bdc3 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2016 Matt Wala" __license__ = """ diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 512ba782a..712b26e37 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 6c4ad3704..22ee5d6a0 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2022 Isuru Fernando" __license__ = """ diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 2dc5f8e9d..134ed0c01 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2022 Isuru Fernando" __license__ = """ @@ -22,7 +25,7 @@ import logging from abc import ABC, abstractmethod -from typing import Any, ClassVar, Tuple +from typing import Any, ClassVar import numpy as np @@ -164,7 +167,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): f"{src_expansion} to {tgt_expansion} using {self} is not implemented.") def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac) -> Tuple[Any]: + src_rscale, dvec, sac) -> tuple[Any, ...]: """Return an iterable of expressions that needs to be precomputed for multipole-to-local translations that depend only on the distance between the multipole center and the local center which diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index eed92b3b6..d9a817645 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 836182f35..aa2ff4c72 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ @@ -27,7 +30,7 @@ """ -from typing import List, TypeVar, Union +from typing import Protocol from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler @@ -203,11 +206,12 @@ def opencl_fft_app(self, shape, dtype, inverse): _SECONDS_PER_NANOSECOND = 1e-9 -""" -EventLike objects have an attribute native_event that returns -a cl.Event that indicates the end of the event. -""" -EventLike = TypeVar("CLEventLike") +class CLEventLike(Protocol): + """ + EventLike objects have an attribute native_event that returns + a cl.Event that indicates the end of the event. + """ + native_event: cl.Event class UnableToCollectTimingData(UserWarning): @@ -216,12 +220,12 @@ class UnableToCollectTimingData(UserWarning): class SumpyTimingFuture: - def __init__(self, queue, events: List[Union[cl.Event, EventLike]]): + def __init__(self, queue, events: list[cl.Event | CLEventLike]): self.queue = queue self.events = events @property - def native_events(self) -> List[cl.Event]: + def native_events(self) -> list[cl.Event]: return [evt if isinstance(evt, cl.Event) else evt.native_event for evt in self.events] diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 1cf2c29e3..f4a3cbe4f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ @@ -20,10 +23,12 @@ THE SOFTWARE. """ +from abc import abstractmethod from collections import defaultdict -from typing import ClassVar, Tuple +from typing import TYPE_CHECKING, ClassVar import numpy as np +import sympy as sp import loopy as lp from pymbolic import var @@ -35,6 +40,10 @@ from sumpy.symbolic import SpatialConstant, pymbolic_real_norm_2 +if TYPE_CHECKING: + from sumpy.expansion.diff_op import LinearPDESystemOperator + + __doc__ = """ Kernel interface ---------------- @@ -140,9 +149,16 @@ class Kernel: .. automethod:: get_source_args """ - init_arg_names: ClassVar[Tuple[str, ...]] + if TYPE_CHECKING: + @property + def is_complex_valued(self) -> bool: + ... - def __init__(self, dim): + dim: int + init_arg_names: ClassVar[tuple[str, ...]] + _hash_value: int + + def __init__(self, dim: int) -> None: self.dim = dim # {{{ hashing/pickling/equality @@ -159,12 +175,12 @@ def __eq__(self, other): def __ne__(self, other): return not self.__eq__(other) - def __hash__(self): + def __hash__(self) -> int: try: - return self.hash_value + return self._hash_value except AttributeError: - self.hash_value = hash((type(self), *self.__getinitargs__())) - return self.hash_value + self._hash_value = hash((type(self), *self.__getinitargs__())) + return self._hash_value def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) @@ -183,13 +199,13 @@ def __setstate__(self, state): # }}} - def get_base_kernel(self): + def get_base_kernel(self) -> Kernel: """Return the kernel being wrapped by this one, or else *self*. """ return self - def replace_base_kernel(self, new_base_kernel): + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: """Return the base kernel being wrapped by this one, or else *new_base_kernel*. """ @@ -208,9 +224,10 @@ def get_code_transformer(self): """ return lambda expr: expr - def get_expression(self, dist_vec): + @abstractmethod + def get_expression(self, dist_vec: np.ndarray) -> sp.Expr: r"""Return a :mod:`sympy` expression for the kernel.""" - raise NotImplementedError + ... def _diff(self, expr, vec, mi): """Take the derivative of an expression @@ -268,6 +285,7 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): """ return expr_dict + @abstractmethod def get_global_scaling_const(self): r"""Return a global scaling constant of the kernel. Typically, this ensures that the kernel is scaled so that @@ -276,21 +294,25 @@ def get_global_scaling_const(self): Not to be confused with *rscale*, which keeps expansion coefficients benignly scaled. """ - raise NotImplementedError + ... - def get_args(self): + def get_args(self) -> list[KernelArgument]: """Return list of :class:`KernelArgument` instances describing extra arguments used by the kernel. """ return [] - def get_source_args(self): + def get_source_args(self) -> list[KernelArgument]: """Return list of :class:`KernelArgument` instances describing extra arguments used by kernel in picking up contributions from point sources. """ return [] + @abstractmethod + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + ... + # TODO: Allow kernels that are not translation invariant is_translation_invariant = True @@ -324,8 +346,8 @@ class ExpressionKernel(Kernel): .. automethod:: get_expression """ - init_arg_names = ("dim", "expression", "global_scaling_const", - "is_complex_valued") + init_arg_names: ClassVar[tuple[str, ...]] = ( + "dim", "expression", "global_scaling_const", "is_complex_valued") def __init__(self, dim, expression, global_scaling_const, is_complex_valued): diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 4a4816091..28a64f420 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 6298da349..0db70d5c7 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner Copyright (C) 2018 Alexandru Fikl diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 238f03413..3694f89e2 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/qbx.py b/sumpy/qbx.py index f587905f3..ea3cded78 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner Copyright (C) 2018 Alexandru Fikl diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 4e1b52765..43755e532 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ @@ -36,6 +39,7 @@ import logging import math +from typing import TYPE_CHECKING import numpy as np @@ -135,7 +139,7 @@ def _coeff_isneg(a): return a.is_Number and a.is_negative -if USE_SYMENGINE: +if TYPE_CHECKING or USE_SYMENGINE: def UnevaluatedExpr(x): # noqa: N802 return x else: @@ -379,11 +383,12 @@ class Hankel1(_BesselOrHankel): _SympyBesselJ = BesselJ _SympyHankel1 = Hankel1 -if USE_SYMENGINE: - def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined - return sym.sympify(_SympyBesselJ(*args)) +if not TYPE_CHECKING: + if USE_SYMENGINE: + def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined + return sym.sympify(_SympyBesselJ(*args)) - def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined - return sym.sympify(_SympyHankel1(*args)) + def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined + return sym.sympify(_SympyHankel1(*args)) # vim: fdm=marker diff --git a/sumpy/tools.py b/sumpy/tools.py index c9d9d0a4c..9ceffe80b 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner Copyright (C) 2018 Alexandru Fikl @@ -29,11 +32,12 @@ import warnings from abc import ABC, abstractmethod from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, List, Optional, Sequence, Tuple +from typing import TYPE_CHECKING, Any, Hashable, Sequence import numpy as np import loopy as lp +import pyopencl as cl from pymbolic.mapper import WalkMapper from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -111,7 +115,7 @@ # {{{ multi_index helpers -def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> Tuple[int, ...]: +def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2)]) @@ -125,13 +129,13 @@ def mi_factorial(mi: Sequence[int]) -> int: def mi_increment_axis( mi: Sequence[int], axis: int, increment: int - ) -> Tuple[int, ...]: + ) -> tuple[int, ...]: new_mi = list(mi) new_mi[axis] += increment return tuple(new_mi) -def mi_set_axis(mi: Sequence[int], axis: int, value: int) -> Tuple[int, ...]: +def mi_set_axis(mi: Sequence[int], axis: int, value: int) -> tuple[int, ...]: new_mi = list(mi) new_mi[axis] = value return tuple(new_mi) @@ -284,12 +288,12 @@ class KernelComputation(ABC): """ def __init__(self, ctx: Any, - target_kernels: List["Kernel"], - source_kernels: List["Kernel"], - strength_usage: Optional[List[int]] = None, - value_dtypes: Optional[List["numpy.dtype[Any]"]] = None, - name: Optional[str] = None, - device: Optional[Any] = None) -> None: + target_kernels: list[Kernel], + source_kernels: list[Kernel], + strength_usage: list[int] | None = None, + value_dtypes: list[numpy.dtype[Any]] | None = None, + name: str | None = None, + device: Any | None = None) -> None: """ :arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances, with :class:`sumpy.kernel.DirectionalTargetDerivative` as @@ -309,9 +313,9 @@ def __init__(self, ctx: Any, value_dtypes = [] for knl in target_kernels: if knl.is_complex_valued: - value_dtypes.append(np.complex128) + value_dtypes.append(np.dtype(np.complex128)) else: - value_dtypes.append(np.float64) + value_dtypes.append(np.dtype(np.float64)) if not isinstance(value_dtypes, (list, tuple)): value_dtypes = [np.dtype(value_dtypes)] * len(target_kernels) @@ -440,15 +444,21 @@ def __eq__(self, other): # }}} -class KernelCacheMixin: - def get_cached_optimized_kernel(self, **kwargs): - from warnings import warn - warn("get_cached_optimized_kernel is deprecated. " - "Use get_cached_kernel_executor instead. " - "This will stop working in October 2023.", - DeprecationWarning, stacklevel=2) +class KernelCacheMixin(ABC): + context: cl.Context + name: str + + @abstractmethod + def get_cache_key(self) -> tuple[Hashable, ...]: + ... - return self.get_cached_kernel_executor(**kwargs) + @abstractmethod + def get_kernel(self, **kwargs: Any) -> lp.TranslationUnit: + ... + + @abstractmethod + def get_optimized_kernel(self, **kwargs: Any) -> lp.TranslationUnit: + ... @memoize_method def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: @@ -890,7 +900,7 @@ class FFTBackend(enum.Enum): loopy = 2 -def _get_fft_backend(queue: "pyopencl.CommandQueue") -> FFTBackend: +def _get_fft_backend(queue: pyopencl.CommandQueue) -> FFTBackend: import os env_val = os.environ.get("SUMPY_FFT_BACKEND") @@ -931,9 +941,9 @@ def _get_fft_backend(queue: "pyopencl.CommandQueue") -> FFTBackend: def get_opencl_fft_app( - queue: "pyopencl.CommandQueue", - shape: Tuple[int, ...], - dtype: "numpy.dtype[Any]", + queue: pyopencl.CommandQueue, + shape: tuple[int, ...], + dtype: numpy.dtype[Any], inverse: bool) -> Any: """Setup an object for out-of-place FFT on with given shape and dtype on given queue. @@ -954,12 +964,12 @@ def get_opencl_fft_app( def run_opencl_fft( - fft_app: Tuple[Any, FFTBackend], - queue: "pyopencl.CommandQueue", + fft_app: tuple[Any, FFTBackend], + queue: pyopencl.CommandQueue, input_vec: Any, inverse: bool = False, - wait_for: Optional[List["pyopencl.Event"]] = None - ) -> Tuple["pyopencl.Event", Any]: + wait_for: list[pyopencl.Event] | None = None + ) -> tuple[pyopencl.Event, Any]: """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. diff --git a/sumpy/toys.py b/sumpy/toys.py index 7f0d170cf..4f569ef3b 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -1,5 +1,7 @@ from __future__ import annotations +from sumpy.expansion.m2l import M2LTranslationClassFactoryBase + __copyright__ = """ Copyright (C) 2017 Andreas Kloeckner @@ -28,7 +30,7 @@ from functools import partial from numbers import Number -from typing import TYPE_CHECKING, Sequence +from typing import TYPE_CHECKING, Sequence, Union from pytools import memoize_method @@ -128,7 +130,8 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, NonFFTM2LTranslationClassFactory, ) if m2l_use_fft: - m2l_translation_class_factory = FFTM2LTranslationClassFactory() + m2l_translation_class_factory: M2LTranslationClassFactoryBase = \ + FFTM2LTranslationClassFactory() else: m2l_translation_class_factory = NonFFTM2LTranslationClassFactory() local_expn_class = \ @@ -478,6 +481,9 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, # {{{ potential source classes +Number_ish = Union[int, float, complex, np.number] + + class PotentialSource: """A base class for all classes representing potentials that can be evaluated anywhere in space. @@ -508,7 +514,7 @@ def eval(self, targets: np.ndarray) -> np.ndarray: def __neg__(self) -> PotentialSource: return -1*self - def __add__(self, other: Number | np.number | PotentialSource + def __add__(self, other: Number_ish | PotentialSource ) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) @@ -520,16 +526,18 @@ def __add__(self, other: Number | np.number | PotentialSource __radd__ = __add__ def __sub__(self, - other: Number | np.number | PotentialSource) -> PotentialSource: + other: Number_ish | PotentialSource) -> PotentialSource: return self.__add__(-other) - def __rsub__(self, - other: Number | np.number | PotentialSource + # FIXME: mypy says " Forward operator "__sub__" is not callable" + # I don't know what it means. -AK, 2024-07-18 + def __rsub__(self, # type:ignore[misc] + other: Number_ish | PotentialSource ) -> PotentialSource: return (-self).__add__(other) def __mul__(self, - other: Number | np.number | PotentialSource) -> PotentialSource: + other: Number_ish | PotentialSource) -> PotentialSource: if isinstance(other, (Number, np.number)): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -705,7 +713,7 @@ def __init__(self, psources: Sequence[PotentialSource]) -> None: def center(self) -> np.ndarray: for psource in self.psources: try: - return psource.center + return psource.center # type: ignore[attr-defined] except AttributeError: pass @@ -718,7 +726,7 @@ class Sum(PotentialExpressionNode): """ def eval(self, targets: np.ndarray) -> np.ndarray: - result = 0 + result = np.zeros(targets.shape[1]) for psource in self.psources: result = result + psource.eval(targets) @@ -731,7 +739,7 @@ class Product(PotentialExpressionNode): """ def eval(self, targets: np.ndarray) -> np.ndarray: - result = 1 + result = np.zeros(targets.shape[1]) for psource in self.psources: result = result * psource.eval(targets) @@ -764,7 +772,7 @@ def multipole_expand(psource: PotentialSource, def local_expand( psource: PotentialSource, - center: np.ndarray, order: int | None = None, rscale: Number = 1, + center: np.ndarray, order: int | None = None, rscale: Number_ish = 1, **expn_kwargs) -> LocalExpansion: if isinstance(psource, PointSources): if order is None: @@ -823,8 +831,10 @@ def combine_inner_outer( radius: float | None, center: np.ndarray | None = None) -> PotentialSource: if center is None: + assert isinstance(psource_inner, ExpansionPotentialSource) center = psource_inner.center if radius is None: + assert isinstance(psource_inner, ExpansionPotentialSource) radius = psource_inner.radius ball_one = OneOnBallPotential(psource_inner.toy_ctx, center, radius) @@ -837,6 +847,7 @@ def combine_halfspace(psource_pos: PotentialSource, psource_neg: PotentialSource, axis: int, center: np.ndarray | None = None) -> PotentialSource: if center is None: + assert isinstance(psource_pos, ExpansionPotentialSource) center = psource_pos.center halfspace_one = HalfspaceOnePotential(psource_pos.toy_ctx, center, axis) @@ -849,12 +860,14 @@ def combine_halfspace_and_outer( psource_pos: PotentialSource, psource_neg: PotentialSource, psource_outer: PotentialSource, - axis: int, radius: Number | None = None, + axis: int, radius: float | None = None, center: np.ndarray | None = None) -> PotentialSource: if center is None: + assert isinstance(psource_pos, ExpansionPotentialSource) center = psource_pos.center if radius is None: + assert isinstance(psource_pos, ExpansionPotentialSource) center = psource_pos.radius return combine_inner_outer( @@ -866,6 +879,7 @@ def l_inf(psource: PotentialSource, radius: float, center: np.ndarray | None = None, npoints: int = 100, debug: bool = False) -> np.number: if center is None: + assert isinstance(psource, ExpansionPotentialSource) center = psource.center restr = psource * OneOnBallPotential(psource.toy_ctx, center, radius) diff --git a/sumpy/version.py b/sumpy/version.py index a812f4d67..eb6989b90 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2014 Andreas Kloeckner" __license__ = """ diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 02803a8e3..d5f2f6c05 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/test/test_codegen.py b/test/test_codegen.py index ff73bc73f..4eb45b094 100644 --- a/test/test_codegen.py +++ b/test/test_codegen.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2017 Matt Wala" __license__ = """ diff --git a/test/test_cse.py b/test/test_cse.py index e28bf8e46..15330e44a 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2017 Matt Wala Copyright (C) 2006-2016 SymPy Development Team diff --git a/test/test_distributed.py b/test/test_distributed.py index 60e94fff0..9181f4cfa 100644 --- a/test/test_distributed.py +++ b/test/test_distributed.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2022 Hao Gao" __license__ = """ diff --git a/test/test_fmm.py b/test/test_fmm.py index 433fca8a0..437ca9ea5 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ diff --git a/test/test_kernels.py b/test/test_kernels.py index 6edb07f35..812f6ac7b 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" __license__ = """ diff --git a/test/test_matrixgen.py b/test/test_matrixgen.py index 516a95814..1dc0dd854 100644 --- a/test/test_matrixgen.py +++ b/test/test_matrixgen.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2018 Alexandru Fikl" __license__ = """ diff --git a/test/test_misc.py b/test/test_misc.py index 302f5b858..06b45f641 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" __license__ = """ diff --git a/test/test_qbx.py b/test/test_qbx.py index 88c226bc8..d48c1bdb7 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2017 Matt Wala" __license__ = """ diff --git a/test/test_tools.py b/test/test_tools.py index 309121c54..ab4d5bf45 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + __copyright__ = "Copyright (C) 2020 Isuru Fernando" __license__ = """ From 7f3cd5e7ed568ecc99264fe2dfcd5337d57e24d3 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 18 Jul 2024 11:00:06 -0500 Subject: [PATCH 115/335] Switch from pyrsistent to immutabledict --- .test-conda-env-py3.yml | 1 - requirements.txt | 2 +- setup.py | 2 +- sumpy/expansion/diff_op.py | 25 ++++++++++++------------- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index caa303f59..f60204d36 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -14,7 +14,6 @@ dependencies: - python=3 - python-symengine - pyfmmlib -- pyrsistent - pyvkfft - mpi4py diff --git a/requirements.txt b/requirements.txt index da6a8fd21..9a3889d80 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ numpy sympy -pyrsistent +immutabledict pyvkfft # used in mpi-based tests diff --git a/setup.py b/setup.py index 59c7f9b87..a1216d6eb 100644 --- a/setup.py +++ b/setup.py @@ -111,7 +111,7 @@ def write_git_revision(package_name): "loopy>=2021.1", "boxtree>=2018.1", "arraycontext", - "pyrsistent>=0.16.0", + "immutabledict", "sympy>=0.7.2", "pymbolic>=2021.1", "pyvkfft>=2022.1", diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 63c234a05..d185ebbfa 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -33,7 +33,7 @@ import numpy as np import sympy as sp import sympy.polys.agca.modules as sp_modules -from pyrsistent import pmap +from immutabledict import immutabledict from pytools import memoize @@ -110,12 +110,12 @@ def order(self) -> int: return deg def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: - eqs = [] + eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq in self.eqs: deriv_ident_to_coeff = {} for k, v in eq.items(): deriv_ident_to_coeff[k] = v * param - eqs.append(pmap(deriv_ident_to_coeff)) + eqs.append(immutabledict(deriv_ident_to_coeff)) return LinearPDESystemOperator(self.dim, tuple(eqs)) __rmul__ = __mul__ @@ -125,7 +125,7 @@ def __add__( ) -> LinearPDESystemOperator: assert self.dim == other_diff_op.dim assert len(self.eqs) == len(other_diff_op.eqs) - eqs = [] + eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq, other_eq in zip(self.eqs, other_diff_op.eqs): res = dict(eq) for k, v in other_eq.items(): @@ -133,7 +133,7 @@ def __add__( res[k] += v else: res[k] = v - eqs.append(pmap(res)) + eqs.append(immutabledict(res)) return LinearPDESystemOperator(self.dim, tuple(eqs)) __radd__ = __add__ @@ -272,7 +272,7 @@ def intersect( DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs()) } - results.append(LinearPDESystemOperator(pde.dim, (pmap(pde_dict),))) + results.append(LinearPDESystemOperator(pde.dim, (immutabledict(pde_dict),))) return results @@ -351,7 +351,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: dim = diff_op.dim empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = \ - (pmap(),) * len(diff_op.eqs) + (immutabledict(),) * len(diff_op.eqs) res = LinearPDESystemOperator(dim, empty) for j in range(dim): mi = [0]*diff_op.total_dims @@ -363,19 +363,19 @@ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: def diff( diff_op: LinearPDESystemOperator, mi: tuple[int, ...] ) -> LinearPDESystemOperator: - eqs = [] + eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq in diff_op.eqs: res = {} for deriv_ident, v in eq.items(): new_mi = add_mi(deriv_ident.mi, mi) res[DerivativeIdentifier(new_mi, deriv_ident.vec_idx)] = v - eqs.append(pmap(res)) + eqs.append(immutabledict(res)) return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: assert len(diff_op.eqs) == diff_op.dim - res = LinearPDESystemOperator(diff_op.dim, (pmap(),)) + res = LinearPDESystemOperator(diff_op.dim, (immutabledict(),)) for i in range(diff_op.dim): mi = [0]*diff_op.total_dims mi[i] = 1 @@ -439,7 +439,6 @@ def make_identity_diff_op( mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) - eqs = tuple(pmap( + return LinearPDESystemOperator(ninput, tuple(immutabledict( {DerivativeIdentifier(mi, i): sp.sympify(1)}) - for i in range(noutput)) - return LinearPDESystemOperator(ninput, eqs) + for i in range(noutput))) From 149498447688915c37e32c18d4200e75051588e6 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 18 Jul 2024 17:49:10 -0500 Subject: [PATCH 116/335] Drop setup.cfg, migrate pytest config to pyproject.toml --- pyproject.toml | 6 ++++++ setup.cfg | 13 ------------- 2 files changed, 6 insertions(+), 13 deletions(-) delete mode 100644 setup.cfg diff --git a/pyproject.toml b/pyproject.toml index c568b2ae0..29225600c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -90,3 +90,9 @@ module = [ "pyvisfile.*", ] ignore_missing_imports = true + +[tool.pytest.ini_options] +markers = [ + "mpi: test distributed FMM", +] + diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 039e45f21..000000000 --- a/setup.cfg +++ /dev/null @@ -1,13 +0,0 @@ -[flake8] -ignore = E126,E127,E128,E123,E226,E241,E242,E265,E402,W503 -max-line-length=85 - -inline-quotes = " -docstring-quotes = """ -multiline-quotes = """ - -# enable-flake8-bugbear - -[tool:pytest] -markers = - mpi: test distributed FMM From e01606c15bcb44e5fa6cc90250c922812e5c596b Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 18 Jul 2024 18:09:20 -0500 Subject: [PATCH 117/335] Fix Gitlab ruff script --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c494bc440..7436773b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -121,7 +121,7 @@ Documentation: Ruff: stage: test script: - - pix install ruff + - pipx install ruff - ruff check tags: - docker-runner From 1d7d15d967c18741fb8bfb84e1e30f5a071dc20c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 22 Jul 2024 09:33:06 +0300 Subject: [PATCH 118/335] pyproject: move project metadata --- pyproject.toml | 95 +++++++++++++++++++++++++++++++++----- setup.py | 122 ------------------------------------------------- 2 files changed, 84 insertions(+), 133 deletions(-) delete mode 100644 setup.py diff --git a/pyproject.toml b/pyproject.toml index 29225600c..c922cc6ea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,79 @@ +[build-system] +build-backend = "setuptools.build_meta" +requires = [ + "setuptools>=63", +] + +[project] +name = "sumpy" +version = "2022.1" +description = "Fast summation in Python" +readme = "README.rst" +license = { text = "MIT" } +authors = [ + { name = "Andreas Kloeckner", email = "inform@tiker.net" }, +] +requires-python = ">=3.8" +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Other Audience", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: MIT License", + "Natural Language :: English", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Information Analysis", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Visualization", + "Topic :: Software Development :: Libraries", + "Topic :: Utilities", +] +dependencies = [ + "arraycontext>=2021.1", + "boxtree>=2023.1", + "immutabledict", + "loopy>=2024.1", + "numpy", + "pyopencl>=2022.1", + "pytools>=2022.1", +] + +[project.optional-dependencies] +doc = [ + "furo", + "sphinx-copybutton", + "sphinx>=4", +] +fmmlib = [ + "pyfmmlib>=2023.1", +] +sympy = [ + "sympy>=0.7.2", +] +symengine = [ + "symengine>=0.9.0", +] +pyvkfft = [ + "pyvkfft>=2024.1", +] +test = [ + "pylint", + "pytest", + "ruff", +] + +[project.urls] +Documentation = "https://documen.tician.de/sumpy" +Repository = "https://github.com/inducer/sumpy" + +[tool.setuptools.packages.find] +include = [ + "sumpy*", +] + [tool.ruff] -target-version = "py38" preview = true [tool.ruff.lint] @@ -76,23 +150,22 @@ warn_unused_ignores = true [[tool.mypy.overrides]] module = [ - "pyopencl.*", - "pymbolic.*", - "loopy.*", - "symengine.*", "boxtree.*", - "pyvkfft.*", - "pyfmmlib.*", + "loopy.*", + "matplotlib.*", "mayavi.*", + "pyfmmlib.*", + "pymbolic.*", + "pyopencl.*", + "pyvisfile.*", + "pyvkfft.*", "scipy.*", + "symengine.*", "sympy.*", - "matplotlib.*", - "pyvisfile.*", ] ignore_missing_imports = true [tool.pytest.ini_options] markers = [ - "mpi: test distributed FMM", + "mpi: tests distributed FMM", ] - diff --git a/setup.py b/setup.py deleted file mode 100644 index a1216d6eb..000000000 --- a/setup.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python - -import os -from pathlib import Path - -from setuptools import setup - - -ver_dic = {} -version_file = open("sumpy/version.py") -try: - version_file_contents = version_file.read() -finally: - version_file.close() - -os.environ["AKPYTHON_EXEC_FROM_WITHIN_WITHIN_SETUP_PY"] = "1" -exec(compile(version_file_contents, "sumpy/version.py", "exec"), ver_dic) - - -# {{{ capture git revision at install time - -# authoritative version in pytools/__init__.py -def find_git_revision(tree_root): - # Keep this routine self-contained so that it can be copy-pasted into - # setup.py. - - from os.path import abspath, exists, join - - tree_root = abspath(tree_root) - - if not exists(join(tree_root, ".git")): - return None - - from subprocess import PIPE, STDOUT, Popen - - p = Popen( - ["git", "rev-parse", "HEAD"], - shell=False, - stdin=PIPE, - stdout=PIPE, - stderr=STDOUT, - close_fds=True, - cwd=tree_root, - ) - (git_rev, _) = p.communicate() - - git_rev = git_rev.decode() - git_rev = git_rev.rstrip() - - retcode = p.returncode - assert retcode is not None - if retcode != 0: - from warnings import warn - - warn("unable to find git revision", stacklevel=1) - return None - - return git_rev - - -def write_git_revision(package_name): - from os.path import dirname, join - - dn = dirname(__file__) - git_rev = find_git_revision(dn) - - with open(join(dn, package_name, "_git_rev.py"), "w") as outf: - outf.write(f'GIT_REVISION = "{git_rev}"\n') - - -write_git_revision("sumpy") - -# }}} - - -setup( - name="sumpy", - version=ver_dic["VERSION_TEXT"], - description="Fast summation in Python", - long_description=Path("README.rst").read_text(encoding="utf-8"), - long_description_content_type="text/x-rst", - classifiers=[ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Intended Audience :: Other Audience", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: MIT License", - "Natural Language :: English", - "Programming Language :: Python", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Information Analysis", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Visualization", - "Topic :: Software Development :: Libraries", - "Topic :: Utilities", - ], - author="Andreas Kloeckner", - author_email="inform@tiker.net", - license="MIT", - url="https://github.com/inducer/sumpy", - download_url="https://pypi.python.org/pypi/sumpy", - project_urls={ - "Bug Tracker": "https://github.com/inducer/sumpy/issues", - "Documentation": "https://documen.tician.de/sumpy", - "Source Code": "https://github.com/inducer/sumpy", - }, - packages=["sumpy", "sumpy.expansion"], - python_requires="~=3.8", - install_requires=[ - "pytools>=2021.1.1", - "loopy>=2021.1", - "boxtree>=2018.1", - "arraycontext", - "immutabledict", - "sympy>=0.7.2", - "pymbolic>=2021.1", - "pyvkfft>=2022.1", - ], - extras_require={ - "test": ["pytest>=2.3"], - }, -) From 84615fa00c912cdd3b6c4f020094876dc0206a42 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 22 Jul 2024 09:37:47 +0300 Subject: [PATCH 119/335] version: use importlib --- doc/conf.py | 28 +++++++++++----------------- sumpy/version.py | 31 +++++++++++-------------------- 2 files changed, 22 insertions(+), 37 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index ed5049e54..9ae15030e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,4 +1,4 @@ -import os +from importlib import metadata from urllib.request import urlopen @@ -8,27 +8,21 @@ exec(compile(_inf.read(), _conf_url, "exec"), globals()) copyright = "2016-21, sumpy contributors" - -os.environ["AKPYTHON_EXEC_FROM_WITHIN_WITHIN_SETUP_PY"] = "1" -ver_dic = {} -exec(compile(open("../sumpy/version.py").read(), "../sumpy/version.py", "exec"), - ver_dic) -version = ".".join(str(x) for x in ver_dic["VERSION"]) -release = ver_dic["VERSION_TEXT"] +release = metadata.version("sumpy") +version = ".".join(release.split(".")[:2]) intersphinx_mapping = { - "python": ("https://docs.python.org/3/", None), - "numpy": ("https://numpy.org/doc/stable/", None), - "sympy": ("https://docs.sympy.org/latest/", None), + "arraycontext": ("https://documen.tician.de/arraycontext/", None), + "boxtree": ("https://documen.tician.de/boxtree/", None), + "loopy": ("https://documen.tician.de/loopy/", None), "matplotlib": ("https://matplotlib.org/stable/", None), - "pyopencl": ("https://documen.tician.de/pyopencl/", None), - "pytools": ("https://documen.tician.de/pytools/", None), - "modepy": ("https://documen.tician.de/modepy/", None), + "numpy": ("https://numpy.org/doc/stable/", None), "pymbolic": ("https://documen.tician.de/pymbolic/", None), - "loopy": ("https://documen.tician.de/loopy/", None), + "pyopencl": ("https://documen.tician.de/pyopencl/", None), "pytential": ("https://documen.tician.de/pytential/", None), - "boxtree": ("https://documen.tician.de/boxtree/", None), - "arraycontext": ("https://documen.tician.de/arraycontext/", None), + "python": ("https://docs.python.org/3/", None), + "pytools": ("https://documen.tician.de/pytools/", None), + "sympy": ("https://docs.sympy.org/latest/", None), } nitpick_ignore_regex = [ diff --git a/sumpy/version.py b/sumpy/version.py index eb6989b90..953a12813 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -23,31 +23,22 @@ THE SOFTWARE. """ -# {{{ find install- or run-time git revision +from importlib import metadata -import os +from pytools import find_module_git_revision -if os.environ.get("AKPYTHON_EXEC_FROM_WITHIN_WITHIN_SETUP_PY") is not None: - # We're just being exec'd by setup.py. We can't import anything. - _git_rev = None +def _parse_version(version: str) -> tuple[tuple[int, ...], str]: + import re -else: - import sumpy._git_rev as _git_rev_mod - _git_rev = _git_rev_mod.GIT_REVISION + m = re.match("^([0-9.]+)([a-z0-9]*?)$", VERSION_TEXT) + assert m is not None - # If we're running from a dev tree, the last install (and hence the most - # recent update of the above git rev) could have taken place very long ago. - from pytools import find_module_git_revision - _runtime_git_rev = find_module_git_revision(__file__, n_levels_up=1) - if _runtime_git_rev is not None: - _git_rev = _runtime_git_rev + return tuple(int(nr) for nr in m.group(1).split(".")), m.group(2) -# }}} +VERSION_TEXT = metadata.version("sumpy") +VERSION, VERSION_STATUS = _parse_version(VERSION_TEXT) -VERSION = (2022, 1) -VERSION_STATUS = "" -VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS - -KERNEL_VERSION = (VERSION, _git_rev, 0) +_GIT_REVISION = find_module_git_revision(__file__, n_levels_up=1) +KERNEL_VERSION = (*VERSION, _GIT_REVISION, 0) From 25a8af0a9a00524ef7177063e856a9abc7288087 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 22 Jul 2024 09:50:22 +0300 Subject: [PATCH 120/335] ruff: enable and fix remaming issues --- examples/fourier.py | 2 +- pyproject.toml | 10 ++++------ sumpy/codegen.py | 9 +++++---- sumpy/cse.py | 6 +++--- sumpy/derivative_taker.py | 7 ++++--- sumpy/expansion/__init__.py | 6 +++--- sumpy/expansion/diff_op.py | 15 ++++++--------- sumpy/kernel.py | 6 +----- sumpy/p2e.py | 6 +----- sumpy/p2p.py | 6 +----- sumpy/symbolic.py | 13 ++++++------- sumpy/tools.py | 14 ++++---------- test/test_distributed.py | 25 ++++++++++++++----------- test/test_kernels.py | 2 +- test/test_misc.py | 2 +- 15 files changed, 55 insertions(+), 74 deletions(-) diff --git a/examples/fourier.py b/examples/fourier.py index a4a04b9fc..f637c2a4f 100644 --- a/examples/fourier.py +++ b/examples/fourier.py @@ -16,7 +16,7 @@ def make_fourier_mode_extender(m, n, dtype): result = np.zeros((m, n), dtype) # https://docs.scipy.org/doc/numpy/reference/routines.fft.html - if k % 2 == 0: + if k % 2 == 0: # noqa: SIM108 peak_pos_freq = k/2 else: peak_pos_freq = (k-1)/2 diff --git a/pyproject.toml b/pyproject.toml index c922cc6ea..4cb3a3027 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,12 +87,10 @@ extend-select = [ "N", # pep8-naming "NPY", # numpy "Q", # flake8-quotes - "UP", # pyupgrade "RUF", # ruff + "SIM", # flake8-simplify + "UP", # pyupgrade "W", # pycodestyle - - # TODO - # "SIM", ] extend-ignore = [ "C90", # McCabe complexity @@ -109,11 +107,11 @@ multiline-quotes = "double" [tool.ruff.lint.isort] combine-as-imports = true known-first-party = [ - "pytools", - "pymbolic", "arraycontext", "loopy", + "pymbolic", "pyopencl", + "pytools", ] known-local-folder = [ "sumpy", diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 22ee9d64e..4baa8289a 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -286,10 +286,11 @@ def map_call(self, expr, rec_self=None, *args): # AS (9.1.31) # https://dlmf.nist.gov/10.6.7 - if order >= 0: - order_str = str(order) + if order >= 0: # noqa: SIM108 + order_str = f"{order}" else: - order_str = "m"+str(-order) + order_str = f"m{-order}" + k = n_derivs return prim.CommonSubexpression( 2**(-k)*sum( @@ -662,7 +663,7 @@ def _map(method_name, self, expr, rec_self=None, *args): import types from functools import partial combine_mapper = CombinedMapper(all_methods) - for method_name in all_methods.keys(): + for method_name in all_methods: setattr(combine_mapper, method_name, types.MethodType(partial(_map, method_name), combine_mapper)) return combine_mapper diff --git a/sumpy/cse.py b/sumpy/cse.py index 6dbb4d479..0f4481d93 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -481,7 +481,7 @@ def find_repeated(expr): if expr in opt_subs: expr = opt_subs[expr] - if isinstance(expr, CSE_NO_DESCEND_CLASSES): + if isinstance(expr, CSE_NO_DESCEND_CLASSES): # noqa: SIM108 args = () else: args = expr.args @@ -544,7 +544,7 @@ def rebuild(expr): reduced_exprs = [] for e in exprs: - if isinstance(e, Basic): + if isinstance(e, Basic): # noqa: SIM108 reduced_e = rebuild(e) else: reduced_e = e @@ -586,7 +586,7 @@ 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: + if symbols is None: # noqa: SIM108 symbols = numbered_symbols(cls=Symbol) else: # In case we get passed an iterable with an __iter__ method instead of diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index ffe234857..e98038f6b 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -153,7 +153,7 @@ def get_derivative_taking_sequence(self, start_mi, end_mi): def get_closest_cached_mi(self, mi): return min((other_mi - for other_mi in self.cache_by_mi.keys() + for other_mi in self.cache_by_mi if (np.array(mi) >= np.array(other_mi)).all()), key=lambda other_mi: sum(self.mi_dist(mi, other_mi))) @@ -371,8 +371,9 @@ def diff(self, mi, save_intermediate=lambda x: x): # :attr:`derivative_coeff_dict` which would multiply the # expression by more `rscale`s than necessary. This is corrected by # dividing by `rscale`. - max_order = max(sum(extra_mi) for extra_mi in - self.derivative_coeff_dict.keys()) + max_order = max( + sum(extra_mi) for extra_mi in self.derivative_coeff_dict + ) result = sum( coeff * self.taker.diff(add_mi(mi, extra_mi)) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 6a4bf3a43..e9b8a0cab 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -418,7 +418,7 @@ def _get_mi_ordering_key_and_axis_permutation(self): axis_permutation = list(reversed(list(range(self.dim)))) def mi_key(ident): - if isinstance(ident, DerivativeIdentifier): + if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 mi = ident.mi else: mi = ident @@ -584,7 +584,7 @@ def _get_mi_ordering_key_and_axis_permutation(self): from sumpy.expansion.diff_op import DerivativeIdentifier def mi_key(ident): - if isinstance(ident, DerivativeIdentifier): + if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 mi = ident.mi else: mi = ident @@ -696,7 +696,7 @@ def get_stored_ids_and_unscaled_projection_matrix(self): return mis, op ordering_key, _ = self._get_mi_ordering_key_and_axis_permutation() - max_mi = max((ident for ident in mi_to_coeff.keys()), key=ordering_key) + max_mi = max((ident for ident in mi_to_coeff), key=ordering_key) max_mi_coeff = mi_to_coeff[max_mi] max_mi_mult = -1/sym.sympify(max_mi_coeff) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index d185ebbfa..851ad913d 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -106,7 +106,7 @@ def __post_init__(self) -> None: def order(self) -> int: deg = 0 for eq in self.eqs: - deg = max(deg, max(sum(ident.mi) for ident in eq.keys())) + deg = max(deg, max(sum(ident.mi) for ident in eq)) return deg def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: @@ -148,10 +148,7 @@ def __repr__(self) -> str: def __getitem__(self, idx: int | slice) -> LinearPDESystemOperator: item = self.eqs.__getitem__(idx) - if isinstance(item, tuple): - eqs = item - else: - eqs = (item,) + eqs = item if isinstance(item, tuple) else (item,) return LinearPDESystemOperator(self.dim, eqs) @property @@ -170,7 +167,7 @@ def to_sym(self, fnames: Sequence[str] | None = None) -> list[sp.Expr]: if fnames is None: noutputs = 0 for eq in self.eqs: - for deriv_ident in eq.keys(): + for deriv_ident in eq: noutputs = max(noutputs, deriv_ident.vec_idx) fnames = [f"f{i}" for i in range(noutputs+1)] @@ -210,7 +207,7 @@ def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOp gens += [sympy.symbols(f"_t{i}") for i in range(pde.total_dims - pde.dim)] max_vec_idx = max(deriv_ident.vec_idx for eq in pde.eqs - for deriv_ident in eq.keys()) + for deriv_ident in eq) pde_system_mat = sympy.zeros(len(pde.eqs), max_vec_idx + 1) for row, eq in enumerate(pde.eqs): @@ -338,7 +335,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ """ indices = set() for eq in pde.eqs: - for deriv_ident in eq.keys(): + for deriv_ident in eq: indices.add(deriv_ident.vec_idx) # this is already a scalar pde @@ -435,7 +432,7 @@ def make_identity_diff_op( :arg noutput: number of output values of function :arg time_dependent: include time as a dimension """ - if time_dependent: + if time_dependent: # noqa: SIM108 mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index f4a3cbe4f..ec612ad46 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -578,11 +578,7 @@ def prepare_loopy_kernel(self, loopy_knl): return register_bessel_callables(loopy_knl) def get_args(self): - if self.allow_evanescent: - k_dtype = np.complex128 - else: - k_dtype = np.float64 - + k_dtype = np.complex128 if self.allow_evanescent else np.float64 return [ KernelArgument( loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype), diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 28a64f420..30237d398 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -76,11 +76,7 @@ def __init__(self, ctx, expansion, kernels=None, txr = TargetTransformationRemover() sxr = SourceTransformationRemover() - if kernels is None: - kernels = [txr(expansion.kernel)] - else: - kernels = kernels - + kernels = [txr(expansion.kernel)] if kernels is None else kernels expansion = expansion.with_kernel(sxr(txr(expansion.kernel))) for knl in kernels: diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 0db70d5c7..c96f47518 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -131,11 +131,7 @@ def get_loopy_insns_and_result_names(self): expr_sum = out_knl.postprocess_at_target(expr_sum, dvec) exprs.append(expr_sum) - if self.exclude_self: - result_name_prefix = "pair_result_tmp" - else: - result_name_prefix = "pair_result" - + result_name_prefix = "pair_result_tmp" if self.exclude_self else "pair_result" result_names = [ sac.add_assignment(f"{result_name_prefix}_{i}", expr) for i, expr in enumerate(exprs) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 43755e532..c3c58c68c 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -203,7 +203,7 @@ def write_assignment(name): assignments[name].subs(prefix_subst_dict)))))) written_assignments.add(name) - for name in assignments.keys(): + for name in assignments: if name not in written_assignments: write_assignment(name) @@ -383,12 +383,11 @@ class Hankel1(_BesselOrHankel): _SympyBesselJ = BesselJ _SympyHankel1 = Hankel1 -if not TYPE_CHECKING: - if USE_SYMENGINE: - def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined - return sym.sympify(_SympyBesselJ(*args)) +if not TYPE_CHECKING and USE_SYMENGINE: + def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined + return sym.sympify(_SympyBesselJ(*args)) - def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined - return sym.sympify(_SympyHankel1(*args)) + def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined + return sym.sympify(_SympyHankel1(*args)) # vim: fdm=marker diff --git a/sumpy/tools.py b/sumpy/tools.py index 9ceffe80b..3fb293eb6 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -777,10 +777,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, for ilev, N1 in enumerate(list(reversed(factors))): # noqa: N806 nfft //= N1 N2 = n // (nfft * N1) # noqa: N806 - if ilev == 0: - init_depends_on = "copy" - else: - init_depends_on = f"update_{ilev-1}" + init_depends_on = "copy" if ilev == 0 else f"update_{ilev-1}" temp = var("temp") exp_table = var("exp_table") @@ -872,10 +869,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, ] if name is None: - if inverse: - name = f"ifft_{n}" - else: - name = f"fft_{n}" + name = f"ifft_{n}" if inverse else f"fft_{n}" knl = lp.make_kernel( domains, insns, @@ -1007,7 +1001,7 @@ def run_opencl_fft( # FIXME: use the public API once # https://github.com/vincefn/pyvkfft/pull/17 is in from pyvkfft.opencl import _vkfft_opencl - if inverse: + if inverse: # noqa: SIM108 meth = _vkfft_opencl.ifft else: meth = _vkfft_opencl.fft @@ -1038,7 +1032,7 @@ def run_opencl_fft( def __getattr__(name): - replacement_and_obj = _depr_name_to_replacement_and_obj.get(name, None) + replacement_and_obj = _depr_name_to_replacement_and_obj.get(name) if replacement_and_obj is not None: replacement, obj, year = replacement_and_obj from warnings import warn diff --git a/test/test_distributed.py b/test/test_distributed.py index 9181f4cfa..8f661df6b 100644 --- a/test/test_distributed.py +++ b/test/test_distributed.py @@ -159,32 +159,35 @@ def test_against_single_rank( from boxtree.tools import run_mpi run_mpi(__file__, num_processes, { - "PYTEST": "against_single_rank", - "dims": dims, - "nsources": nsources, - "ntargets": ntargets, "OMP_NUM_THREADS": 1, - "communicate_mpoles_via_allreduce": communicate_mpoles_via_allreduce + "_SUMPY_TEST_NAME": "against_single_rank", + "_SUMPY_TEST_DIMS": dims, + "_SUMPY_TEST_NSOURCES": nsources, + "_SUMPY_TEST_NTARGETS": ntargets, + "_SUMPY_TEST_MPOLES_ALLREDUCE": communicate_mpoles_via_allreduce }) # }}} if __name__ == "__main__": - if "PYTEST" in os.environ: - if os.environ["PYTEST"] == "against_single_rank": + if "_SUMPY_TEST_NAME" in os.environ: + name = os.environ["_SUMPY_TEST_NAME"] + if name == "against_single_rank": # Run "test_against_single_rank" test case - dims = int(os.environ["dims"]) - nsources = int(os.environ["nsources"]) - ntargets = int(os.environ["ntargets"]) + dims = int(os.environ["_SUMPY_TEST_DIMS"]) + nsources = int(os.environ["_SUMPY_TEST_NSOURCES"]) + ntargets = int(os.environ["_SUMPY_TEST_NTARGETS"]) from distutils.util import strtobool communicate_mpoles_via_allreduce = bool( - strtobool(os.environ["communicate_mpoles_via_allreduce"])) + strtobool(os.environ["_SUMPY_TEST_MPOLES_ALLREDUCE"])) _test_against_single_rank( dims, nsources, ntargets, np.float64, communicate_mpoles_via_allreduce) + else: + raise ValueError(f"Invalid test name: {name!r}") else: # You can test individual routines by typing # $ python test_distributed.py diff --git a/test/test_kernels.py b/test/test_kernels.py index 812f6ac7b..4061dfcaf 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -561,7 +561,7 @@ def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, del eval_offset - if knl.dim == 2: + if knl.dim == 2: # noqa: SIM108 orders = [2, 3, 4] else: orders = [3, 4, 5] diff --git a/test/test_misc.py b/test/test_misc.py index 06b45f641..d0a25cc2e 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -94,7 +94,7 @@ def pde_func(self, cp, pot): @property def nderivs(self): - return max(sum(ident.mi) for ident in self.eq.keys()) + return max(sum(ident.mi) for ident in self.eq) @pytest.mark.parametrize("knl_info", [ From 8a5f9fed148faa9f776567ed86200b4188bb5b6e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 22 Jul 2024 10:01:44 +0300 Subject: [PATCH 121/335] MANIFEST: ignore git files --- MANIFEST.in | 19 +++++++++++-------- notes/.gitignore | 2 -- 2 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 notes/.gitignore diff --git a/MANIFEST.in b/MANIFEST.in index 6afc650e9..9fca12ad3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,12 +1,15 @@ -include test/*.py -include examples/*.py - include doc/*.rst include doc/Makefile -include doc/*.py -include doc/images/*.png -include doc/_static/*.css -include doc/_templates/*.html +include notes/*.tex +include notes/*.pdf +include notes/latexmkrc +include notes/media/*.ipe +include notes/media/*.eps + +include LICENSE include README.rst -include requirements.txt + +prune .github +exclude .gitlab-ci.yml +exclude .gitignore diff --git a/notes/.gitignore b/notes/.gitignore deleted file mode 100644 index ee0fa6e3f..000000000 --- a/notes/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*converted-to*pdf -out From 88cf68db861effa3bb082ae96b698b830d6feab0 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 22 Jul 2024 21:49:38 +0300 Subject: [PATCH 122/335] test: remove distutil strtobool --- test/test_distributed.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/test_distributed.py b/test/test_distributed.py index 8f661df6b..f9bb00e41 100644 --- a/test/test_distributed.py +++ b/test/test_distributed.py @@ -179,9 +179,8 @@ def test_against_single_rank( nsources = int(os.environ["_SUMPY_TEST_NSOURCES"]) ntargets = int(os.environ["_SUMPY_TEST_NTARGETS"]) - from distutils.util import strtobool - communicate_mpoles_via_allreduce = bool( - strtobool(os.environ["_SUMPY_TEST_MPOLES_ALLREDUCE"])) + communicate_mpoles_via_allreduce = ( + os.environ["_SUMPY_TEST_MPOLES_ALLREDUCE"] == "True") _test_against_single_rank( dims, nsources, ntargets, np.float64, From dcf91f49b95c344dc3806deda5f69d82ba050bd2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 28 Jul 2024 09:56:45 +0300 Subject: [PATCH 123/335] tools: fix logging cache_key --- sumpy/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 3fb293eb6..409b8a4be 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -486,7 +486,7 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: logger.info("%s: kernel cache miss", self.name) if CACHING_ENABLED and not ( NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): - logger.info("%s: kernel cache miss [key=%d]", + logger.info("%s: kernel cache miss [key=%s]", self.name, cache_key) from pytools import MinRecursionLimit From 9caad111f0c44bf8f405c9064a96622f8b500864 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 4 Aug 2024 10:24:13 +0300 Subject: [PATCH 124/335] fix ruff issues in notebooks --- .../PDE-reduction and translations.ipynb | 293 +++++------------- .../translations/PDE-reduction-symbolic.ipynb | 53 ++-- 2 files changed, 111 insertions(+), 235 deletions(-) diff --git a/contrib/translations/PDE-reduction and translations.ipynb b/contrib/translations/PDE-reduction and translations.ipynb index 62a626236..92da1f8d2 100644 --- a/contrib/translations/PDE-reduction and translations.ipynb +++ b/contrib/translations/PDE-reduction and translations.ipynb @@ -2,35 +2,39 @@ "cells": [ { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "import pyopencl as cl\n", - "import sumpy.toys as t\n", + "from __future__ import annotations\n", + "\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import numpy.linalg as la\n", - "import matplotlib.pyplot as plt\n", - "from sumpy.visualization import FieldPlotter\n", + "\n", + "import pyopencl as cl\n", "from pytools import add_tuples\n", "\n", + "import sumpy.toys as t\n", "from sumpy.expansion.local import VolumeTaylorLocalExpansion\n", "from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansion\n", - "from sumpy.kernel import (YukawaKernel, HelmholtzKernel, LaplaceKernel)\n", + "from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401\n", + "\n", "\n", + "rng = np.random.default_rng(seed=42)\n", "order = 4\n", "\n", "if 0:\n", " knl = LaplaceKernel(2)\n", - " pde = [(1, (2,0)), (1, (0, 2))]\n", + " pde = [(1, (2, 0)), (1, (0, 2))]\n", " extra_kernel_kwargs = {}\n", - " \n", + "\n", "else:\n", " helm_k = 1.2\n", " knl = HelmholtzKernel(2)\n", - " extra_kernel_kwargs={\"k\": helm_k}\n", + " extra_kernel_kwargs = {\"k\": helm_k}\n", "\n", - " pde = [(1, (2,0)), (1, (0, 2)), (helm_k**2, (0, 0))]\n", + " pde = [(1, (2, 0)), (1, (0, 2)), (helm_k**2, (0, 0))]\n", "\n", "mpole_expn = VolumeTaylorMultipoleExpansion(knl, order)\n", "local_expn = VolumeTaylorLocalExpansion(knl, order)\n", @@ -38,203 +42,145 @@ "cl_ctx = cl.create_some_context(answers=[\"port\"])\n", "\n", "tctx = t.ToyContext(\n", - " cl_ctx,\n", - " knl,\n", - " mpole_expn_class=type(mpole_expn),\n", - " local_expn_class=type(local_expn),\n", - " extra_kernel_kwargs=extra_kernel_kwargs,\n", - " )\n" + " cl_ctx,\n", + " knl,\n", + " mpole_expn_class=type(mpole_expn),\n", + " local_expn_class=type(local_expn),\n", + " extra_kernel_kwargs=extra_kernel_kwargs,\n", + ")" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "pt_src = t.PointSources(\n", - " tctx,\n", - " np.random.rand(2, 50) - 0.5,\n", - " np.ones(50))\n", + "pt_src = t.PointSources(tctx, rng.uniform(-0.5, 0.5, size=(2, 50)), np.ones(50))\n", "\n", "mexp = t.multipole_expand(pt_src, [0, 0], order)" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 5.00000000e+01, 4.76258789e+00, 6.63902810e-01,\n", - " 2.17149444e+00, 6.22396090e-01, 2.36567252e+00,\n", - " 5.93173776e-02, 6.33392972e-02, 1.15590385e-01,\n", - " 2.35250166e-02, 2.60421537e-02, 1.58948983e-02,\n", - " 9.97399769e-02, 1.12510066e-02, 3.13387666e-02])" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mexp.coeffs" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def build_pde_mat(expn, pde):\n", " coeff_ids = expn.get_coefficient_identifiers()\n", " id_to_index = expn._storage_loc_dict\n", - " \n", + "\n", " # FIXME: specific to scalar PDEs\n", " pde_mat = np.zeros((len(coeff_ids), len(coeff_ids)))\n", - " \n", + "\n", " row = 0\n", " for base_coeff_id in coeff_ids:\n", " valid = True\n", - " \n", + "\n", " for pde_coeff, coeff_id_offset in pde:\n", " other_coeff = add_tuples(base_coeff_id, coeff_id_offset)\n", - " if not other_coeff in id_to_index:\n", + " if other_coeff not in id_to_index:\n", " valid = False\n", " break\n", - " \n", + "\n", " pde_mat[row, id_to_index[other_coeff]] = pde_coeff\n", - " \n", + "\n", " if valid:\n", " row += 1\n", " else:\n", " pde_mat[row] = 0\n", - " \n", + "\n", " return pde_mat[:row]\n", "\n", + "\n", "pde_mat = build_pde_mat(mpole_expn, pde)" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def find_nullspace(mat, tol=1e-10):\n", - " u, sig, vt = la.svd(pde_mat, full_matrices=True)\n", + " _u, sig, vt = la.svd(pde_mat, full_matrices=True)\n", " zerosig = np.where(np.abs(sig) < tol)[0]\n", - " if zerosig:\n", + " if zerosig.size:\n", " nullsp_start = zerosig[0]\n", " assert np.array_equal(zerosig, np.arange(nullsp_start, pde_mat.shape[1]))\n", " else:\n", " nullsp_start = pde_mat.shape[0]\n", - " \n", + "\n", " return vt[nullsp_start:].T\n", - " \n", + "\n", + "\n", "nullsp = find_nullspace(pde_mat)" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4.3183836498795062e-16" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "la.norm(pde_mat @ nullsp)" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def build_translation_mat(mexp, to_center):\n", " n = len(mexp.coeffs)\n", " result = np.zeros((n, n))\n", - " \n", + "\n", " for j in range(n):\n", " unit_coeffs = np.zeros(n)\n", " unit_coeffs[j] = 1\n", " unit_mexp = mexp.with_coeffs(unit_coeffs)\n", - " \n", + "\n", " result[:, j] = t.multipole_expand(unit_mexp, to_center).coeffs\n", - " \n", + "\n", " return result\n", "\n", + "\n", "new_center = np.array([0, 0.5])\n", "tmat = build_translation_mat(mexp, new_center)" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADcBJREFUeJzt3X+s3XV9x/Hn29tS1gLSgijQZoVJ\nmoBZBmmw6uLMOn6OUP/wj5K5dWJCzOIGxkVLSGayv+ZcdFtmZhpwYxkBM4TZGBg0VbMsWaultoVa\naCtjUFspk4UKxpay9/4430su13N/fX/dc/08H8nN+fX59vvu99zX/Z7zPd/PeUdmIqk8b5vvAiTN\nD8MvFcrwS4Uy/FKhDL9UKMMvFcrwS4Uy/FKhDL9UqEV9ruz8FWO5etXiOS93cN/SDqqRfvn8nNc4\nlSdjNmN7Df/qVYv57mOr5rzcdRf9RgfVSL98dub2WY/1Zb9UKMMvFapR+CPi+oh4JiIOR8TmtoqS\n1L3a4Y+IMeDLwA3A5cAtEXF5W4VJ6laTPf/VwOHMfDYzTwEPABvaKUtS15qE/2LghQm3j1T3SVoA\nmoR/2GeJv/C1QBFxW0TsiohdL/3kjQark9SmJuE/Akz80H4lcHTyoMzckplrM3PtO84ba7A6SW1q\nEv7vAZdFxCURcQawEdjaTlmSulb7DL/MPB0RnwQeA8aAr2bm/tYqk9SpRqf3ZuYjwCMt1SKpR57h\nJxXK8EuF6nVW38F9S2vN0Hvs6J7a63RGoDSce36pUIZfKpThlwpl+KVCGX6pUIZfKpThlwpl+KVC\nGX6pUIZfKpThlwpl+KVCGX6pUL3O6ju5ahmHP71uzstdd1H9dTojUBrOPb9UKMMvFcrwS4Vq0qtv\nVUR8OyIORMT+iLi9zcIkdavJAb/TwKczc3dEnA08ERHbMvMHLdUmqUO19/yZeSwzd1fXfwocwF59\n0oLRynv+iFgNXAnsbOPfk9S9xuGPiLOArwN3ZOaJIY+/2ajzjVdfa7o6SS1pFP6IWMwg+Pdl5kPD\nxkxs1Dl21rImq5PUoiZH+wO4BziQmV9sryRJfWiy5/8A8PvAb0fEnurnxpbqktSxJl16/wOIFmuR\n1CPP8JMKZfilQkVm9rayc2JFvjfW97a+pupOB3YqsObLztzOiXx5Vm/H3fNLhTL8UqEMv1Qowy8V\nyvBLhTL8UqEMv1Qowy8VyvBLhTL8UqEMv1Qowy8VyvBLheq1UWddh7809+ae4979qR21l607O8/m\noFoI3PNLhTL8UqEMv1SoNpp2jEXE9yPim20UJKkfbez5b2fQp0/SAtK0Y89K4HeBu9spR1Jfmu75\n/xr4DPB/LdQiqUdN2nXdBBzPzCdmGPdmo87XOVl3dZJa1rRd180R8RzwAIO2Xf88edDERp2LWdJg\ndZLaVDv8mXlnZq7MzNXARuBbmfnR1iqT1Ck/55cK1cq5/Zn5HeA7bfxbkvrhnl8qlOGXCtXrlN44\ncwlj714z5+WaTMudj+nATabl2hxUfXHPLxXK8EuFMvxSoQy/VCjDLxXK8EuFMvxSoQy/VCjDLxXK\n8EuFMvxSoQy/VCjDLxUqMrO3lZ0TK/K9sb639ZXE5qAC2JnbOZEvx2zGuueXCmX4pUIZfqlQTdt1\nnRsRD0bE0xFxICLe11ZhkrrV9Gu8/gb4t8z8SEScASxtoSZJPagd/og4B/gg8IcAmXkKONVOWZK6\n1uRl/6XAS8A/RMT3I+LuiFjWUl2SOtYk/IuAq4C/z8wrgdeAzZMH2ahTGk1Nwn8EOJKZO6vbDzL4\nY/AWNuqURlOTRp0/Bl6IiPEv4l8P/KCVqiR1runR/j8G7quO9D8LfKx5SZL60Cj8mbkHWNtSLZJ6\n5Bl+UqEMv1SoXht1LjR1m3w2aSxal81BNVfu+aVCGX6pUIZfKpThlwpl+KVCGX6pUIZfKpThlwpl\n+KVCGX6pUIZfKpThlwpl+KVCLYhGnWNXrJl50BTe2P9M7WXrqjsbEOZnRmBdNgcdPTbqlDQjwy8V\nyvBLhWraqPNTEbE/Ip6KiPsj4sy2CpPUrdrhj4iLgT8B1mbme4AxYGNbhUnqVtOX/YuAX4mIRQw6\n9B5tXpKkPjTp2PMj4K+A54FjwCuZ+XhbhUnqVpOX/cuBDcAlwEXAsoj46JBxNuqURlCTl/2/A/xX\nZr6Uma8DDwHvnzzIRp3SaGoS/ueBdRGxNCKCQaPOA+2UJalrTd7z72TQlns38GT1b21pqS5JHWva\nqPNzwOdaqkVSjzzDTyqU4ZcK1e+U3redl+uW3DDn5fJk/Y8IS5kOvJCmAoPNQbvilF5JMzL8UqEM\nv1Qowy8VyvBLhTL8UqEMv1Qowy8VyvBLhTL8UqEMv1Qowy8VyvBLhVoQjTqlcTYHnZ6z+iTNyPBL\nhTL8UqFmDH9EfDUijkfEUxPuWxER2yLiUHW5vNsyJbVtNnv+fwSun3TfZmB7Zl4GbK9uS1pAZgx/\nZv478PKkuzcA91bX7wU+3HJdkjpW9z3/OzPzGEB1eUF7JUnqQ6OmHbMREbcBtwGcydKuVydpluru\n+V+MiAsBqsvjUw20Uac0muqGfyuwqbq+CfhGO+VI6stsPuq7H/hPYE1EHImIjwN/AVwTEYeAa6rb\nkhaQGd/zZ+YtUzzkSfrSAuYZflKhDL9UqM4/6lM/6jb4hIXV5LPJtFybg76Ve36pUIZfKpThlwpl\n+KVCGX6pUIZfKpThlwpl+KVCGX6pUIZfKpThlwpl+KVCGX6pUDbqnMbYFWtqLffG/mdarqRbdWcE\nLqTZgE0spOagNuqUNCPDLxXK8EuFqtuo8wsR8XRE7IuIhyPi3G7LlNS2uo06twHvycxfBw4Cd7Zc\nl6SO1WrUmZmPZ+bp6uYOYGUHtUnqUBvv+W8FHm3h35HUo0bf3hsRdwGngfumGWOjTmkE1Q5/RGwC\nbgLW5zRnCmXmFmALDE7yqbs+Se2qFf6IuB74LPBbmfmzdkuS1Ie6jTr/Djgb2BYReyLiKx3XKall\ndRt13tNBLZJ65Bl+UqEMv1SoBTGlN5Ysqb3OPHmy9rJ11Z0KDAtrOnApzUGb6Ls5qFN6Jc3I8EuF\nMvxSoQy/VCjDLxXK8EuFMvxSoQy/VCjDLxXK8EuFMvxSoQy/VCjDLxVqQczqa6KUGYELaTYg2Bx0\nJnVnA1593Qvs2vtzZ/VJmprhlwpl+KVC1WrUOeGxP42IjIjzuylPUlfqNuokIlYB1wDPt1yTpB7U\natRZ+RLwGcAuPNICVOs9f0TcDPwoM/e2XI+knsy5XVdELAXuAq6d5XgbdUojqM6e/9eAS4C9EfEc\nsBLYHRHvGjY4M7dk5trMXLuY+ifcSGrXnPf8mfkkcMH47eoPwNrM/J8W65LUsbqNOiUtcHUbdU58\nfHVr1UjqjWf4SYUy/FKhep3SGxEvAf89xcPnA6N00HDU6oHRq8l6pjcf9fxqZr5jNgN7Df90ImJX\nZq6d7zrGjVo9MHo1Wc/0Rq2eyXzZLxXK8EuFGqXwb5nvAiYZtXpg9GqynumNWj1vMTLv+SX1a5T2\n/JJ61Hv4I+L6iHgmIg5HxOYhjy+JiK9Vj++MiNUd1rIqIr4dEQciYn9E3D5kzIci4pWI2FP9/FlX\n9UxY53MR8WS1vl1DHo+I+NtqG+2LiKs6rGXNhP/7nog4ERF3TBrT6TYa9m1SEbEiIrZFxKHqcvkU\ny26qxhyKiE0d1vOFiHi6ej4ejohzp1h22ue2V5nZ2w8wBvwQuBQ4A9gLXD5pzB8BX6mubwS+1mE9\nFwJXVdfPBg4OqedDwDd73k7PAedP8/iNwKNAAOuAnT0+fz9m8Flyb9sI+CBwFfDUhPv+EthcXd8M\nfH7IciuAZ6vL5dX15R3Vcy2wqLr++WH1zOa57fOn7z3/1cDhzHw2M08BDwAbJo3ZANxbXX8QWB8R\ns/oe8rnKzGOZubu6/lPgAHBxF+tq2Qbgn3JgB3BuRFzYw3rXAz/MzKlO1OpEDv82qYm/J/cCHx6y\n6HXAtsx8OTP/F9jGkK+ka6OezHw8M09XN3cwmOo+0voO/8XACxNuH+EXw/bmmGpjvgKc13Vh1duL\nK4GdQx5+X0TsjYhHI+KKrmth8NVoj0fEE9WXoUw2m+3YhY3A/VM81vc2emdmHoPBH3EmTDOfYL62\n060MXpkNM9Nz25s5z+dvaNgefPLHDbMZ06qIOAv4OnBHZp6Y9PBuBi9zX42IG4F/BS7rsh7gA5l5\nNCIuALZFxNPV3ubNkocs0/U2OgO4GbhzyMPzsY1mYz62013AaeC+KYbM9Nz2pu89/xFg1YTbK4Gj\nU42JiEXA2xn+BaKtiIjFDIJ/X2Y+NPnxzDyRma9W1x8BFnf9VeWZebS6PA48zODt0kSz2Y5tuwHY\nnZkvTn5gPrYR8OL4W53q8viQMb1up+qA4k3A72X1Bn+yWTy3vek7/N8DLouIS6o9yUZg66QxW4Hx\no7IfAb411YZsqjqWcA9wIDO/OMWYd40fc4iIqxlss590UU+1jmURcfb4dQYHkib3TNgK/EF11H8d\n8Mr4S+AO3cIUL/n73kaVib8nm4BvDBnzGHBtRCyvPg24trqvdRFxPfBZ4ObM/NkUY2bz3Pan7yOM\nDI5UH2Rw1P+u6r4/Z7DRAM4E/gU4DHwXuLTDWn6TwcvAfcCe6udG4BPAJ6oxnwT2M/hkYgfw/o63\nz6XVuvZW6x3fRhNrCuDL1TZ8ksHXqHVZ01IGYX77hPt620YM/ugcA15nsDf/OIPjQNuBQ9Xlimrs\nWuDuCcveWv0uHQY+1mE9hxkcXxj/PRr/xOoi4JHpntv5+vEMP6lQnuEnFcrwS4Uy/FKhDL9UKMMv\nFcrwS4Uy/FKhDL9UqP8H8zJzDMuV3ZMAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.imshow(tmat)" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(15, 9)" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "nullsp.shape" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -243,23 +189,25 @@ " expansion_mat = nullsp\n", "elif 1:\n", " chosen_indices_and_coeff_ids = [\n", - " (i, cid) for i, cid in enumerate(mpole_expn.get_coefficient_identifiers())\n", + " (i, cid)\n", + " for i, cid in enumerate(mpole_expn.get_coefficient_identifiers())\n", " if cid[0] < 2\n", " ]\n", " chosen_indices = [idx for idx, _ in chosen_indices_and_coeff_ids]\n", - " \n", - " expansion_mat = np.zeros(\n", - " (len(mpole_expn.get_coefficient_identifiers()), len(chosen_indices_and_coeff_ids))\n", - " )\n", + "\n", + " expansion_mat = np.zeros((\n", + " len(mpole_expn.get_coefficient_identifiers()),\n", + " len(chosen_indices_and_coeff_ids),\n", + " ))\n", " for i, (idx, _) in enumerate(chosen_indices_and_coeff_ids):\n", " expansion_mat[idx, i] = 1\n", - " \n", + "\n", " reduction_mat = (nullsp @ la.inv(nullsp[chosen_indices])).T" ] }, { "cell_type": "code", - "execution_count": 70, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -270,162 +218,83 @@ " plt.colorbar()\n", "\n", " for cid, coeff in zip(expn.get_coefficient_identifiers(), coeffs):\n", - " plt.text(cid[0], cid[1]+0.2, \"%.1f\" % coeff)\n" + " plt.text(cid[0], cid[1] + 0.2, f\"{coeff:.1f}\")" ] }, { "cell_type": "code", - "execution_count": 71, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWgAAAEACAYAAACeQuziAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xt8VOW56PHfk2RIuN+SoBAQFaQI\nxagBTBXrrdWmFqpSodLWitWj4m6r5Wi7PWUXD91bdz3Y5sCpxehGqRtrtSqtKB8QL20tYtDINQoI\nSriGO4FcJjPP+WMGGpNJspK5rTXzfD+f9WFmzZp3PYvJPHnzrvciqooxxhj3yUh2AMYYYyKzBG2M\nMS5lCdoYY1zKErQxxriUJWhjjHEpS9DGGONSnk3QIvIFEfmHiNSLyMw2jrtbRLaIiIpIbiJjNMaY\naHg2QQMHgR8Cj7Rz3N+Bq4BP4x6RMcbEkGcTtKruU9X3AH87x32gqtsTE5UxxsSOZxO0McYkg4gM\nFpE3RGSTiGwQkR/F61xZ8SrYGGNSVCPwE1V9X0R6AmtEZLmqboz1iTxVgxaRGSJSEd4GJjseY0z6\nUdXdqvp++PExYBMwKB7n8lQNWlXnA/OTHYcxxgCIyFDgfODduJSfrNnscnNzdejQoZ1+v9/vZ9Om\nTQQCAUSEjIwMRo0aRWZmJps3b+aMM86gS5cu7Nu3jz179uD3+/H5fPTq1YtozmuMSbw1a9bsV9W8\naMq4+vLueuBgwNn51tZvAOqa7FqgqguaHiMiPYC3gF+q6p+iia01SatBDx06lPLy8mSd3hjjISIS\ndTfZAwcDrF42xNGxmadvrlPVojbi8QEvAM/EKzmDx5o4jDGmsxQIEoy6HBER4Algk6rOjbrANliC\nNsakBUXxq7MmjnZcDHwXWCciFeF9/6qqS2NReFOWoI0xaSMWNWhV/Rsg0UfTPkvQxpi0oCgBjy3x\nZwnaGJM2gqRoghaRTKAc2Kmq1zZ7LRt4GrgQOABMidX8F6rKjhMbqDz6d7KkC6P7XE5+ztBYFG2M\nSSMKBFI1QQM/IjRipleE124FDqnqMBGZCjwMTIk2OFXllV2lbDzyNn5tQBDeO/hnLs+/mXG5k6It\n3hiTZrxWg3Y01FtECoCvA2WtHDIJeCr8+HngynBXlKh8dmJ9ODnXE2pBCtKoDazct5Bj/oPRFm+M\nSSMK+FUdbW7hdC6OXwP3Qau3QAcBOwBUtRE4AvSPNrjKo+/g14YW+zPIZGuNDXIxxjinKAGHm1u0\nm6BF5Fpgn6quaeuwCPtaXKWI3C4i5SJSXl1d3W5wWeJDIhQtImSJr933G2PMKQoBh5tbOKlBXwxM\nFJHtwLPAFSLy+2bHVAGDAUQkC+hNaMWTz1HVBapapKpFeXntD6sf3edyMqVlM7lqkGE9xzkI3Rhj\nQkIjCZ1tbtFuglbVn6lqgaoOBaYCK1X1O80OWwLcHH48OXxM1L+HBuScyWX53yNTfPgkG5/k4JNs\nrhv8U3Iyu0dbvDEmrQgBh5tbdLoftIg8CJSr6hJC49IXicgWQjXnqTGKj/G53+Tc3hPYWrOGTPEx\nvOc4S87GmA4L3SR0T/J1okMJWlXfBN4MP57VZH8d8K1YBtZUT19/Cvt+NV7FG2PSQKgfdAonaGOM\n8bJgKtegjTHGq6wGbYwxLqUIAW8tw2oJ2hiTPqyJwxhjXEgRGjQz2WF0iCVoY0xaCA1U8VYTh7ei\nNcaYKMRqoIqIXCMiH4nIFhH5abzitRq0MSYtqAoBjb5OGp4bfz7wFULTXLwnIktUdWPUhTdjNWhj\nTNoIIo62dowDtqjqJ6raQGiOorhMUG81aGNMWgjdJIxJyjs1vXJYFTA+FgU3ZwnaGJMWOniTMFdE\nmk46v0BVF4QfO5peORYsQRtj0kbAeT/o/apa1Mprp6ZXDisAdkUTV2ssQRtj0kIMRxK+BwwXkTOB\nnYRm77wpFgU3ZwnaGJM2gjHoxaGqjSJyN7AMyASeVNUNURccgSVoY0xaCE2WFJuOa6q6FFgak8La\nYAnaGJMWFMHvsaHeThaNzRGR1SLyoYhsEJHZEY75vohUi0hFePtBfMI1xpjOUYWAZjja3MJJDboe\nuEJVa0TEB/xNRF5V1VXNjvuDqt4d+xCNMSYWHA1CcZV2E3R48dea8FNfeHPRwuTGGNM+BVfVjp1w\nFK2IZIpIBbAPWK6q70Y47AYRWSsiz4vI4AivIyK3i0i5iJRXV1dHEbYxxnRcgAxHm1s4ikRVA6pa\nSKhD9jgRGd3skD8DQ1V1DLACeKqVchaoapGqFuXl5UUTtzHGdIgiBNXZ5hYd+lWhqocJrep9TbP9\nB1S1Pvz0ceDCmERnjDExooBfsxxtbuGkF0eeiPQJP+4KXAVUNjvm9CZPJwKbYhmkMcZEz9lc0G5a\nWNbJr4rTgafCc6BmAM+p6l9E5EGgXFWXAD8UkYlAI3AQ+H68AjbGmM5QYjOSMJGc9OJYC5wfYf+s\nJo9/BvwstqEZY0xsual27IR7GluMMSaOVMVzNWhvRdtEZWUlxcXFZGdn88gjj7R63LRp0xgxYgSj\nR49m+vTp+P3+BEYZW06v+fXXX+eCCy6gsLCQSy65hC1btiQwSmPcKXSTMNPR5haeTdD9+vWjtLSU\nmTNntnnctGnTqKysZN26ddTW1lJWVpagCGPP6TXfeeedPPPMM1RUVHDTTTcxZ86cBEVojJuJ54Z6\nuyeSDsrPz2fs2LH4fL42jyspKUFEEBHGjRtHVVVVgiKMPafXLCIcPXoUgCNHjjBw4MBEhGeMq4Vu\nEnqrH3TatEH7/X4WLVrEb37zm2SHEndlZWWUlJTQtWtXevXqxapVzadNMSY9uWmUoBPeijYKd911\nF5deeikTJkxIdihx9+ijj7J06VKqqqq45ZZbuPfee5MdkjFJl/IjCZNt/vz5FBYWUlhYyK5dzpcA\nmz17NtXV1cydOzeO0cVHR6+5urqaDz/8kPHjQ4sMT5kyhXfeeSfeYRrjCUEyHG1u4akmjhkzZjBj\nxowOvaesrIxly5bx+uuvk5Hhnv94pzp6zX379uXIkSN8/PHHnHPOOSxfvpyRI0fGMUJjvEEV/MH4\n5wAR+RXwDaAB2ArcEp4mo8O8l7HC9uzZQ0FBAXPnzmXOnDkUFBScujFWUlJyqrZ5xx13sHfvXoqL\niyksLOTBBx9MZthRcXLNWVlZPP7449xwww2cd955LFq0iF/96ldJjtyY5As1cWQ42qK0HBgdnjzu\nY6IYxCeh6Z4Tr6ioSMvLy5NybmOMt4jIGlUtiqaM/HP76+Tff83Rsb+98JmozwcgItcBk1V1Wmfe\n76kmDmOM6ayT3ewSbDrwh86+2RK0MSZNdGiod66INP0Tf4GqLjhVksgK4LQI73tAVV8OH/MAoQnk\nnulkwJagjTHpowNrEu5vq4lDVa9q680icjNwLXClRtGObAnaGJMWQr044j/PhohcA9wPfFlVT0RT\nliVoY0xaODlQJQHmAdnAchEBWKWqd3SmoHYTtIjkAG+HT5gFPK+q/9bsmGzgaUJLXR0Apqjq9s4E\nFEl13Wd8dGw1WeLj3N4X08uXG6uiXSmgjaw7/AF76qoYkDOQL/a+kKwM+11qTLQ60MTRaao6LFZl\nOfnW1wNXqGqNiPiAv4nIq6radIKHW4FDqjpMRKYCDwNTYhHg63ue5t0DSwhqAJEMVu5dxNcH3sV5\nfa+IRfGuc8x/lLkf/YJjjUeoD9aRnZFDt6zu/GTEbHr7+iY7PGM8K0m9OKLS7i1NDakJP/WFt+aN\n3pP450rezwNXSrhuH42dJz5m9YE/06gNBAkQUD+N2sAru/4fJxqPRlu8K71QtYhDDfupD9YBUB+s\n40jDIZ777L+SHJkx3peggSox4ygSEckUkQpgH7BcVd9tdsggYAeAqjYCR4D+0Qa34chf8WtDy3jI\nYPOx96It3pXWHi4nQOBz+4IEWX+kgmQNKjImFagKjZrhaHMLR5GoakBVC4ECYJyIjG52SKTacots\nIiK3i0i5iJRXV1d3PFpjjIlCSs9mF57w403gmmYvVQGDAUQkC+hNaHXv5u9foKpFqlqUl5fX7vlG\n9Z6AT7q0jIMgw3uO7UjonnFenyIy+XxXoAwyGN27kBi0GhmTtrw4YX+7CVpE8kSkT/hxV+AqoLLZ\nYUuAm8OPJwMro+mcfdKgbucwrv83yJIuZJBJpvjIki58feBddMvqFW3xrnR9wXfp26U/2Rk5gJCd\nkUNvX19uHHJLskMzxvO8lqCd9OI4HXhKRDIJJfTnVPUvIvIgUK6qS4AngEUisoVQzXlqrAK88rTv\n8cU+l/FxmnSz6+nrxf8a9SvrZmdMjCWwH3TMtPutV9W1wPkR9s9q8rgO+FZsQ/un/Jwh5OcMiVfx\nrpMpWRT2HQukZjOOMcmSiH7QsWTVMmNMWlCFxgRM2B9LlqCNMWkj5Zo4jDEmFaRkG7QxxqQKtQRt\njDHuZDcJjTHGhVStDdoYY1xKCFgvDmOMcSevtUF769eJMcZ0UqLn4hCRmSKiItLpoc9WgzbGpAcN\ntUMngogMBr4CfBZNOVaDNsakjSDiaIuBR4H7iDDtckdYDdoYkxY0QTcJRWQisFNVP4x2imBL0MaY\ntNGBJo5cESlv8nyBqi44+UREVgCnRXjfA8C/Al/tbIxNWYI2xqSNDvTi2K+qRa2Xo1dF2i8iXwTO\nBE7WnguA90VknKru6WC4lqCNMelBNf7d7FR1HZB/8rmIbAeKVHV/Z8qzBG2MSRteG0noZMmrwSLy\nhohsEpENIvKjCMdcJiJHRKQivM2KVJYxxiSTqrMtdufToZ2tPYOzGnQj8BNVfV9EegJrRGS5qm5s\ndtxfVfXazgZijDHxpAhBjw31bjdaVd2tqu+HHx8DNgGD4h2YMcbEmjrc3KJDv05EZCih9QnfjfBy\nsYh8KCKvisioGMRmjDGxE75J6GRzC8c3CUWkB/AC8GNVPdrs5feBM1S1RkRKgJeA4RHKuB24HWDI\nkPRZBNYY4xJuqh474KgGLSI+Qsn5GVX9U/PXVfWoqtaEHy8FfJEmCFHVBapapKpFeXl5UYZujDEd\nk3I1aAn1tn4C2KSqc1s55jRgr6qqiIwjlPgPxDRSY4yJggLBoHuSrxNOmjguBr4LrBORivC+fwWG\nAKjqY8Bk4E4RaQRqgamqiZo3yhhjHFDARbVjJ9pN0Kr6N2h7eidVnQfMi1VQxhgTD16rNtpIQmNM\n+vBYgvZWr+2w1157jREjRjBs2DAeeuihVo97/vnnERHKy8tbPcZLKisrKS4uJjs7m0ceeaTV46ZN\nm8aIESMYPXo006dPx+/3JzDK2HJ6zdu2bWP8+PEMHz6cKVOm0NDQkMAojTc4u0HoppuEnkvQgUCA\nGTNm8Oqrr7Jx40YWL17Mxo3NBzXCsWPHKC0tZfz48UmIMj769etHaWkpM2fObPO4adOmUVlZybp1\n66itraWsrCxBEcae02u+//77ueeee9i8eTN9+/bliSeeSFCExlM8NlLFcwl69erVDBs2jLPOOosu\nXbowdepUXn755RbH/fznP+e+++4jJycnCVHGR35+PmPHjsXn87V5XElJCSKCiDBu3DiqqqoSFGHs\nOblmVWXlypVMnjwZgJtvvpmXXnopUSEar1DQoDja3MJzCXrnzp0MHjz41POCggJ27tz5uWM++OAD\nduzYwbXXpvfUIH6/n0WLFnHNNdckO5S4OnDgAH369CErK3RLJdLPhDEh4nBzB8/dJIzUe6/psjLB\nYJB77rmHhQsXJjAqd7rrrru49NJLmTBhQrJDiav2fiaMOcVFzRdOeK4GXVBQwI4dO049r6qqYuDA\ngaeeHzt2jPXr13PZZZcxdOhQVq1axcSJEz17o3D+/PkUFhZSWFjIrl27HL9v9uzZVFdXM3duxLFF\nrtbRa87NzeXw4cM0NjYCLX8mjDnF2qDja+zYsWzevJlt27bR0NDAs88+y8SJE0+93rt3b/bv38/2\n7dvZvn07F110EUuWLKGoqNXVa1xtxowZVFRUUFFR4TjplJWVsWzZMhYvXkxGhuc+4g5fs4hw+eWX\n8/zzzwPw1FNPMWnSpHiHabzm5EAVJ5tLeO7bm5WVxbx587j66qsZOXIkN954I6NGjWLWrFksWbIk\n2eHF1Z49eygoKGDu3LnMmTOHgoICjh4NzVtVUlJyqrZ5xx13sHfvXoqLiyksLOTBBx9MZthRcXrN\nDz/8MHPnzmXYsGEcOHCAW2+9NZlhG5dK9IT90ZJkjcguKipSrzY7GGMSS0TWtLWIqxPZQwv0tP/V\nYkGoiD677b6ozici/wLcTWjBk1dU9b7OlOO5m4TGGNNZkoD6qIhcDkwCxqhqvYjkt/ee1liCNsak\nh8TdALwTeEhV6wFUdV9nC/JcG7QxxnSOwxuE0d8kPAeYICLvishbIjK2swVZDdoYkz6c16BzRaTp\nTbIFqrrg5BMRWQGcFuF9DxDKq32Bi4CxwHMiclZnpmC2BG2MSR9Bx0fub+smoape1dprInIn8Kdw\nQl4tIkEgF6juQKSAgyYOERksIm+IyCYR2SAiLW6DSkipiGwRkbUickFHA2lLfeNedh/7I3trXqYx\n0Hw5xNSjqnx6fD3lB19lW83aiCPlUk194Dgbj7zBh4de46i/wz/HxrQvcf2gXwKuABCRc4AuwP7O\nFOSkBt0I/ERV3xeRnsAaEVmuqk2nkPsaoUVihwPjgd+G/43ajiP/xfbDc4EMBOFjZnFu3q/p3+3y\nWBTvOvWBEzy97QEONOwkqEEyJIM+vgHcfNZ/0DWzR7LDi4vtNR/w4o4HERFUgwRRvpT7bYrzpiY7\nNJNiEtGLA3gSeFJE1gMNwM2dXWGq3Rq0qu5W1ffDj48Bm4BBzQ6bBDytIauAPiJyemcCaqqmoZLt\nhx8lqPUEtZaAniCotWys/jGNwWPRFu9Ky/f8F/vqP6UhWEejNtAQrGN//U5e3fW7ZIcWFw3BOl6s\n+t/4tY6GYC1+rSegDfxj/7Psrv0o2eGZVJOAod6q2qCq31HV0ap6gaqu7GxZHerFISJDgfOBd5u9\nNAjY0eR5FS2TeIftq1lCUFtOvC4IB068EW3xrrTuyFsEtPFz+4I0suno31OyqWN7zRokwuxhAW1g\n3eHlSYjIGPdwnKBFpAfwAvBjVW3eEByp0aZFNhGR20WkXETKq6vbb2cMJeeWSUnRiIk7FQQ10Mr+\nIK6axSVGAupHW/mMA8HU/IxN8og629zCUYIWER+h5PyMqv4pwiFVwOAmzwuAFtOQqeoCVS1S1aK8\nvLx2z5vb/atkSMsJ91UD9Ot6qZPQPWdYjwuQZh+LIJzZfQwiqddtfWj3Cwg2+4sBwCc5jOidmp+x\nSRIFguJscwknvTgEeALYpKqtzV25BPheuDfHRcARVd0dbXC9s8eS372EDOlKqJKeSYbkcFbfmWRn\ndXr0pKtdc/rtdMvqhU+yAfBJNl0ze/L1QXclObL46JrViysH3EGWdEHIBASf5HB2z/Gc2f3CZIdn\nUo3Hpht10ovjYuC7wDoRqQjv+1dgCICqPgYsBUqALcAJ4JZYBCcinNP/3xnQ43r2H19GhmST32Mi\nPbqMiEXxrtS7Sx7/Mvx3rDv8FnvqPiE/5wzG9Lmc7MxuyQ4tbgr7lTC4+2g2HH6dhmAdw3sVM6Tb\neTbpvok5NzVfONFuglbVv9HOGjDhLiQzYhVUUyJCn5yx9Mnp9GhJz+mS2ZUL+6f2MlXN9c8ewqUD\nYvJ73ZjWpVqCNsaYlGEJ2hhj3MdtPTScsARtjEkfLuqh4YQlaGNM2rAatDHGuJUlaGOMcSFrgzbG\nGBezBG2MMe4kzifsd4XUm9zBGGNShNWgjTHpw2NNHFaDNsakB4dTjUZ7I1FECkVklYhUhKdXHtfZ\nsixBG2PSR2Jms/tPYLaqFgKzws87xZo4jDHpIzFNHAr0Cj/uTYS58Z2yBG2MSQtCwnpx/BhYJiKP\nEGql+FJnC7IEbYxJDx1rX84VkfImzxeo6oKTT0RkBXBahPc9AFwJ3KOqL4jIjYQWPLmqMyFbgjbG\npA/nCXq/qha1WoxqqwlXRJ4GfhR++kegzPFZm3Gy5NWTIrJPRNa38vplInIkfMeyQkRmdTYYY4yJ\nq8TcJNwFfDn8+Apgc2cLclKDXgjMA55u45i/quq1nQ3CGGMSIUFzcdwG/EZEsoA64PbOFuRkyau3\nRWRoZ09gjDGukYAEHV4mMCYrHseqH3SxiHwoIq+KyKgYlWmMMbGjoV4cTja3iMVNwveBM1S1RkRK\ngJeA4ZEOFJHbCVf3hwwZEoNTG2NMB6TbUG9VPaqqNeHHSwGfiOS2cuwCVS1S1aK8vLxoT22MMR2S\niKHesRR1ghaR00REwo/Hhcs8EG25xhgTc4npxREz7TZxiMhi4DJCHbergH8DfACq+hgwGbhTRBqB\nWmCqqrroEo0xBtclXyec9OL4djuvzyPUDc8YY1xLcFfzhRM2ktAYkza8lqA9O91oZWUlxcXFZGdn\n88gjj7R63LZt2xg/fjzDhw9nypQpNDQ0JDDK2HJ6zarKAw88wDnnnMPIkSMpLS1NYJSx5fSap02b\nxogRIxg9ejTTp0/H7/cnMMrYcXq9r7/+OhdccAGFhYVccsklbNmyJYFRepjH2qA9m6D79etHaWkp\nM2fObPO4+++/n3vuuYfNmzfTt29fnnjiiQRFGHtOr3nhwoXs2LGDyspKNm3axNSpUxMUYew5veZp\n06ZRWVnJunXrqK2tpays09MfJJXT673zzjt55plnqKio4KabbmLOnDkJitDjLEEnRn5+PmPHjsXn\n87V6jKqycuVKJk+eDMDNN9/MSy+9lKgQY87JNQP89re/ZdasWWRkZJx6n1c5veaSkhJEBBFh3Lhx\nVFVVJSjC2HJ6vSLC0aNHAThy5AgDBw5MRHjelqAVVWIppdugDxw4QJ8+fcjKCl1mQUEBO3fuTHJU\n8bd161b+8Ic/8OKLL5KXl0dpaSnDh0ccO5Ry/H4/ixYt4je/+U2yQ4mrsrIySkpK6Nq1K7169WLV\nqlXJDskbXJR8nfBsDdqJSL39wl22U1p9fT05OTmUl5dz2223MX369GSHlDB33XUXl156KRMmTEh2\nKHH16KOPsnTpUqqqqrjlllu49957kx2SJ3htqLenEvT8+fMpLCyksLCQXbvaX0UmNzeXw4cP09jY\nCEBVVZXn/hTs6DVD6C+FG264AYDrrruOtWvXxjPEmOvMNQPMnj2b6upq5s6dG8foYq+j11tdXc2H\nH37I+PHjAZgyZQrvvPNOvMNMCV5r4vBUgp4xYwYVFRVUVFQ4SrQiwuWXX87zzz8PwFNPPcWkSZPi\nHWZMdfSaAb75zW+ycuVKAN566y3OOeeceIYYc5255rKyMpYtW8bixYtPtb17RUevt2/fvhw5coSP\nP/4YgOXLlzNy5Mh4h+l9Tm8QuihBS7IG/RUVFWl5eXn7B7Ziz549FBUVcfToUTIyMujRowcbN26k\nV69elJSUUFZWxsCBA/nkk0+YOnUqBw8e5Pzzz+f3v/892dnZMbySxHF6zYcPH2batGl89tln9OjR\ng8cee4zzzjsv2eF3itNrzsrK4owzzqBnz54AXH/99cya5b21I5xe74svvnjqRnDfvn158sknOeus\ns5IdftyIyJq2VjhxolveYP3C9c6agj5YcG/U54sFzyZoY0z6iEWC7p43WL9wnbME/f7j7kjQKd2L\nwxhjmpKgi9ovHPBWY50xxnRWgtqgReRbIrJBRIIiUtTstZ+JyBYR+UhErm6vLKtBG2PSRoJ6aKwH\nrgd+97lzi5wLTAVGAQOBFSJyjqoGWivIatDGmPSRgBq0qm5S1Y8ivDQJeFZV61V1G7AFGNdWWZag\njTFpI8n9oAcBO5o8rwrva1W7CVpEnhSRfSKyvpXXRURKw+0qa0Xkgg6F7EB94Dibj/2DT2rKaQx6\ndza6jthTV8WHh1exu/azZIeSEAFtZOuxD6g8uoq6QE2yw0mIIw2HqDi0mq01HxFUFw1fS2XOa9C5\nIlLeZLu9aTEiskJE1kfY2hpoEWkYc5u/Dpy0QS8kNCH/0628/jVCi8QOB8YDvw3/GxMbDr/Ost3/\nlwzJBEAQrh/8CwZ3Hx2rU7iKP9jAwm2P8MnxTWRIJkENMKTbMKafeT/ZmTnJDi8uqk58xOJPZxPU\nACAEtJGrT7+NC/u1ew/Fk1SVF3c+w1+rV5AlWShKj6ye/MvwB+ifbWt1xo12aBj3/ra62anqVZ2I\noAoY3OR5AdDm0NF2a9Cq+jZwsI1DJgFPa8gqoI+InO4g2HYdrK9i2e5SGrWehuAJGoInqA8e54Ud\ns2gI1sXiFK6zdPdith7fiF8bqA/W4tcGPj2xmT/vau33o7c1Bv389/ZfUBuooT5YS33wBI3awLLd\nj7O3bluyw4uLisOr+fv+lTSqn7pgLfXBOg427GfBVm8NUfeakyuqJLGJYwkwVUSyReRMQpXa1W29\nIRZt0B1uV3Fq/eEV4VrV56nC1mPvxuIUrvPewTdp1M9PNt+ofsoPvR1x8iev21rzAUFaVmsC2sgH\nB1ckIaL4e2vfMhqC9Z/bpyjV9XvYV7cnSVGlCVVnWxRE5Lrw+q3FwCsisix0at0APAdsBF4DZrTV\ngwNi083OcbtKuB3ndoAhQ4a0W3Bd8DhBIiRogjQEazsWpUf4tT7i/oA2oigS8b/buxqCJyJ+IZQg\ndcHUbIuua+VnN0MyqE/Rn2u3SEQ3O1V9EXixldd+CfzSaVmxqEE7bldR1QWqWqSqRXl57be1De95\nET5p2e6qBBna/fxOhutuZ3cfFTEJD+0+ggxJvU43Q7uPIRDhl7AvI4cv9CpOQkTxV9hnHFnSckL+\nDMlgYNfBEd5hYsKDkyXF4hu/BPheuDfHRcARVd0dg3IZ2v18zuhe2CRJCz7JZlz/yfTuMiAWp3Cd\n6wpuISez66kvcJb4yMnoyvWDbk1yZPHR09ePL+dNxSfZnPxjzCc5DO76Bc7pOTa5wcXJl/Ovpl+X\nXLpkhCbtyiADn3ThpiG3kSk2diyevDYfdLs/DSKyGLiMULeTKuDfAB+Aqj4GLAVKCHW6PgHcEqvg\nRDK4bvDP2XzsH2w88iZZGdl47SUqAAAPGElEQVSM6fNVhnQfE6tTuE5e9kDuG/FrVh1YwY7arQzM\nOYMv5X6VXr6+yQ4tbi7J/xZDuo/ig0PLaQjWcm7vSxjZq/hUz51U0zWzG/eP/CWrD/yVjUc/pE+X\n/kzIvYrTuxYkO7SU56bk64TNZmeMcb1YzGbXo+9gPe/KHzk69p0X/qfNZmeMMYnkptVSnLAEbYxJ\nH5agjTHGfU4OVPESS9DGmPSg6rkJ+y1BG2PSh7fysyVoY0z6sCYOY4xxIwWsicMYY1zKW/nZErQx\nJn1YE4cxxriU9eIwxhg3ctlMdU5YgjbGpIXQQBVvZWhL0MaY9OGx2exSbwZ4Y4xphag62qI6h8i3\nRGSDiARFpKjJ/q+IyBoRWRf+94r2yrIatDEmPSSuDXo9cD3wu2b79wPfUNVdIjIaWEY767dagjbG\npInEzMWhqpsARKT5/g+aPN0A5IhItmorC5HisIlDRK4RkY9EZIuI/DTC698XkWoRqQhvP3B0JcYY\nk0jOV/XOFZHyJtvtMY7kBuCDtpIzOFvyKhOYD3yF0AKx74nIElXd2OzQP6jq3Z2N1hhj4ko7tOTV\n/rZWVBGRFcBpEV56QFVfbqtgERkFPAx8tb0gnDRxjAO2qOon4cKfBSYBzRO0Mca4W4y62anqVZ15\nn4gUAC8C31PVre0d76SJYxCwo8nzKiI3bN8gImtF5HkRsbXjjTHuow63OBCRPsArwM9U9e9O3uMk\nQUuEfc0v4c/AUFUdA6wAnmolwNtPtulUV1c7ic8YY2JGgkFHW1TnELlORKqAYuAVEVkWfuluYBjw\n8yb36/LbKstJE0cV0LRGXADsanqAqh5o8vRxQu0rLajqAmABhFb1dnBuY4yJDSUhA1VU9UVCzRjN\n988B5nSkLCc16PeA4SJypoh0AaYCS5oeICKnN3k6EdjUkSCMMSbeBGeDVNw0HLzdGrSqNorI3YQ6\nVWcCT6rqBhF5EChX1SXAD0VkItAIHAS+H8eYjTGmc1yUfJ1wNFBFVZcCS5vtm9Xk8c+An8U2NGOM\nibFUTNDGGON5CWqDjiVL0MaYtBFtD41E8+Rsdq+99hojRoxg2LBhPPTQQy1eX7hwIXl5eRQWFlJY\nWEhZWVkSooy9yspKiouLyc7O5pFHHmn1uHnz5jFs2DBEhP379ycwwthp7zN+7LHH+OIXv0hhYSGX\nXHIJGzemxrgpp5/xtGnTGDFiBKNHj2b69On4/f4ERhlbTq9ZQn4pIh+LyCYR+WHHzuRwmLeLmkE8\nl6ADgQAzZszg1VdfZePGjSxevDjil3PKlClUVFRQUVHBD36QGlOD9OvXj9LSUmbOnNnmcRdffDEr\nVqzgjDPOSFBkseXkM77ppptYt24dFRUV3Hfffdx7771Jija2nH7G06ZNo7KyknXr1lFbW+vpSojT\naybU+WAw8AVVHQk826ETKZag42316tUMGzaMs846iy5dujB16lRefrnNoe8pIz8/n7Fjx+Lz+do8\n7vzzz2fo0KGJCSoOnHzGvXr1OvX4+PHjLWYO8yqnn3FJSQkigogwbtw4qqqqEhRh7Dm9ZuBO4EFV\nDQKo6r4OnyzocHMJzyXonTt3MnjwP8fNFBQUsHPnzhbHvfDCC4wZM4bJkyezY8eOFq8b93L6Gc+f\nP5+zzz6b++67j9LS0kSG6Bp+v59FixZxzTXXJDuURDgbmBIejfyqiAzvaAFe6wftuQStEf7zmtee\nvvGNb7B9+3bWrl3LVVddxc0335yo8EwMOPmMAWbMmMHWrVt5+OGHmTOnQwO0UsZdd93FpZdeyoQJ\nE5IdSiJkA3XhWeYeB57scAnWxBFfBQUFn6sRV1VVMXDgwM8d079/f7KzswG47bbbWLNmTUJjjKX5\n8+efutm5a9eu9t+QApx8xk1NnTqVl156KRGhxUVnP+PZs2dTXV3N3Llz4xhdfHTymquAF8KPXwTG\ndOikqhAIOttcwnMJeuzYsWzevJlt27bR0NDAs88+y8SJEz93zO7du089XrJkCSNHjkx0mDEzY8aM\nUzc720pSqcTJZ7x58+ZTj1955RWGD+/wX7uu0ZnPuKysjGXLlrF48WIyMjz3Ne7sz/VLwMl1/L4M\nfNzhE1sNOr6ysrKYN28eV199NSNHjuTGG29k1KhRzJo1iyVLQlOElJaWMmrUKM477zxKS0tZuHBh\ncoOOkT179lBQUMDcuXOZM2cOBQUFHD16FAjdNDpZEyktLaWgoICqqirGjBnjuV4sTj7jefPmMWrU\nKAoLC5k7dy5PPRVxAkXPcfoZ33HHHezdu5fi4mIKCwt58MEHkxl2VJxeM/AQoWmN1wH/AXT8B9tj\nCVoitfclQlFRkZaXlyfl3MYYbxGRNW2tcOJE7+zT9EuDvuPo2Ne2/Z+ozxcLNpLQGJMmFNQ97ctO\nWII2xqQHxVU3AJ3wXBu0McZ0WgLaoEXkWyKyQUSCItKimUREhohIjYi0O3TSErQxJn0k5ibheuB6\n4O1WXn8UeNVJQY4StIhcIyIficgWEflphNezReQP4dffFZGhTsp1KqgNHK1bQ039OtRjbUidVeM/\nyGfH13HM783JjjpKVTlWv5HDdWsIakOyw0mI+sAJPj2+nv313h2m3VHV9bv5pGYjtYHjSTh7YiZL\nUtVNqvpRpNdE5JvAJ8AGJ2W12wYtIpnAfOArhDqKvyciS1S16ew1twKHVHWYiEwltCbhFCcBtOfg\niZVs3n8PoChBsjJ6MTK/jO5dzo1F8a4T0EaW7vo1m47+lSzx0ah+hve4iIkFM8mUducq8KSahs2s\n3fs/8AcPcbLOMDL338nvfnVyA4ujd6r/xJv7/ptMySKgjeTnDGHqGT+nR1bfZIcWF8cbj/HUtofZ\nWbuNTMmiUf1clv9NvjLgW4mbR0WBJE43KiLdgfsJ5dJ2mzfAWQ16HLBFVT9R1QZCM0hNanbMJP65\nkvfzwJUSg//1usadfLz/bgJ6jIDWENQTNAT2sGHvdwhqfbTFu9LfqxdTefTvBNRPffAEAfWzpeZd\n3ty7MNmhxUVQ/Xyw52bqAjsJ6AkCWkNAa9i4/z5O+LclO7y42HysnLf2LaZRG6gPnqBRG9hTu43n\nPv2PZIcWN898+ig7TmzBrw3UBU/QqH7e3reEdUdWJTYQ5zXo3PCcHye325sWIyIrRGR9hK15bmxq\nNvCoqtY4DddJL45BQNPZhqqA8a0dE17D8AjQH4jq7/N9NX9ENdBif1D9HKp9g/7dUm+CmDUH/0Jj\ns18+jdrAB4de5YoBP0iZWdtOOlT7DkGta7E/qI3sPPYcw/vdn4So4mvV/pfxN/uMgwTYU/cJhxv2\n0qfLgCRFFh/H/IfZfrySAJ//LjdoPW9V/5kxfYoTFIl2pBfH/rb6QavqVZ0IYDwwWUT+E+gDBEWk\nTlXntfYGJwk6UkZo3kjj5BjCv4VuBxgyZEi7J/YHDqBEmog8iD9wqN33e1FD8ETE/aEvtBL5v9q7\n/MHDRPhRARppCKRm+/vxxiMR92dIJicCx+hDaiXo2sBxMiQTtOV3+UTj0cQFoiT1HpaqnprRSkR+\nAdS0lZzBWRNHFaFJsk8qAJrPbnLqGBHJAnoTWt27eYALVLVIVYvy8vLaPXGfrhPIkG4t9itBeuc0\nr8SnhkHdvhBx/2k5ZyOSep1ueucUobT8KylTutG/65eTEFH8De95Yav3E/Kz26+4eE3/7NPIlMwW\n+zPIZETP8xMbTFCdbVEQketEpAooBl4RkWWdLcvJN/49YLiInCkiXYCpwJJmxywBTs7pORlYqTEY\nQ96v65V07zKKDOn6z4ClG/ndr6er76xoi3elr5x2B76MHDII/UALmfgkh6tPn5HkyOKja9YgBvX8\ndrPPuCvdfGen7E3C4tzr6JbZi6xTSVrwSTZXn/YDsjK6JDW2eMiUTK4bdBs+6YKE/wLMFB/dsnpw\nxYDrExtMYnpxvKiqBaqaraoDVLXFD7Kq/kJVW1/fK6zdJo5wm/LdwDIgE3hSVTeIyINAuaouAZ4A\nFonIFkI156kdvahIRDIZNWAR+479keoTL5MhOQzoMZX+3b4Wi+JdaUDO2dx61nzePfACe2q3MCDn\nLMb1v57+2QXJDi1uhvX9KX1yxrLz6GICeoIB3a/l9B6TyUjRXivdsnpxx7BSVh/4C1tq1tDLl8v4\n/hMZ0j01eyYBFPa9mH7Z+by9788catjP8J5f5JK8Enpk9U5cEKpJ7cXRGTZZkjHG9WIyWVJmrhZ3\n/4ajY5cdW2iTJRljTOIoGmh5v8PNLEEbY9KDEvUNwESzBG2MSR8emyrCErQxJi0ooFaDNsYYF1Kb\nsN8YY1zLazcJk9bNTkSqgU87+LZcopzfw4PS7ZrT7Xoh/a65M9d7hqq2P/y4DSLyWvjcTuxX1aRP\n9pO0BN0ZIlLuhr6JiZRu15xu1wvpd83pdr3RSL3JHYwxJkVYgjbGGJfyWoJekOwAkiDdrjndrhfS\n75rT7Xo7zVNt0MYYk068VoM2xpi04YkE3d6q4qlGRJ4UkX0isj7ZsSSKiAwWkTdEZJOIbBCRHyU7\npngSkRwRWS0iH4avd3ayY0oUEckUkQ9E5C/JjsXtXJ+gm6wq/jXgXODbIpK6E+eGLASS3gczwRqB\nn6jqSOAiYEaKf871wBWqeh5QCFwjIhclOaZE+RGwKdlBeIHrEzTOVhVPKar6NhGWDEtlqrpbVd8P\nPz5G6As8KLlRxY+GnFzd2RfeUv6GkIgUAF8HypIdixd4IUFHWlU8Zb+4BkRkKHA+8G5yI4mv8J/6\nFcA+YLmqpvT1hv0auA/w1qQYSeKFBO1oxXCTGkSkB/AC8GNVTeCSz4mnqgFVLSS0EPM4ERmd7Jji\nSUSuBfap6ppkx+IVXkjQTlYVNylARHyEkvMzqvqnZMeTKKp6GHiT1L/vcDEwUUS2E2qqvEJEfp/c\nkNzNCwnayarixuNERAgtPrxJVecmO554E5E8EekTftwVuAqoTG5U8aWqPwuvdj2U0Pd4pap+J8lh\nuZrrE7SqNgInVxXfBDynqhuSG1V8ichi4B/ACBGpEpFbkx1TAlwMfJdQraoivJUkO6g4Oh14Q0TW\nEqqELFdV63ZmPsdGEhpjjEu5vgZtjDHpyhK0Mca4lCVoY4xxKUvQxhjjUpagjTHGpSxBG2OMS1mC\nNsYYl7IEbYwxLvX/AcRnoY4TI7qLAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "proj_mexp = mexp.with_coeffs(expansion_mat @ reduction_mat @ mexp.coeffs)\n", "\n", "proj_resid = proj_mexp.coeffs - mexp.coeffs\n", "\n", - "plot_coeffs(mpole_expn, np.log10(1e-15+np.abs(proj_resid)), vmin=-15, vmax=2)" + "plot_coeffs(mpole_expn, np.log10(1e-15 + np.abs(proj_resid)), vmin=-15, vmax=2)" ] }, { "cell_type": "code", - "execution_count": 72, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2.80866677486e-15\n" - ] - } - ], + "outputs": [], "source": [ - "print(t.l_inf(proj_mexp - mexp, 1.2, center=[3,0]))" + "print(t.l_inf(proj_mexp - mexp, 1.2, center=[3, 0]))" ] }, { "cell_type": "code", - "execution_count": 73, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0116062369243\n" - ] - } - ], + "outputs": [], "source": [ "trans_unproj = t.multipole_expand(mexp, new_center)\n", "trans_proj = t.multipole_expand(proj_mexp, new_center)\n", "\n", - "print(t.l_inf(trans_unproj - trans_proj, 1.2, center=[3,0]))" + "print(t.l_inf(trans_unproj - trans_proj, 1.2, center=[3, 0]))" ] }, { "cell_type": "code", - "execution_count": 74, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[-3.07295099 -0.08541702 -1.62768408 -2.17149444 -0.06559717 -2.66984178\n", - " -0.05931738 -1.14908652 -0.08143883 -1.25881949 -0.02604215 -0.04555359\n", - " -0.40284643 -0.05019419 -0.39528495]\n" - ] - } - ], + "outputs": [], "source": [ "print(trans_proj.coeffs - trans_unproj.coeffs)" ] }, { "cell_type": "code", - "execution_count": 75, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.1169116976203841" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "la.norm(reduction_mat @ (trans_proj.coeffs - trans_unproj.coeffs))" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.011804658035654577" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "t.l_inf(trans_unproj - pt_src, 1.2, center=[3, 0])" ] }, { "cell_type": "code", - "execution_count": 77, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.00029429326299543407" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "t.l_inf(mexp - pt_src, 1.2, center=[3, 0])" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -439,9 +308,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4+" + "version": "3.12.4" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/contrib/translations/PDE-reduction-symbolic.ipynb b/contrib/translations/PDE-reduction-symbolic.ipynb index da9c37a9b..85862d074 100644 --- a/contrib/translations/PDE-reduction-symbolic.ipynb +++ b/contrib/translations/PDE-reduction-symbolic.ipynb @@ -6,21 +6,18 @@ "metadata": {}, "outputs": [], "source": [ - "import pyopencl as cl\n", - "import sumpy.toys as t\n", - "import numpy as np\n", - "import numpy.linalg as la\n", - "import matplotlib.pyplot as plt\n", - "from sumpy.visualization import FieldPlotter\n", - "from pytools import add_tuples\n", + "from __future__ import annotations\n", "\n", "from sumpy.expansion.local import VolumeTaylorLocalExpansion\n", - "from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion\n", - " \n", - "from sumpy.kernel import (YukawaKernel, HelmholtzKernel, LaplaceKernel)\n", - "\n", + "from sumpy.expansion.multipole import (\n", + " LaplaceConformingVolumeTaylorMultipoleExpansion,\n", + " LinearPDEConformingVolumeTaylorMultipoleExpansion,\n", + " VolumeTaylorMultipoleExpansion,\n", + ")\n", + "from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401\n", "from sumpy.symbolic import make_sym_vector\n", "\n", + "\n", "order = 2\n", "dim = 2\n", "\n", @@ -28,16 +25,16 @@ " knl = LaplaceKernel(dim)\n", " extra_kernel_kwargs = {}\n", " mpole_expn_reduced_class = LaplaceConformingVolumeTaylorMultipoleExpansion\n", - " \n", + "\n", "else:\n", " helm_k = 1.2\n", " knl = HelmholtzKernel(dim)\n", - " extra_kernel_kwargs={\"k\": helm_k}\n", + " extra_kernel_kwargs = {\"k\": helm_k}\n", " mpole_expn_reduced_class = LinearPDEConformingVolumeTaylorMultipoleExpansion\n", "\n", "mpole_expn_reduced = mpole_expn_reduced_class(knl, order)\n", "mpole_expn = VolumeTaylorMultipoleExpansion(knl, order)\n", - "local_expn = VolumeTaylorLocalExpansion(knl, order)\n" + "local_expn = VolumeTaylorLocalExpansion(knl, order)" ] }, { @@ -49,8 +46,12 @@ "reduced_wrangler = mpole_expn_reduced.expansion_terms_wrangler\n", "full_wrangler = mpole_expn.expansion_terms_wrangler\n", "\n", - "reduced_derivatives = list(make_sym_vector(\"deriv\", len(reduced_wrangler.stored_identifiers)))\n", - "full_derivatives = reduced_wrangler.get_full_kernel_derivatives_from_stored(reduced_derivatives, 1)\n", + "reduced_derivatives = list(\n", + " make_sym_vector(\"deriv\", len(reduced_wrangler.stored_identifiers))\n", + ")\n", + "full_derivatives = reduced_wrangler.get_full_kernel_derivatives_from_stored(\n", + " reduced_derivatives, 1\n", + ")\n", "\n", "print(reduced_derivatives)\n", "print(full_derivatives)" @@ -62,9 +63,13 @@ "metadata": {}, "outputs": [], "source": [ - "full_coeffs = list(make_sym_vector(\"coeff\", len(reduced_wrangler.get_full_coefficient_identifiers())))\n", + "full_coeffs = list(\n", + " make_sym_vector(\"coeff\", len(reduced_wrangler.get_full_coefficient_identifiers()))\n", + ")\n", "\n", - "reduced_coeffs = reduced_wrangler.get_stored_mpole_coefficients_from_full(full_mpole_coefficients=full_coeffs, rscale=1)\n", + "reduced_coeffs = reduced_wrangler.get_stored_mpole_coefficients_from_full(\n", + " full_mpole_coefficients=full_coeffs, rscale=1\n", + ")\n", "\n", "print(full_coeffs)\n", "print(reduced_coeffs)" @@ -77,7 +82,9 @@ "outputs": [], "source": [ "dvec = make_sym_vector(\"d\", dim)\n", - "translated_reduce_coeffs = mpole_expn_reduced.translate_from(mpole_expn_reduced, reduced_coeffs, 1, dvec, 1)\n", + "translated_reduce_coeffs = mpole_expn_reduced.translate_from(\n", + " mpole_expn_reduced, reduced_coeffs, 1, dvec, 1\n", + ")\n", "translated_full_coeffs = mpole_expn.translate_from(mpole_expn, full_coeffs, 1, dvec, 1)\n", "translated_full_coeffs" ] @@ -88,10 +95,10 @@ "metadata": {}, "outputs": [], "source": [ - "eval_reduced = sum(a*b for a, b in zip(translated_reduce_coeffs, reduced_derivatives))\n", - "eval_full = sum(a*b for a, b in zip(translated_full_coeffs, full_derivatives))\n", + "eval_reduced = sum(a * b for a, b in zip(translated_reduce_coeffs, reduced_derivatives))\n", + "eval_full = sum(a * b for a, b in zip(translated_full_coeffs, full_derivatives))\n", "\n", - "(eval_full-eval_reduced).simplify()" + "(eval_full - eval_reduced).simplify()" ] } ], @@ -111,7 +118,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.12.4" } }, "nbformat": 4, From b1f57488ef530f2f188268eca05bb9669774c621 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 11 Aug 2024 16:23:25 +0300 Subject: [PATCH 125/335] ruff: fix C409 and RUF031 errors --- sumpy/derivative_taker.py | 12 ++++++------ sumpy/tools.py | 32 ++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index e98038f6b..37bfaa0db 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -262,7 +262,7 @@ def diff(self, mi, q=0): return ExprDerivativeTaker.diff(self, mi) try: - return self.cache_by_mi_q[(mi, q)] + return self.cache_by_mi_q[mi, q] except KeyError: pass @@ -272,7 +272,7 @@ def diff(self, mi, q=0): mi_minus_one[i] = 0 mi_minus_one = tuple(mi_minus_one) expr = self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) - self.cache_by_mi_q[(mi, q)] = expr + self.cache_by_mi_q[mi, q] = expr return expr for i in range(self.dim): @@ -286,7 +286,7 @@ def diff(self, mi, q=0): expr = (mi[i]-1)*self.diff(mi_minus_two, q=q+1) * self.rscale ** 2 expr += self.var_list_multiplied[i] * self.diff(mi_minus_one, q=q+1) expr = add_to_sac(self.sac, expr) - self.cache_by_mi_q[(mi, q)] = expr + self.cache_by_mi_q[mi, q] = expr return expr assert mi == (0,)*self.dim @@ -298,7 +298,7 @@ def diff(self, mi, q=0): expr = prev_expr.diff(self.var_list[0])/self.var_list[0] # We need to distribute the division above expr = expr.expand(deep=False) - self.cache_by_mi_q[(mi, q)] = expr + self.cache_by_mi_q[mi, q] = expr return expr @@ -316,7 +316,7 @@ def diff(self, mi, q=0): return RadialDerivativeTaker.diff(self, mi, q) try: - return self.cache_by_mi_q[(mi, q)] + return self.cache_by_mi_q[mi, q] except KeyError: pass @@ -333,7 +333,7 @@ def diff(self, mi, q=0): k = (self.orig_expr * self.r).args[-1] / sym.I / self.r expr = (-(2*q - 1) * self.diff(mi, q - 1) - k**2 * self.diff(mi, q - 2)) / self.r**2 - self.cache_by_mi_q[(mi, q)] = expr + self.cache_by_mi_q[mi, q] = expr return expr diff --git a/sumpy/tools.py b/sumpy/tools.py index 409b8a4be..73c256eb6 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -116,7 +116,8 @@ # {{{ multi_index helpers def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: - return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2)]) + # NOTE: these are used a lot and `tuple([])` is faster + return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2)]) # noqa: C409 def mi_factorial(mi: Sequence[int]) -> int: @@ -662,7 +663,7 @@ def matvec_toeplitz_upper_triangular(first_row, vector): assert len(vector) == n output = [0]*n for row in range(n): - terms = tuple([first_row[col-row]*vector[col] for col in range(row, n)]) + terms = tuple(first_row[col-row]*vector[col] for col in range(row, n)) output[row] = sym.Add(*terms) return output @@ -764,11 +765,12 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, fixed_parameters = {"const": complex_dtype(sign*(-2j)*pi/n), "n": n} + index = (*broadcast_dims, i2) insns = [ "exp_table[i] = exp(const * i) {id=exp_table}", lp.Assignment( - assignee=x[(*broadcast_dims, i2)], - expression=y[(*broadcast_dims, i2)], + assignee=x[index], + expression=y[index], id="copy", depends_on=frozenset(["exp_table"]), ), @@ -790,15 +792,19 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, table_idx = var(f"table_idx_{ilev}") exp = var(f"exp_{ilev}") + i_bcast = (*broadcast_dims, i) + i2_bcast = (*broadcast_dims, i2) + iN_bcast = (*broadcast_dims, ifft + nfft * (iN1 * N2 + iN2)) # noqa: N806 + insns += [ lp.Assignment( assignee=temp[i], - expression=x[(*broadcast_dims, i)], + expression=x[i_bcast], id=f"copy_{ilev}", depends_on=frozenset([init_depends_on]), ), lp.Assignment( - assignee=x[(*broadcast_dims, i2)], + assignee=x[i2_bcast], expression=0, id=f"reset_{ilev}", depends_on=frozenset([f"copy_{ilev}"])), @@ -817,8 +823,8 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, [*broadcast_dims, iN1_sum, iN1, iN2]}), temp_var_type=lp.Optional(complex_dtype)), lp.Assignment( - assignee=x[(*broadcast_dims, ifft + nfft * (iN1*N2 + iN2))], - expression=(x[(*broadcast_dims, ifft + nfft*(iN1*N2 + iN2))] + assignee=x[iN_bcast], + expression=(x[iN_bcast] + exp * temp[ifft + nfft * (iN2*N1 + iN1_sum)]), id=f"update_{ilev}", depends_on=frozenset([f"exp_{ilev}"])), @@ -851,19 +857,21 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, if n == 1: domains = domains[2:] + index = (*broadcast_dims, 0) insns = [ lp.Assignment( - assignee=x[(*broadcast_dims, 0)], - expression=y[(*broadcast_dims, 0)], + assignee=x[index], + expression=y[index], ), ] kernel_data = kernel_data[:2] elif inverse: domains += ["{[i3]: 0<=i3 Date: Mon, 12 Aug 2024 16:12:26 +0300 Subject: [PATCH 126/335] make sympy a required dependency --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4cb3a3027..5dd83f83a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,7 @@ dependencies = [ "numpy", "pyopencl>=2022.1", "pytools>=2022.1", + "sympy>=0.7.2", ] [project.optional-dependencies] @@ -49,9 +50,6 @@ doc = [ fmmlib = [ "pyfmmlib>=2023.1", ] -sympy = [ - "sympy>=0.7.2", -] symengine = [ "symengine>=0.9.0", ] From d89ec2b503f2c9d2dc8ebcd3b759bad607911f50 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 18 Aug 2024 14:05:53 +0200 Subject: [PATCH 127/335] Fix upload-docs script to properly delete --- doc/upload-docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/upload-docs.sh b/doc/upload-docs.sh index c4d621d9b..525668c10 100755 --- a/doc/upload-docs.sh +++ b/doc/upload-docs.sh @@ -1,3 +1,3 @@ #! /bin/sh -rsync --verbose --archive --delete _build/html/* doc-upload:doc/sumpy +rsync --verbose --archive --delete _build/html/ doc-upload:doc/sumpy From 33490bc40fa1bf07a5178effc11ca7e9abc627cf Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 18 Aug 2024 14:06:39 +0200 Subject: [PATCH 128/335] Fix Github CI badge --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index df724a8c3..67214a0e1 100644 --- a/README.rst +++ b/README.rst @@ -4,9 +4,9 @@ sumpy: n-body kernels and translation operators .. image:: https://gitlab.tiker.net/inducer/sumpy/badges/main/pipeline.svg :alt: Gitlab Build Status :target: https://gitlab.tiker.net/inducer/sumpy/commits/main -.. image:: https://github.com/inducer/sumpy/workflows/CI/badge.svg?branch=main&event=push +.. image:: https://github.com/inducer/sumpy/workflows/CI/badge.svg?branch=main :alt: Github Build Status - :target: https://github.com/inducer/sumpy/actions?query=branch%3Amain+workflow%3ACI+event%3Apush + :target: https://github.com/inducer/sumpy/actions?query=branch%3Amain+workflow%3ACI .. image:: https://badge.fury.io/py/sumpy.png :alt: Python Package Index Release Page :target: https://pypi.org/project/sumpy/ From f9dc4fc64023f9165439b7349b0c013d44b79546 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 18 Aug 2024 14:06:54 +0200 Subject: [PATCH 129/335] Placate ruff UP031 --- sumpy/expansion/m2l.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 134ed0c01..7277ae020 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -1054,7 +1054,7 @@ def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, vec_name = "m2l_translation_classes_dependent_data" tgt_coeff_names = [ - sac.assign_unique("m2l_translation_classes_dependent_data%d" % i, + sac.assign_unique(f"m2l_translation_classes_dependent_data{i}", coeff_i) for i, coeff_i in enumerate(derivatives)] sac.run_global_cse() From c7717d6d29566a5f1bbe1c9dccadb02efda60fb8 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 23 Sep 2024 14:19:49 -0500 Subject: [PATCH 130/335] Fix Github CI badge --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 67214a0e1..81866ea71 100644 --- a/README.rst +++ b/README.rst @@ -4,7 +4,7 @@ sumpy: n-body kernels and translation operators .. image:: https://gitlab.tiker.net/inducer/sumpy/badges/main/pipeline.svg :alt: Gitlab Build Status :target: https://gitlab.tiker.net/inducer/sumpy/commits/main -.. image:: https://github.com/inducer/sumpy/workflows/CI/badge.svg?branch=main +.. image:: https://github.com/inducer/sumpy/actions/workflows/ci.yml/badge.svg :alt: Github Build Status :target: https://github.com/inducer/sumpy/actions?query=branch%3Amain+workflow%3ACI .. image:: https://badge.fury.io/py/sumpy.png From f6d4677ca41b697380d06c4bdecabbaa7eac5187 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 23 Sep 2024 14:19:57 -0500 Subject: [PATCH 131/335] Fix Github CI Pylint --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e5ab234f..31c9edd4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ci-support-v0 build_py_project - run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py, test/*.py + run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py test/*.py docs: name: Documentation From 1da3719cfdb3624a3917e95a7b882588fe101db7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 23 Sep 2024 14:28:23 -0500 Subject: [PATCH 132/335] Fix use-before-assignment in example flagged by pylint --- examples/sym-exp-complexity.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/sym-exp-complexity.py b/examples/sym-exp-complexity.py index bc88cdf0c..9dfbfb442 100644 --- a/examples/sym-exp-complexity.py +++ b/examples/sym-exp-complexity.py @@ -81,6 +81,8 @@ def plot_flops(): orders = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] flops = [45, 194, 474, 931, 1650, 2632, 3925, 5591, 7706, 10272] filename = "helmholtz-m2l-complexity-2d.pdf" + else: + raise ValueError() if USE_MATPLOTLIB: plt.rc("font", size=16) From 44d47cff8a7c5ba5bf230a68c4f63d7afaaf9b45 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 30 Sep 2024 13:06:24 -0500 Subject: [PATCH 133/335] Placate pylint about new bug https://github.com/pylint-dev/pylint/issues/9989 --- sumpy/visualization.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sumpy/visualization.py b/sumpy/visualization.py index d5f2f6c05..1293d80c5 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -111,7 +111,9 @@ def __init__(self, center, extent=1, npoints=1000): slice(a[i], b[i], 1j*npoints[i]) for i in range(dim)) - mgrid = np.mgrid[mgrid_index] + # np.asarray is technically unneeded, used to placate pylint + # https://github.com/pylint-dev/pylint/issues/9989 + mgrid = np.asarray(np.mgrid[mgrid_index]) # (axis, point x idx, point y idx, ...) self.nd_points = mgrid From 171fb62d9e2256daa7d99bb8edd7af068b824dd0 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 3 Nov 2024 09:48:36 +0200 Subject: [PATCH 134/335] pyproject: bump min python to 3.10 --- .pylintrc-local.yml | 3 +++ pyproject.toml | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.pylintrc-local.yml b/.pylintrc-local.yml index d0095f0e8..21b18e9d1 100644 --- a/.pylintrc-local.yml +++ b/.pylintrc-local.yml @@ -1,2 +1,5 @@ +- arg: py-version + val: '3.10' + - arg: extension-pkg-whitelist val: mayavi diff --git a/pyproject.toml b/pyproject.toml index 5dd83f83a..408fb7d90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,14 +6,14 @@ requires = [ [project] name = "sumpy" -version = "2022.1" +version = "2024.0" description = "Fast summation in Python" readme = "README.rst" license = { text = "MIT" } authors = [ { name = "Andreas Kloeckner", email = "inform@tiker.net" }, ] -requires-python = ">=3.8" +requires-python = ">=3.10" classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", @@ -142,6 +142,7 @@ extend-exclude = [ ] [tool.mypy] +python_version = "3.10" warn_unused_ignores = true [[tool.mypy.overrides]] From d310be233f854b9ee0d6eaacffcdcc5d25c44f69 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 3 Nov 2024 09:50:46 +0200 Subject: [PATCH 135/335] ruff: fix type import errors --- sumpy/__init__.py | 2 +- sumpy/codegen.py | 2 +- sumpy/cse.py | 4 ++-- sumpy/derivative_taker.py | 4 ++-- sumpy/expansion/__init__.py | 3 ++- sumpy/expansion/diff_op.py | 4 ++-- sumpy/expansion/level_to_order.py | 2 +- sumpy/expansion/loopy.py | 2 +- sumpy/point_calculus.py | 2 +- sumpy/tools.py | 15 ++++++++------- sumpy/toys.py | 9 +++++---- test/test_misc.py | 3 ++- 12 files changed, 28 insertions(+), 24 deletions(-) diff --git a/sumpy/__init__.py b/sumpy/__init__.py index ab98d1040..a550d68ea 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -24,7 +24,7 @@ """ import os -from typing import Hashable +from collections.abc import Hashable import loopy as lp from pytools.persistent_dict import WriteOncePersistentDict diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 4baa8289a..16b8284e4 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -511,7 +511,7 @@ def __init__(self, complex_dtype=None): def map_constant(self, expr, rec_self=None): """Convert complex values to numpy types """ - if not isinstance(expr, (complex, np.complex64, np.complex128)): + if not isinstance(expr, complex | np.complex64 | np.complex128): return IdentityMapper.map_constant(rec_self or self, expr, rec_self=rec_self) diff --git a/sumpy/cse.py b/sumpy/cse.py index 0f4481d93..a72f1c583 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -460,7 +460,7 @@ def tree_cse(exprs, symbols, opt_subs=None): excluded_symbols = set() def find_repeated(expr): - if not isinstance(expr, (Basic, Unevaluated)): + if not isinstance(expr, Basic | Unevaluated): return if isinstance(expr, Basic) and expr.is_Atom: @@ -505,7 +505,7 @@ def find_repeated(expr): subs = {} def rebuild(expr): - if not isinstance(expr, (Basic, Unevaluated)): + if not isinstance(expr, Basic | Unevaluated): return expr if not expr.args: diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 37bfaa0db..0a80830e0 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -39,7 +39,7 @@ """ import logging -from typing import Any, Dict, Tuple +from typing import Any import numpy as np @@ -341,7 +341,7 @@ def diff(self, mi, q=0): # {{{ DifferentiatedExprDerivativeTaker -DerivativeCoeffDict = Dict[Tuple[int, ...], Any] +DerivativeCoeffDict = dict[tuple[int, ...], Any] @tag_dataclass diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index e9b8a0cab..baa4ad76f 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -25,7 +25,8 @@ import logging from abc import ABC, abstractmethod -from typing import Any, ClassVar, Hashable, Sequence +from collections.abc import Hashable, Sequence +from typing import Any, ClassVar import loopy as lp import pymbolic.primitives as prim diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 851ad913d..553d1db74 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -26,9 +26,9 @@ """ import logging +from collections.abc import Mapping, Sequence from dataclasses import dataclass from itertools import accumulate -from typing import Mapping, Sequence, Union import numpy as np import sympy as sp @@ -74,7 +74,7 @@ class DerivativeIdentifier: """ -Number_ish = Union[int, float, complex, np.number] +Number_ish = int | float | complex | np.number @dataclass(frozen=True, eq=True) diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index c81a4bdc3..55f0f1b10 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -137,7 +137,7 @@ def __init__(self, tol, err_const_laplace=0.01, err_const_helmholtz=100, def __call__(self, kernel, kernel_args, tree, level): from sumpy.kernel import HelmholtzKernel, LaplaceKernel - assert isinstance(kernel, (LaplaceKernel, HelmholtzKernel)) + assert isinstance(kernel, LaplaceKernel | HelmholtzKernel) laplace_order = int(np.ceil( (np.log(self.tol) - np.log(self.err_const_laplace)) diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 22ee5d6a0..7d3836857 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -24,7 +24,7 @@ """ import logging -from typing import Sequence +from collections.abc import Sequence import numpy as np diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 3694f89e2..6e59e7f92 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -179,7 +179,7 @@ def diff(self, axis, f_values, nderivs=1): """ from numbers import Number - if isinstance(f_values, (np.number, Number)): + if isinstance(f_values, np.number | Number): # constants differentiate to 0 return 0 diff --git a/sumpy/tools.py b/sumpy/tools.py index 73c256eb6..40ef12a20 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -31,8 +31,9 @@ import logging import warnings from abc import ABC, abstractmethod +from collections.abc import Hashable, Sequence from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Hashable, Sequence +from typing import TYPE_CHECKING, Any import numpy as np @@ -161,7 +162,7 @@ def add_to_sac(sac, expr): return expr from numbers import Number - if isinstance(expr, (Number, sym.Number, sym.Symbol)): + if isinstance(expr, Number | sym.Number | sym.Symbol): return expr name = sac.assign_temp("temp", expr) @@ -228,7 +229,7 @@ def vector_from_device(queue, vec): def from_dev(ary): from numbers import Number - if isinstance(ary, (np.number, Number)): + if isinstance(ary, np.number | Number): # zero, most likely return ary @@ -318,7 +319,7 @@ def __init__(self, ctx: Any, else: value_dtypes.append(np.dtype(np.float64)) - if not isinstance(value_dtypes, (list, tuple)): + if not isinstance(value_dtypes, list | tuple): value_dtypes = [np.dtype(value_dtypes)] * len(target_kernels) value_dtypes = [np.dtype(vd) for vd in value_dtypes] @@ -515,7 +516,7 @@ def _allow_redundant_execution_of_knl_scaling(knl): def is_obj_array_like(ary): return ( - isinstance(ary, (tuple, list)) + isinstance(ary, tuple | list) or (isinstance(ary, np.ndarray) and ary.dtype.char == "O")) @@ -559,12 +560,12 @@ def reduced_row_echelon_form(m, atol=0): pivot_cols.append(i) scale = mat[index, i] - if isinstance(scale, (int, sym.Integer)): + if isinstance(scale, int | sym.Integer): scale = int(scale) for j in range(mat.shape[1]): elem = mat[index, j] - if isinstance(scale, int) and isinstance(elem, (int, sym.Integer)): + if isinstance(scale, int) and isinstance(elem, int | sym.Integer): quo = int(elem) // scale if quo * scale == elem: mat[index, j] = quo diff --git a/sumpy/toys.py b/sumpy/toys.py index 4f569ef3b..60ee4f464 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -28,9 +28,10 @@ THE SOFTWARE. """ +from collections.abc import Sequence from functools import partial from numbers import Number -from typing import TYPE_CHECKING, Sequence, Union +from typing import TYPE_CHECKING from pytools import memoize_method @@ -481,7 +482,7 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, # {{{ potential source classes -Number_ish = Union[int, float, complex, np.number] +Number_ish = int | float | complex | np.number class PotentialSource: @@ -516,7 +517,7 @@ def __neg__(self) -> PotentialSource: def __add__(self, other: Number_ish | PotentialSource ) -> PotentialSource: - if isinstance(other, (Number, np.number)): + if isinstance(other, Number | np.number): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): return NotImplemented @@ -538,7 +539,7 @@ def __rsub__(self, # type:ignore[misc] def __mul__(self, other: Number_ish | PotentialSource) -> PotentialSource: - if isinstance(other, (Number, np.number)): + if isinstance(other, Number | np.number): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): return NotImplemented diff --git a/test/test_misc.py b/test/test_misc.py index d0a25cc2e..d745af73e 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -25,8 +25,9 @@ import logging import sys +from collections.abc import Callable from dataclasses import dataclass -from typing import Any, Callable +from typing import Any import numpy as np import numpy.linalg as la From bb790ff155d2a86b2d54f73dc4f8075dfdd1b309 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 3 Nov 2024 09:50:56 +0200 Subject: [PATCH 136/335] ruff: fix zip strict argument --- .../translations/PDE-reduction and translations.ipynb | 4 ++-- contrib/translations/PDE-reduction-symbolic.ipynb | 8 +++++--- sumpy/assignment_collection.py | 4 ++-- sumpy/codegen.py | 2 +- sumpy/derivative_taker.py | 2 +- sumpy/distributed.py | 4 ++-- sumpy/expansion/__init__.py | 2 +- sumpy/expansion/diff_op.py | 4 ++-- sumpy/expansion/local.py | 5 +++-- sumpy/expansion/m2l.py | 8 ++++---- sumpy/expansion/multipole.py | 6 +++--- sumpy/fmm.py | 6 +++--- sumpy/kernel.py | 3 ++- sumpy/p2p.py | 5 +++-- sumpy/tools.py | 8 ++++---- sumpy/toys.py | 2 +- test/test_fmm.py | 3 ++- test/test_kernels.py | 10 +++++----- 18 files changed, 46 insertions(+), 40 deletions(-) diff --git a/contrib/translations/PDE-reduction and translations.ipynb b/contrib/translations/PDE-reduction and translations.ipynb index 92da1f8d2..31d6602fc 100644 --- a/contrib/translations/PDE-reduction and translations.ipynb +++ b/contrib/translations/PDE-reduction and translations.ipynb @@ -217,7 +217,7 @@ " plt.scatter(x, y, c=coeffs, **kwargs)\n", " plt.colorbar()\n", "\n", - " for cid, coeff in zip(expn.get_coefficient_identifiers(), coeffs):\n", + " for cid, coeff in zip(expn.get_coefficient_identifiers(), coeffs, strict=True):\n", " plt.text(cid[0], cid[1] + 0.2, f\"{coeff:.1f}\")" ] }, @@ -308,7 +308,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/contrib/translations/PDE-reduction-symbolic.ipynb b/contrib/translations/PDE-reduction-symbolic.ipynb index 85862d074..1fd881463 100644 --- a/contrib/translations/PDE-reduction-symbolic.ipynb +++ b/contrib/translations/PDE-reduction-symbolic.ipynb @@ -95,8 +95,10 @@ "metadata": {}, "outputs": [], "source": [ - "eval_reduced = sum(a * b for a, b in zip(translated_reduce_coeffs, reduced_derivatives))\n", - "eval_full = sum(a * b for a, b in zip(translated_full_coeffs, full_derivatives))\n", + "eval_reduced = sum(a * b for a, b in zip(translated_reduce_coeffs, reduced_derivatives,\n", + " strict=True))\n", + "eval_full = sum(a * b for a, b in zip(translated_full_coeffs, full_derivatives,\n", + " strict=True))\n", "\n", "(eval_full - eval_reduced).simplify()" ] @@ -118,7 +120,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 678dbbd45..fc7790f81 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -205,14 +205,14 @@ def run_global_cse(self, extra_exprs=None): 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): + for name, new_expr in zip(assign_names, new_assign_exprs, strict=True): self.assignments[name] = new_expr for name, value in new_assignments: assert isinstance(name, sym.Symbol) self.add_assignment(name.name, value) - for name, new_expr in zip(assign_names, new_assign_exprs): + 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 diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 16b8284e4..9917db731 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -590,7 +590,7 @@ def map_sum(self, expr, *args): new_children = tuple(first_group + second_group) if len(new_children) == len(expr.children) and \ all(child is orig_child for child, orig_child in - zip(new_children, expr.children)): + zip(new_children, expr.children, strict=True)): return expr return prim.Sum(tuple(first_group+second_group)) diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 0a80830e0..926b09773 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -146,7 +146,7 @@ def diff(self, mi): def get_derivative_taking_sequence(self, start_mi, end_mi): current_mi = np.array(start_mi, dtype=int) for idx, (mi_i, vec_i) in enumerate( - zip(self.mi_dist(end_mi, start_mi), self.var_list)): + zip(self.mi_dist(end_mi, start_mi), self.var_list, strict=True)): for _ in range(1, 1 + mi_i): current_mi[idx] += 1 yield vec_i, tuple(current_mi) diff --git a/sumpy/distributed.py b/sumpy/distributed.py index 84f3c4e8e..b8118b6d2 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -51,7 +51,7 @@ def distribute_source_weights(self, src_weight_vecs, src_idx_all_ranks): local_src_weight_vecs_device = [ cl.array.to_device(src_weight.queue, local_src_weight) for local_src_weight, src_weight in - zip(local_src_weight_vecs_host, src_weight_vecs)] + zip(local_src_weight_vecs_host, src_weight_vecs, strict=True)] return local_src_weight_vecs_device @@ -70,7 +70,7 @@ def gather_potential_results(self, potentials, tgt_idx_all_ranks): return make_obj_array([ cl.array.to_device(potentials_dev.queue, gathered_potentials_host) for gathered_potentials_host, potentials_dev in - zip(gathered_potentials_host_vec, potentials)]) + zip(gathered_potentials_host_vec, potentials, strict=True)]) else: return None diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index baa4ad76f..048d17d6b 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -162,7 +162,7 @@ def coefficients_from_source_vec(self, the coefficients of the expansion. """ result = [0]*len(self) - for knl, weight in zip(kernels, weights): + for knl, weight in zip(kernels, weights, strict=True): coeffs = self.coefficients_from_source(knl, avec, bvec, rscale, sac=sac) for i in range(len(result)): result[i] += weight * coeffs[i] diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 553d1db74..303d0d552 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -126,7 +126,7 @@ def __add__( assert self.dim == other_diff_op.dim assert len(self.eqs) == len(other_diff_op.eqs) eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] - for eq, other_eq in zip(self.eqs, other_diff_op.eqs): + for eq, other_eq in zip(self.eqs, other_diff_op.eqs, strict=True): res = dict(eq) for k, v in other_eq.items(): if k in res: @@ -267,7 +267,7 @@ def intersect( scalar_pde = min(scalar_pdes, key=lambda x: x.degree()).monic() pde_dict = { DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for - (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs()) + (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs(), strict=True) } results.append(LinearPDESystemOperator(pde.dim, (immutabledict(pde_dict),))) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 712b26e37..184e0cadd 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -199,7 +199,7 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, base_taker = base_kernel.get_derivative_taker(avec, rscale, sac) result = [0]*len(self) - for knl, weight in zip(kernels, weights): + for knl, weight in zip(kernels, weights, strict=True): taker = knl.postprocess_at_source(base_taker, avec) # Following is a hack to make sure cse works. if 1: @@ -237,7 +237,8 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): * mi_power(bvec_scaled, mi, evaluate=False) / mi_factorial(mi) for coeff, mi in zip( - evaluated_coeffs, self.get_full_coefficient_identifiers())) + evaluated_coeffs, self.get_full_coefficient_identifiers(), + strict=True)) return kernel.postprocess_at_target(result, bvec) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 7277ae020..2786f36af 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -420,7 +420,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, # Add zero values needed to make the translation matrix circulant derivatives_full = [0]*len(circulant_matrix_mis) - for expr, mi in zip(vector, needed_vector_terms): + for expr, mi in zip(vector, needed_vector_terms, strict=True): derivatives_full[circulant_matrix_ident_to_index[mi]] = expr return derivatives_full @@ -437,7 +437,7 @@ def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, input_vector = [0] * len(circulant_matrix_mis) for coeff, term in zip( src_coeff_exprs, - src_expansion.get_coefficient_identifiers()): + src_expansion.get_coefficient_identifiers(), strict=True): input_vector[circulant_matrix_ident_to_index[term]] = \ add_to_sac(sac, coeff) @@ -760,7 +760,7 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, assert translation_classes_dependent_data derivatives = translation_classes_dependent_data assert len(src_coeff_exprs) == len(derivatives) - result = [a*b for a, b in zip(derivatives, src_coeff_exprs)] + result = [a*b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] return result def translation_classes_dependent_data(self, tgt_expansion, src_expansion, @@ -981,7 +981,7 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, assert translation_classes_dependent_data is not None derivatives = translation_classes_dependent_data assert len(derivatives) == len(src_coeff_exprs) - return [a * b for a, b in zip(derivatives, src_coeff_exprs)] + return [a * b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] def loopy_translate(self, tgt_expansion, src_expansion): raise NotImplementedError diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index d9a817645..ef440cf01 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -73,7 +73,7 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, rscale = 1 result = [0]*len(self.get_full_coefficient_identifiers()) - for kernel, weight in zip(kernels, weights): + for kernel, weight in zip(kernels, weights, strict=True): if isinstance(kernel, KernelWrapper): coeffs = [ kernel.postprocess_at_source(mi_power(avec, mi), avec) @@ -109,7 +109,7 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): taker = kernel.postprocess_at_target(base_taker, bvec) result = [] - for coeff, mi in zip(coeffs, self.get_coefficient_identifiers()): + for coeff, mi in zip(coeffs, self.get_coefficient_identifiers(), strict=True): result.append(coeff * taker.diff(mi, lambda x: add_to_sac(sac, x))) result = sym.Add(*tuple(result)) @@ -289,7 +289,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, for mi_i in range(tgt_mi[d]+1): input_mi = mi_set_axis(tgt_mi, d, mi_i) contrib = cur_dim_input_coeffs[tgt_mi_to_index[input_mi]] - for n, k, dist in zip(tgt_mi, input_mi, dvec): + for n, k, dist in zip(tgt_mi, input_mi, dvec, strict=True): assert n >= k contrib /= math.factorial(n-k) contrib *= \ diff --git a/sumpy/fmm.py b/sumpy/fmm.py index aa2ff4c72..0f6d87b2c 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -691,7 +691,7 @@ def eval_direct(self, target_boxes, source_box_starts, **kwargs) events.append(evt) - for pot_i, pot_res_i in zip(pot, pot_res): + for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i pot_i.add_event(evt) @@ -957,7 +957,7 @@ def eval_multipoles(self, wait_for = [evt] - for pot_i, pot_res_i in zip(pot, pot_res): + for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i if events: @@ -1089,7 +1089,7 @@ def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): **kwargs) events.append(evt) - for pot_i, pot_res_i in zip(pot, pot_res): + for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i return (pot, SumpyTimingFuture(queue, events)) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index ec612ad46..a7ca24866 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -394,7 +394,8 @@ def get_global_scaling_const(self): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) - for name, value in zip(self.init_arg_names, self.__getinitargs__()): + for name, value in zip(self.init_arg_names, self.__getinitargs__(), + strict=True): if name in ["expression", "global_scaling_const"]: from pymbolic.mapper.persistent_hash import ( PersistentHashWalkMapper as PersistentHashWalkMapper, diff --git a/sumpy/p2p.py b/sumpy/p2p.py index c96f47518..2e5872ebe 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -705,7 +705,7 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # as vec for the first dimension for i, (array_name, array_size, array_dtype) in \ enumerate(zip(local_arrays, local_array_sizes, - local_array_dtypes)): + local_array_dtypes, strict=True)): if issubclass(array_dtype.type, np.complexfloating): # pyopencl does not support complex data type vectors continue @@ -721,7 +721,8 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # We need to split isrc_prefetch and isrc_offset into chunks. nsources = (max_nsources_in_one_box + nprefetch - 1) // nprefetch - for local_array, axis in zip(local_arrays, local_array_isrc_axis): + for local_array, axis in zip(local_arrays, local_array_isrc_axis, + strict=True): knl = lp.split_array_axis(knl, local_array, axis, nsources) knl = lp.split_iname(knl, "isrc_prefetch", nsources, outer_iname="iprefetch") diff --git a/sumpy/tools.py b/sumpy/tools.py index 40ef12a20..4d4f8dfc2 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -118,7 +118,7 @@ def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: # NOTE: these are used a lot and `tuple([])` is faster - return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2)]) # noqa: C409 + return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) # noqa: C409 def mi_factorial(mi: Sequence[int]) -> int: @@ -147,7 +147,7 @@ def mi_power( vector: Sequence[Any], mi: Sequence[int], evaluate: bool = True) -> Any: result = 1 - for mi_i, vec_i in zip(mi, vector): + for mi_i, vec_i in zip(mi, vector, strict=True): if mi_i == 1: result *= vec_i elif evaluate: @@ -367,7 +367,7 @@ def get_kernel_scaling_assignments(self): temp_var_type=lp.Optional(dtype), tags=frozenset([ScalingAssignmentTag()])) for i, (kernel, dtype) in enumerate( - zip(self.target_kernels, self.value_dtypes))] + zip(self.target_kernels, self.value_dtypes, strict=True))] @abstractmethod def get_kernel(self): @@ -654,7 +654,7 @@ def fft_toeplitz_upper_triangular(first_row, x, sac=None): v_fft = fft(v, sac) x_fft = fft(x, sac) - res_fft = [add_to_sac(sac, a * b) for a, b in zip(v_fft, x_fft)] + res_fft = [add_to_sac(sac, a * b) for a, b in zip(v_fft, x_fft, strict=True)] res = fft(res_fft, inverse=True, sac=sac) return list(reversed(res[:n])) diff --git a/sumpy/toys.py b/sumpy/toys.py index 60ee4f464..9e639583d 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -914,7 +914,7 @@ def draw_box(el, eh, **kwargs): (Path.CLOSEPOLY, (el[0], el[1])), ] - codes, verts = zip(*pathdata) + codes, verts = zip(*pathdata, strict=True) path = Path(verts, codes) patch = mpatches.PathPatch(path, **kwargs) pt.gca().add_patch(patch) diff --git a/test/test_fmm.py b/test/test_fmm.py index 437ca9ea5..525046e0c 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -407,7 +407,8 @@ def test_unified_single_and_double(actx_factory, visualize=False): dir_vec = actx.from_numpy(np.vstack([np.cos(alpha), np.sin(alpha)])) results = [] - for source_kernels, strength_usage in zip(source_kernel_vecs, strength_usages): + for source_kernels, strength_usage in zip( + source_kernel_vecs, strength_usages, strict=True): source_extra_kwargs = {} if deriv_knl in source_kernels: source_extra_kwargs["dir_vec"] = dir_vec diff --git a/test/test_kernels.py b/test/test_kernels.py index 4061dfcaf..41d9da0b5 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -672,14 +672,14 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, slower_m2m = mpole_expn.translate_from(mpole_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) - for expr1, expr2 in zip(faster_m2m, slower_m2m): + for expr1, expr2 in zip(faster_m2m, slower_m2m, strict=True): assert float(sym.doit(expr1 - expr2).expand()) == 0.0 faster_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale) slower_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) - for expr1, expr2 in zip(faster_l2l, slower_l2l): + for expr1, expr2 in zip(faster_l2l, slower_l2l, strict=True): assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # }}} @@ -712,7 +712,7 @@ def _m2l_translate_simple(tgt_expansion, src_expansion, src_coeff_exprs, src_rsc local_result = [] for coeff, term in zip( src_coeff_exprs, - src_expansion.get_coefficient_identifiers()): + src_expansion.get_coefficient_identifiers(), strict=True): kernel_deriv = taker.diff(add_mi(deriv, term)) / src_rscale**sum(deriv) @@ -750,7 +750,7 @@ def test_m2l_toeplitz(): src_rscale, dvec, tgt_rscale, sac=None) replace_dict = {d: rng.random() for d in dvec} - for sym_a, sym_b in zip(expected_output, actual_output): + for sym_a, sym_b in zip(expected_output, actual_output, strict=True): num_a = sym_a.xreplace(replace_dict) num_b = sym_b.xreplace(replace_dict) @@ -801,7 +801,7 @@ def test_m2m_compressed_error_helmholtz(actx_factory, dim, order): furthest_source = np.max(np.abs(sources - mpole_center)) m2m_vals = [0, 0] for i, (mpole_expn_class, local_expn_class) in \ - enumerate(zip(mpole_expn_classes, local_expn_classes)): + enumerate(zip(mpole_expn_classes, local_expn_classes, strict=True)): tctx = toys.ToyContext( actx.context, knl, From 93510c1a15e22919cce309e0f2b610d6ba4e0465 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 20:54:00 +0300 Subject: [PATCH 137/335] remove explicit force_device_scalars --- examples/curve-pot.py | 2 +- examples/expansion-toys.py | 2 +- examples/sym-exp-complexity.py | 2 +- sumpy/array_context.py | 2 +- test/test_fmm.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index c6402352f..c1c113662 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -63,7 +63,7 @@ def draw_pot_figure(aspect_ratio, from sumpy.array_context import PyOpenCLArrayContext ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) - actx = PyOpenCLArrayContext(queue, force_device_scalars=True) + actx = PyOpenCLArrayContext(queue) # {{{ make plot targets diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index c7052fe36..b61aafcf5 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -18,7 +18,7 @@ def main(): from sumpy.array_context import PyOpenCLArrayContext ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) - actx = PyOpenCLArrayContext(queue, force_device_scalars=True) + actx = PyOpenCLArrayContext(queue) tctx = t.ToyContext( actx.context, diff --git a/examples/sym-exp-complexity.py b/examples/sym-exp-complexity.py index 9dfbfb442..c0d0c8163 100644 --- a/examples/sym-exp-complexity.py +++ b/examples/sym-exp-complexity.py @@ -24,7 +24,7 @@ def find_flops(): from sumpy.array_context import PyOpenCLArrayContext ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) - actx = PyOpenCLArrayContext(queue, force_device_scalars=True) + actx = PyOpenCLArrayContext(queue) if 0: knl = LaplaceKernel(2) diff --git a/sumpy/array_context.py b/sumpy/array_context.py index eddfb2cc8..cc54048a8 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -64,7 +64,7 @@ def _acf(): ctx = cl.create_some_context() queue = cl.CommandQueue(ctx) - return PyOpenCLArrayContext(queue, force_device_scalars=True) + return PyOpenCLArrayContext(queue) class PytestPyOpenCLArrayContextFactory( diff --git a/test/test_fmm.py b/test/test_fmm.py index 525046e0c..d85eafe60 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -450,7 +450,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) ctx = ctx_factory() queue = cl.CommandQueue(ctx, properties=cl.command_queue_properties.PROFILING_ENABLE) - actx = PyOpenCLArrayContext(queue, force_device_scalars=True) + actx = PyOpenCLArrayContext(queue) nsources = 500 dtype = np.float64 From dfa2f384cba724e7466cc01ee8414ee5176de6b8 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 20:55:17 +0300 Subject: [PATCH 138/335] use parentheses instead of line breaks --- sumpy/codegen.py | 20 ++++++++++---------- sumpy/kernel.py | 4 ++-- sumpy/symbolic.py | 5 +++-- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 9917db731..4dd9c5a40 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -221,8 +221,8 @@ def _fp_contract_fast_preamble(preamble_info): def register_optimization_preambles(loopy_knl, device): if isinstance(loopy_knl.target, lp.PyOpenCLTarget): import pyopencl as cl - if device.platform.name == "Portable Computing Language" and \ - (device.type & cl.device_type.GPU): + if (device.platform.name == "Portable Computing Language" + and (device.type & cl.device_type.GPU)): loopy_knl = lp.register_preamble_generators(loopy_knl, [_fp_contract_fast_preamble]) return loopy_knl @@ -257,8 +257,8 @@ def __init__(self): self.bessel_j_arg_to_top_order = {} def map_call(self, expr, rec_self=None, *args): - if isinstance(expr.function, prim.Variable) \ - and expr.function.name == "bessel_j": + if (isinstance(expr.function, prim.Variable) + and expr.function.name == "bessel_j"): order, arg = expr.parameters self.rec(arg) assert isinstance(order, int) @@ -588,11 +588,12 @@ def map_sum(self, expr, *args): first_group.append(child) new_children = tuple(first_group + second_group) - if len(new_children) == len(expr.children) and \ - all(child is orig_child for child, orig_child in - zip(new_children, expr.children, strict=True)): + if (len(new_children) == len(expr.children) + and all(child is orig_child for child, orig_child + in zip(new_children, expr.children, strict=True))): return expr - return prim.Sum(tuple(first_group+second_group)) + + return prim.Sum(tuple(first_group + second_group)) map_common_subexpression_uncached = IdentityMapper.map_common_subexpression @@ -647,8 +648,7 @@ def combine_mappers(*mappers): class CombinedMapper(CSECachingIdentityMapper): def __init__(self, all_methods): self.all_methods = all_methods - map_common_subexpression_uncached = \ - IdentityMapper.map_common_subexpression + map_common_subexpression_uncached = IdentityMapper.map_common_subexpression def _map(method_name, self, expr, rec_self=None, *args): if method_name not in self.all_methods: diff --git a/sumpy/kernel.py b/sumpy/kernel.py index a7ca24866..4bf05fe46 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1105,8 +1105,8 @@ def __init__(self, vec_name, additional_indices): def map_subscript(self, expr): from pymbolic.primitives import CommonSubexpression, cse_scope - if expr.aggregate.name == self.vec_name \ - and isinstance(expr.index, int): + if (expr.aggregate.name == self.vec_name + and isinstance(expr.index, int)): return CommonSubexpression( expr.aggregate.index((expr.index, *self.additional_indices)), prefix=None, scope=cse_scope.EVALUATION) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index c3c58c68c..2870b50e0 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -316,8 +316,9 @@ def map_Mul(self, expr): # noqa: N802 num_args = [] den_args = [] for child in expr.args: - if isinstance(child, Pow) and isinstance(child.exp, Integer) \ - and child.exp < 0: + if (isinstance(child, Pow) + and isinstance(child.exp, Integer) + and child.exp < 0): den_args.append(self.rec(child.base)**(-self.rec(child.exp))) else: num_args.append(self.rec(child)) From 73471c4efd2df73a62c3dc6fc35d11b61f6d7638 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 20:56:09 +0300 Subject: [PATCH 139/335] port to expr_dataclass Expressions --- sumpy/symbolic.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 2870b50e0..d8bc011e5 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -275,17 +275,18 @@ def find_power_of(base, prod): return result[power] +@prim.expr_dataclass() class SpatialConstant(prim.Variable): """A symbolic constant to represent a symbolic variable that - is spatially constant, like for example the wave-number :math:`k` - in the setting of a constant-coefficient Helmholtz problem. - For use in :attr:`sumpy.kernel.ExpressionKernel.expression`. + is spatially constant. + + For example the wave-number :math:`k` in the setting of a constant-coefficient + Helmholtz problem. For use in :attr:`sumpy.kernel.ExpressionKernel.expression`. Any variable occurring there that is not a :class:`SpatialConstant` is assumed to have a spatial dependency. """ prefix = "_spatial_constant_" - mapper_method = "map_spatial_constant" def as_sympy(self): return sym.Symbol(f"{self.prefix}{self.name}") From 21037bb2cd6538aa8291ab00ae93cd9975e0f752 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 20:55:35 +0300 Subject: [PATCH 140/335] port away from Expression.index --- sumpy/codegen.py | 2 +- sumpy/kernel.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 4dd9c5a40..26e006128 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -548,7 +548,7 @@ def map_variable(self, expr, *args): name = match_obj.group(1) subscript = int(match_obj.group(2)) if name in self.name_whitelist: - return prim.Variable(name).index(subscript) + return prim.Variable(name)[subscript] else: return expr else: diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 4bf05fe46..6e889acd2 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1108,7 +1108,7 @@ def map_subscript(self, expr): if (expr.aggregate.name == self.vec_name and isinstance(expr.index, int)): return CommonSubexpression( - expr.aggregate.index((expr.index, *self.additional_indices)), + expr.aggregate[(expr.index, *self.additional_indices)], prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr) From 07e2eb1fb05f02561b56e17c59b23a956e3818ff Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 20:55:50 +0300 Subject: [PATCH 141/335] port away from PersistentHashWalkMapper --- sumpy/kernel.py | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 6e889acd2..76e24c620 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -394,15 +394,8 @@ def get_global_scaling_const(self): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) - for name, value in zip(self.init_arg_names, self.__getinitargs__(), - strict=True): - if name in ["expression", "global_scaling_const"]: - from pymbolic.mapper.persistent_hash import ( - PersistentHashWalkMapper as PersistentHashWalkMapper, - ) - PersistentHashWalkMapper(key_hash)(value) - else: - key_builder.rec(key_hash, value) + for _, value in zip(self.init_arg_names, self.__getinitargs__(), strict=True): + key_builder.rec(key_hash, value) mapper_method = "map_expression_kernel" @@ -755,13 +748,11 @@ def __reduce__(self): return (ElasticityKernel, self.__getinitargs__()) def update_persistent_hash(self, key_hash, key_builder): - from pymbolic.mapper.persistent_hash import PersistentHashWalkMapper key_hash.update(type(self).__name__.encode()) key_builder.rec(key_hash, (self.dim, self.icomp, self.jcomp)) - mapper = PersistentHashWalkMapper(key_hash) - mapper(self.viscosity_mu) - mapper(self.poisson_ratio) + key_builder.rec(key_hash, self.viscosity_mu) + key_builder.rec(key_hash, self.poisson_ratio) def __repr__(self): return f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" @@ -854,10 +845,7 @@ def __getinitargs__(self): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode()) key_builder.rec(key_hash, (self.dim, self.icomp, self.jcomp, self.kcomp)) - - from pymbolic.mapper.persistent_hash import PersistentHashWalkMapper - mapper = PersistentHashWalkMapper(key_hash) - mapper(self.viscosity_mu) + key_builder.rec(key_hash, self.viscosity_mu) def __repr__(self): return f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" @@ -930,12 +918,10 @@ def __getinitargs__(self): return (self.dim, self.axis, self.viscosity_mu, self.poisson_ratio) def update_persistent_hash(self, key_hash, key_builder): - from pymbolic.mapper.persistent_hash import PersistentHashWalkMapper key_hash.update(type(self).__name__.encode()) key_builder.rec(key_hash, (self.dim, self.axis)) - mapper = PersistentHashWalkMapper(key_hash) - mapper(self.viscosity_mu) - mapper(self.poisson_ratio) + key_builder.rec(key_hash, self.viscosity_mu) + key_builder.rec(key_hash, self.poisson_ratio) def __repr__(self): return f"LineOfCompressionKnl{self.dim}D_{self.axis}" From 0b38128aec16db5928582e3239f79f452ad1b8d4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 1 Oct 2024 21:30:14 +0300 Subject: [PATCH 142/335] ignore mypy errors --- sumpy/symbolic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index d8bc011e5..ccc07edbb 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -100,7 +100,7 @@ def _find_symbolic_backend(): else: import sympy as sym - from pymbolic.interop.sympy import ( + from pymbolic.interop.sympy import ( # type: ignore[assignment] PymbolicToSympyMapper as PymbolicToSympyMapperBase, SympyToPymbolicMapper as SympyToPymbolicMapperBase, ) From 48ccecad2d5e1d4460d5137f1eeae8e0db00eb2e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 9 Oct 2024 10:01:18 +0300 Subject: [PATCH 143/335] docs: improve SpatialConstant docs --- sumpy/symbolic.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index ccc07edbb..d040971d3 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -39,9 +39,10 @@ import logging import math -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, ClassVar import numpy as np +import sympy as sp import pymbolic.primitives as prim from pymbolic.mapper import IdentityMapper as IdentityMapperBase @@ -277,22 +278,28 @@ def find_power_of(base, prod): @prim.expr_dataclass() class SpatialConstant(prim.Variable): - """A symbolic constant to represent a symbolic variable that - is spatially constant. + """A symbolic constant to represent a symbolic variable that is spatially constant. For example the wave-number :math:`k` in the setting of a constant-coefficient Helmholtz problem. For use in :attr:`sumpy.kernel.ExpressionKernel.expression`. - Any variable occurring there that is not a :class:`SpatialConstant` + Any variable occurring there that is not a :class:`~sumpy.symbolic.SpatialConstant` is assumed to have a spatial dependency. + + .. autoattribute:: prefix + .. automethod:: as_sympy + .. automethod:: from_sympy """ - prefix = "_spatial_constant_" + prefix: ClassVar[str] = "_spatial_constant_" + """Prefix used in code generation for variables of this type.""" - def as_sympy(self): + def as_sympy(self) -> sp.Symbol: + """Convert variable to a :mod:`sympy` expression.""" return sym.Symbol(f"{self.prefix}{self.name}") @classmethod - def from_sympy(cls, expr): + def from_sympy(cls, expr: sp.Symbol) -> SpatialConstant: + """Convert :mod:`sympy` expression to a constant.""" return cls(expr.name[len(cls.prefix):]) From ddd6015d73366d2407998a8f8ca6f6a5eaacbc07 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 Nov 2024 09:33:33 +0100 Subject: [PATCH 144/335] pyproject: bump min pymbolic version --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 408fb7d90..47beedcac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,8 @@ dependencies = [ "loopy>=2024.1", "numpy", "pyopencl>=2022.1", - "pytools>=2022.1", + "pytools>=2024.1", + "pymbolic>=2024.2", "sympy>=0.7.2", ] From 4faa6afaf8f1584e8129b30dbb890763eeacabc4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 Nov 2024 09:35:10 +0100 Subject: [PATCH 145/335] pyproject: switch to hatchling --- MANIFEST.in | 15 --------------- pyproject.toml | 12 ++---------- 2 files changed, 2 insertions(+), 25 deletions(-) delete mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 9fca12ad3..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,15 +0,0 @@ -include doc/*.rst -include doc/Makefile - -include notes/*.tex -include notes/*.pdf -include notes/latexmkrc -include notes/media/*.ipe -include notes/media/*.eps - -include LICENSE -include README.rst - -prune .github -exclude .gitlab-ci.yml -exclude .gitignore diff --git a/pyproject.toml b/pyproject.toml index 47beedcac..77bcec2b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,6 @@ [build-system] -build-backend = "setuptools.build_meta" -requires = [ - "setuptools>=63", -] +requires = ["hatchling"] +build-backend = "hatchling.build" [project] name = "sumpy" @@ -67,11 +65,6 @@ test = [ Documentation = "https://documen.tician.de/sumpy" Repository = "https://github.com/inducer/sumpy" -[tool.setuptools.packages.find] -include = [ - "sumpy*", -] - [tool.ruff] preview = true @@ -121,7 +114,6 @@ required-imports = ["from __future__ import annotations"] [tool.ruff.lint.per-file-ignores] "doc/**/*.py" = ["I002"] "examples/**/*.py" = ["I002"] -"setup.py" = ["I002"] [tool.typos.default] extend-ignore-re = [ From 0af6cd949ce45f6ce7d31e726e6487613f9215b9 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 Nov 2024 09:41:55 +0100 Subject: [PATCH 146/335] codegen: port from pymbolic wrap_in_cse --- sumpy/codegen.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 26e006128..f75a39928 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -33,6 +33,7 @@ import pymbolic.primitives as prim from loopy.kernel.instruction import make_assignment from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper +from pymbolic.typing import Expression from pytools import memoize_method from sumpy.symbolic import SympyToPymbolicMapper as SympyToPymbolicMapperBase @@ -48,10 +49,13 @@ .. autoclass:: SympyToPymbolicMapper .. autofunction:: to_loopy_insns - """ +def wrap_in_cse(expr: Expression, prefix: str | None = None) -> Expression: + return prim.make_common_subexpression(expr, prefix, wrap_vars=False) + + # {{{ sympy -> pymbolic mapper import sumpy.symbolic as sym @@ -325,7 +329,7 @@ def map_call(self, expr, *args): return super().map_call(expr) def wrap_in_cse(self, expr, prefix): - cse = prim.wrap_in_cse(expr, prefix) + cse = wrap_in_cse(expr, prefix) return self.cse_cache.setdefault(expr, cse) # {{{ bessel implementation @@ -411,17 +415,17 @@ class PowerRewriter(CSECachingIdentityMapper, CallExternalRecMapper): def map_power(self, expr, rec_self=None, *args): exp = expr.exponent if isinstance(exp, int): - new_base = prim.wrap_in_cse(expr.base) + new_base = wrap_in_cse(expr.base) if exp > 2 and exp % 2 == 0: - square = prim.wrap_in_cse(new_base*new_base) - return self.rec(prim.wrap_in_cse(square**(exp//2)), + square = wrap_in_cse(new_base*new_base) + return self.rec(wrap_in_cse(square**(exp//2)), rec_self, *args) elif exp == 2: return new_base * new_base elif exp > 1 and exp % 2 == 1: - square = prim.wrap_in_cse(new_base*new_base) - return self.rec(prim.wrap_in_cse(square**((exp-1)//2))*new_base, + square = wrap_in_cse(new_base*new_base) + return self.rec(wrap_in_cse(square**((exp-1)//2))*new_base, rec_self, *args) elif exp == 1: return new_base @@ -444,10 +448,10 @@ def map_power(self, expr, rec_self=None, *args): assert p != 0 if p > 0: - orig_base = prim.wrap_in_cse(expr.base) - new_base = prim.wrap_in_cse(prim.Variable("sqrt")(orig_base)) + orig_base = wrap_in_cse(expr.base) + new_base = wrap_in_cse(prim.Variable("sqrt")(orig_base)) else: - new_base = prim.wrap_in_cse(prim.Variable("rsqrt")(expr.base)) + new_base = wrap_in_cse(prim.Variable("rsqrt")(expr.base)) p *= -1 return self.rec(new_base**p, rec_self, *args) From 089c51cca7f119a1f3d64fdfca7fa64a6d6f7007 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 Nov 2024 19:21:51 +0100 Subject: [PATCH 147/335] ruff: fix re errors --- sumpy/codegen.py | 2 +- sumpy/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index f75a39928..5817c5c10 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -537,7 +537,7 @@ def map_constant(self, expr, rec_self=None): # {{{ vector component rewriter -INDEXED_VAR_RE = re.compile("^([a-zA-Z_]+)([0-9]+)$") +INDEXED_VAR_RE = re.compile(r"^([a-zA-Z_]+)([0-9]+)$") class VectorComponentRewriter(CSECachingIdentityMapper, CallExternalRecMapper): diff --git a/sumpy/version.py b/sumpy/version.py index 953a12813..81d1e3c72 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("^([0-9.]+)([a-z0-9]*?)$", VERSION_TEXT) + m = re.match(r"^([0-9.]+)([a-z0-9]*?)$", VERSION_TEXT) assert m is not None return tuple(int(nr) for nr in m.group(1).split(".")), m.group(2) From 6f5d45d620a2f090409c6e48dacee6c0e36b1fd4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 8 Dec 2024 14:31:09 +0200 Subject: [PATCH 148/335] codegen: make arg_id_for_dtype immutable --- sumpy/codegen.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 5817c5c10..7ff7b9380 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -28,6 +28,7 @@ import re import numpy as np +from immutabledict import immutabledict import loopy as lp import pymbolic.primitives as prim @@ -141,21 +142,21 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): if z_dtype.numpy_dtype.kind == "c": return (self.copy(name_in_target="bessel_jv_two_complex", - arg_id_to_dtype={ + arg_id_to_dtype=immutabledict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.int32), 1: NumpyType(np.complex128), - }), + })), clbl_inf_ctx) else: return (self.copy(name_in_target="bessel_jv_two", - arg_id_to_dtype={ + arg_id_to_dtype=immutabledict({ -2: NumpyType(np.float64), -1: NumpyType(np.float64), 0: NumpyType(np.int32), 1: NumpyType(np.float64), - }), + })), clbl_inf_ctx) def generate_preambles(self, target): @@ -183,19 +184,19 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): if z_dtype.numpy_dtype.kind == "c": return (self.copy(name_in_target="hank1_01_complex", - arg_id_to_dtype={ + arg_id_to_dtype=immutabledict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.complex128), - }), + })), clbl_inf_ctx) else: return (self.copy(name_in_target="hank1_01", - arg_id_to_dtype={ + arg_id_to_dtype=immutabledict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.float64), - }), + })), clbl_inf_ctx) def generate_preambles(self, target): From 619103b31f9db81247e9e75894fc7b923e6540ec Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 8 Dec 2024 14:31:25 +0200 Subject: [PATCH 149/335] codegen: use happens_after instead of depends_on --- sumpy/expansion/loopy.py | 4 ++-- sumpy/expansion/m2l.py | 17 +++++++++-------- sumpy/tools.py | 16 ++++++++-------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 7d3836857..7798c7099 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -106,7 +106,7 @@ def make_e2p_loopy_kernel( assignee=result[idx], expression=result[idx] + insn.expression, id=f"result_{idx}", - depends_on=insn.depends_on, + happens_after=insn.happens_after, ) loopy_knl = lp.make_function(domains, insns, @@ -204,7 +204,7 @@ def make_p2e_loopy_kernel( assignee=coeffs[idx], expression=coeffs[idx] + insn.expression, id=f"coeff_{idx}", - depends_on=insn.depends_on, + happens_after=insn.happens_after, ) loopy_knl = lp.make_function(domains, insns, diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 2786f36af..2779fefd1 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -517,8 +517,9 @@ def loopy_preprocess_multipole(self, tgt_expansion, src_expansion, pymbolic.primitives.Comparison(sum(v), "<=", order), pymbolic.primitives.Comparison(v[slowest_idx], "<", c), ]), - depends_on=frozenset([f"set_x{i}" for i in range(dim)] - + ["input_copy"]), + happens_after=frozenset( + [f"set_x{i}" for i in range(dim)] + ["input_copy"] + ), ) ] @@ -599,13 +600,13 @@ def loopy_postprocess_local(self, tgt_expansion, src_expansion, assignee=rscale_arr[0], expression=1, id="rscale_arr0", - depends_on="rscale_ratio", + happens_after=frozenset(["rscale_ratio"]), ), lp.Assignment( assignee=rscale_arr[iorder], expression=rscale_arr[iorder - 1]*rscale_ratio, id="rscale_arr", - depends_on="rscale_arr0", + happens_after=frozenset(["rscale_arr0"]), ), ] @@ -645,7 +646,7 @@ def result_func(x): expression=(result_func(input_coeffs[src_idx_sym[output_icoeff_sym]]) * rscale_arr[rscale_idx_arr_sym[output_icoeff_sym]]), id="coeff_insn", - depends_on=frozenset(["rscale_arr"]), + happens_after=frozenset(["rscale_arr"]), ) ] @@ -1070,7 +1071,7 @@ def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, ) data = pymbolic.var("m2l_translation_classes_dependent_data") - depends_on = None + happens_after = None for i in range(len(insns)): insn = insns[i] if isinstance(insn, lp.Assignment) and \ @@ -1080,9 +1081,9 @@ def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, assignee=data[idx], expression=insn.expression, id=f"data_{idx}", - depends_on=depends_on, + happens_after=happens_after, ) - depends_on = frozenset([f"data_{idx}"]) + happens_after = frozenset([f"data_{idx}"]) knl = lp.make_function([], insns, kernel_data=[ diff --git a/sumpy/tools.py b/sumpy/tools.py index 4d4f8dfc2..8251c8bb6 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -773,14 +773,14 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, assignee=x[index], expression=y[index], id="copy", - depends_on=frozenset(["exp_table"]), + happens_after=frozenset(["exp_table"]), ), ] for ilev, N1 in enumerate(list(reversed(factors))): # noqa: N806 nfft //= N1 N2 = n // (nfft * N1) # noqa: N806 - init_depends_on = "copy" if ilev == 0 else f"update_{ilev-1}" + init_happens_after = "copy" if ilev == 0 else f"update_{ilev-1}" temp = var("temp") exp_table = var("exp_table") @@ -802,24 +802,24 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, assignee=temp[i], expression=x[i_bcast], id=f"copy_{ilev}", - depends_on=frozenset([init_depends_on]), + happens_after=frozenset([init_happens_after]), ), lp.Assignment( assignee=x[i2_bcast], expression=0, id=f"reset_{ilev}", - depends_on=frozenset([f"copy_{ilev}"])), + happens_after=frozenset([f"copy_{ilev}"])), lp.Assignment( assignee=table_idx, expression=nfft*iN1_sum*(iN2 + N2*iN1), id=f"idx_{ilev}", - depends_on=frozenset([f"reset_{ilev}"]), + happens_after=frozenset([f"reset_{ilev}"]), temp_var_type=lp.Optional(np.uint32)), lp.Assignment( assignee=exp, expression=exp_table[table_idx % n], id=f"exp_{ilev}", - depends_on=frozenset([f"idx_{ilev}"]), + happens_after=frozenset([f"idx_{ilev}"]), within_inames=frozenset({x.name for x in [*broadcast_dims, iN1_sum, iN1, iN2]}), temp_var_type=lp.Optional(complex_dtype)), @@ -828,7 +828,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, expression=(x[iN_bcast] + exp * temp[ifft + nfft * (iN2*N1 + iN1_sum)]), id=f"update_{ilev}", - depends_on=frozenset([f"exp_{ilev}"])), + happens_after=frozenset([f"exp_{ilev}"])), ] domains += [ @@ -873,7 +873,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, lp.Assignment( assignee=x[index], expression=x[index] / n, - depends_on=frozenset([f"update_{len(factors) - 1}"]), + happens_after=frozenset([f"update_{len(factors) - 1}"]), ), ] From 2acbee487c10eaa67c7b4504c6c4526637e274aa Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 8 Dec 2024 14:33:29 +0200 Subject: [PATCH 150/335] ruff: fix RUF046 int cast --- sumpy/visualization.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 1293d80c5..0ecdab869 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -76,9 +76,7 @@ def make_field_plotter_from_bbox(bbox, h, extend_factor=0): from math import ceil - npoints = tuple( - int(ceil(extent[i] / h[i])) - for i in range(dimensions)) + npoints = tuple(ceil(extent[i] / h[i]) for i in range(dimensions)) return FieldPlotter(center, extent, npoints) From ba28983bb165dd58fd202fb1a933b5e41d531502 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Dec 2024 11:26:35 +0200 Subject: [PATCH 151/335] pylint: remove some useless suppresions --- sumpy/visualization.py | 4 ++-- test/test_cse.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 0ecdab869..521ae8f63 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -144,7 +144,7 @@ def show_scalar_in_matplotlib(self, fld, max_val=None, if max_val is not None: squeezed_fld[squeezed_fld > max_val] = max_val - squeezed_fld[squeezed_fld < -max_val] = -max_val # pylint: disable=E1130 + squeezed_fld[squeezed_fld < -max_val] = -max_val squeezed_fld = squeezed_fld[..., ::-1] @@ -185,7 +185,7 @@ def write_vtk_file(self, file_name, data, real_only=False, overwrite=False): def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): if max_val is not None: fld[fld > max_val] = max_val - fld[fld < -max_val] = -max_val # pylint: disable=E1130 + fld[fld < -max_val] = -max_val if len(fld.shape) == 1: fld = fld.reshape(self.nd_points.shape[1:]) diff --git a/test/test_cse.py b/test/test_cse.py index 15330e44a..3a5057a20 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -149,8 +149,9 @@ def test_cse_not_possible(): assert substs == [] assert reduced == [x + y] # issue 6329 - eq = (meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment - + meijerg((1, 3), (y, 4), (5,), [], x)) # pylint: disable=possibly-used-before-assignment + eq = ( + meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment + + meijerg((1, 3), (y, 4), (5,), [], x)) assert cse(eq) == ([], [eq]) # }}} @@ -187,7 +188,7 @@ def test_subtraction_opt(): n = -1 + 1/x e = n/x/(-n)**2 - 1/n/x assert cse(e, optimizations=[ - (cse_opts.sub_pre, cse_opts.sub_post)] # pylint: disable=possibly-used-before-assignment + (cse_opts.sub_pre, cse_opts.sub_post)] ) == ([], [0]) # }}} From 6b5eb2164c58ea21f0d7e2505de9935150a413a9 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 10 Jan 2025 12:13:16 -0600 Subject: [PATCH 152/335] Fix Gitlab CI pylint job --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7436773b8..4bfe43c72 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,7 +134,7 @@ Pylint: - curl -L -O https://tiker.net/ci-support-v0 - . ci-support-v0 - build_py_project - - run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py, test/*.py + - run_pylint "$(get_proj_name)" examples/*.py test/*.py tags: - python3 except: From bc1a9445790dca48dc09e5337898eceaa7577399 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 10 Jan 2025 15:59:19 -0600 Subject: [PATCH 153/335] Fix mypy issues from better pymbolic/pytools typing --- sumpy/expansion/__init__.py | 2 +- sumpy/kernel.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 048d17d6b..401f3be80 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -283,7 +283,7 @@ def get_stored_mpole_coefficients_from_full(self, # }}} @memoize_method - def get_full_coefficient_identifiers(self) -> list[Hashable]: + def get_full_coefficient_identifiers(self) -> Sequence[Hashable]: """ Returns identifiers for every coefficient in the complete expansion. """ diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 76e24c620..81556bf92 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -31,7 +31,8 @@ import sympy as sp import loopy as lp -from pymbolic import var +import pymbolic.primitives as prim +from pymbolic import Expression, var from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper from pymbolic.primitives import make_sym_vector from pytools import memoize_method @@ -1084,7 +1085,7 @@ def replace_inner_kernel(self, new_inner_kernel): mapper_method = "map_axis_target_derivative" -class _VectorIndexAdder(CSECachingMapperMixin, IdentityMapper): +class _VectorIndexAdder(CSECachingMapperMixin[Expression, []], IdentityMapper[[]]): def __init__(self, vec_name, additional_indices): self.vec_name = vec_name self.additional_indices = additional_indices @@ -1099,7 +1100,14 @@ def map_subscript(self, expr): else: return IdentityMapper.map_subscript(self, expr) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + def map_common_subexpression_uncached(self, + expr: prim.CommonSubexpression) -> Expression: + result = self.rec(expr.child) + if result is expr.child: + return expr + + return type(expr)( + result, expr.prefix, expr.scope, **expr.get_extra_properties()) class DirectionalDerivative(DerivativeBase): From e0c554f9b375003706dfc763018d2972f18adcf7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 10 Jan 2025 16:06:15 -0600 Subject: [PATCH 154/335] Ignore symengine for pylint --- .pylintrc-local.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.pylintrc-local.yml b/.pylintrc-local.yml index 21b18e9d1..287e89ccd 100644 --- a/.pylintrc-local.yml +++ b/.pylintrc-local.yml @@ -3,3 +3,6 @@ - arg: extension-pkg-whitelist val: mayavi +- arg: ignored-modules + val: + - symengine From 46e2c0f4546be66231cde939cdc28a08127bc812 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 31 Jan 2025 10:38:16 +0200 Subject: [PATCH 155/335] feat: use constantdict instead of immutabledict --- pyproject.toml | 2 +- requirements.txt | 2 +- sumpy/codegen.py | 10 +++++----- sumpy/expansion/diff_op.py | 28 +++++++++++++++++----------- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 77bcec2b3..f7a332fd8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ classifiers = [ dependencies = [ "arraycontext>=2021.1", "boxtree>=2023.1", - "immutabledict", + "constantdict>=2024.4", "loopy>=2024.1", "numpy", "pyopencl>=2022.1", diff --git a/requirements.txt b/requirements.txt index 9a3889d80..57085a116 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ numpy sympy -immutabledict +constantdict pyvkfft # used in mpi-based tests diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 7ff7b9380..6e091d2f0 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -28,7 +28,7 @@ import re import numpy as np -from immutabledict import immutabledict +from constantdict import constantdict import loopy as lp import pymbolic.primitives as prim @@ -142,7 +142,7 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): if z_dtype.numpy_dtype.kind == "c": return (self.copy(name_in_target="bessel_jv_two_complex", - arg_id_to_dtype=immutabledict({ + arg_id_to_dtype=constantdict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.int32), @@ -151,7 +151,7 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): clbl_inf_ctx) else: return (self.copy(name_in_target="bessel_jv_two", - arg_id_to_dtype=immutabledict({ + arg_id_to_dtype=constantdict({ -2: NumpyType(np.float64), -1: NumpyType(np.float64), 0: NumpyType(np.int32), @@ -184,7 +184,7 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): if z_dtype.numpy_dtype.kind == "c": return (self.copy(name_in_target="hank1_01_complex", - arg_id_to_dtype=immutabledict({ + arg_id_to_dtype=constantdict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.complex128), @@ -192,7 +192,7 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): clbl_inf_ctx) else: return (self.copy(name_in_target="hank1_01", - arg_id_to_dtype=immutabledict({ + arg_id_to_dtype=constantdict({ -2: NumpyType(np.complex128), -1: NumpyType(np.complex128), 0: NumpyType(np.float64), diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 303d0d552..7ee421967 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -33,7 +33,7 @@ import numpy as np import sympy as sp import sympy.polys.agca.modules as sp_modules -from immutabledict import immutabledict +from constantdict import constantdict from pytools import memoize @@ -115,7 +115,8 @@ def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: deriv_ident_to_coeff = {} for k, v in eq.items(): deriv_ident_to_coeff[k] = v * param - eqs.append(immutabledict(deriv_ident_to_coeff)) + eqs.append(constantdict(deriv_ident_to_coeff)) + return LinearPDESystemOperator(self.dim, tuple(eqs)) __rmul__ = __mul__ @@ -125,6 +126,7 @@ def __add__( ) -> LinearPDESystemOperator: assert self.dim == other_diff_op.dim assert len(self.eqs) == len(other_diff_op.eqs) + eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq, other_eq in zip(self.eqs, other_diff_op.eqs, strict=True): res = dict(eq) @@ -133,7 +135,8 @@ def __add__( res[k] += v else: res[k] = v - eqs.append(immutabledict(res)) + eqs.append(constantdict(res)) + return LinearPDESystemOperator(self.dim, tuple(eqs)) __radd__ = __add__ @@ -269,7 +272,7 @@ def intersect( DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs(), strict=True) } - results.append(LinearPDESystemOperator(pde.dim, (immutabledict(pde_dict),))) + results.append(LinearPDESystemOperator(pde.dim, (constantdict(pde_dict),))) return results @@ -347,8 +350,8 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: dim = diff_op.dim - empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = \ - (immutabledict(),) * len(diff_op.eqs) + empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = ( + (constantdict(),) * len(diff_op.eqs)) res = LinearPDESystemOperator(dim, empty) for j in range(dim): mi = [0]*diff_op.total_dims @@ -366,17 +369,20 @@ def diff( for deriv_ident, v in eq.items(): new_mi = add_mi(deriv_ident.mi, mi) res[DerivativeIdentifier(new_mi, deriv_ident.vec_idx)] = v - eqs.append(immutabledict(res)) + eqs.append(constantdict(res)) + return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: assert len(diff_op.eqs) == diff_op.dim - res = LinearPDESystemOperator(diff_op.dim, (immutabledict(),)) + + res = LinearPDESystemOperator(diff_op.dim, (constantdict(),)) for i in range(diff_op.dim): mi = [0]*diff_op.total_dims mi[i] = 1 res += diff(diff_op[i], tuple(mi)) + return res @@ -436,6 +442,6 @@ def make_identity_diff_op( mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) - return LinearPDESystemOperator(ninput, tuple(immutabledict( - {DerivativeIdentifier(mi, i): sp.sympify(1)}) - for i in range(noutput))) + return LinearPDESystemOperator(ninput, tuple( + constantdict({DerivativeIdentifier(mi, i): sp.sympify(1)}) + for i in range(noutput))) From 56f3668138d5fd013d33205cbc4618a3f87dd518 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 31 Jan 2025 10:58:18 +0200 Subject: [PATCH 156/335] fix: github CI badges --- README.rst | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/README.rst b/README.rst index 81866ea71..c866cabc4 100644 --- a/README.rst +++ b/README.rst @@ -6,35 +6,31 @@ sumpy: n-body kernels and translation operators :target: https://gitlab.tiker.net/inducer/sumpy/commits/main .. image:: https://github.com/inducer/sumpy/actions/workflows/ci.yml/badge.svg :alt: Github Build Status - :target: https://github.com/inducer/sumpy/actions?query=branch%3Amain+workflow%3ACI -.. image:: https://badge.fury.io/py/sumpy.png + :target: https://github.com/inducer/sumpy/actions/workflows/ci.yml +.. image:: https://badge.fury.io/py/sumpy.svg :alt: Python Package Index Release Page :target: https://pypi.org/project/sumpy/ .. image:: https://zenodo.org/badge/1856097.svg :alt: Zenodo DOI for latest release :target: https://zenodo.org/badge/latestdoi/1856097 -Sumpy is mainly a 'scaffolding' package for Fast Multipole and quadrature methods. -If you're building one of those and need code generation for the required Multipole -and local expansions, come right on in. Together with boxtree, there is a full, +sumpy is mainly a 'scaffolding' package for Fast Multipole and quadrature methods. +If you're building one of those and need code generation for the required multipole +and local expansions, come right on in. Together with ``boxtree``, there is a full, symbolically kernel-independent FMM implementation here. -Sumpy relies on +It relies on -* `numpy `_ for arrays -* `boxtree `_ for FMM tree building -* `loopy `_ for fast array operations -* `pytest `_ for automated testing +* `boxtree `__ for FMM tree building +* `loopy `__ for fast array operations +* `pytest `__ for automated testing and, indirectly, -* `PyOpenCL `_ as computational infrastructure - -PyOpenCL is likely the only package you'll have to install -by hand, all the others will be installed automatically. +* `PyOpenCL `__ as computational infrastructure Resources: -* `documentation `_ -* `source code via git `_ -* `benchmarks `_ +* `documentation `__ +* `source code via git `__ +* `benchmarks `__ From 5731120e4996f33d4d87f5173856d37d56901f36 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 25 Mar 2025 21:41:34 -0500 Subject: [PATCH 157/335] Use dev dep group for ruff install, avoid broken ruff --- .github/workflows/ci.yml | 4 ++-- .gitlab-ci.yml | 4 ++-- pyproject.toml | 22 ++++++++++++++++------ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31c9edd4d..3f0796010 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v5 - name: "Main Script" run: | - pipx install ruff - ruff check + uv run --only-group lint ruff check typos: name: Typos diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4bfe43c72..5a03e0a93 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -121,8 +121,8 @@ Documentation: Ruff: stage: test script: - - pipx install ruff - - ruff check + - pipx install uv + - uv run --only-group lint ruff check tags: - docker-runner except: diff --git a/pyproject.toml b/pyproject.toml index f7a332fd8..406c06310 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,12 +40,27 @@ dependencies = [ "sympy>=0.7.2", ] -[project.optional-dependencies] +[dependency-groups] +dev = [ + {include-group = "doc"}, + {include-group = "test"}, + {include-group = "lint"}, +] +lint = [ + "pylint", + # https://github.com/astral-sh/ruff/issues/16943 + "ruff!=0.11.1,!=0.11.2", +] doc = [ "furo", "sphinx-copybutton", "sphinx>=4", ] +test = [ + "pytest", +] + +[project.optional-dependencies] fmmlib = [ "pyfmmlib>=2023.1", ] @@ -55,11 +70,6 @@ symengine = [ pyvkfft = [ "pyvkfft>=2024.1", ] -test = [ - "pylint", - "pytest", - "ruff", -] [project.urls] Documentation = "https://documen.tician.de/sumpy" From 83e20cc148f74a9eeee1875d0b08584d39501022 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 6 Apr 2025 19:03:41 +0300 Subject: [PATCH 158/335] fix: ruff 0.11.4 warning for tuple splatting (RUF005) --- sumpy/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 8251c8bb6..7ada6ad32 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -603,7 +603,7 @@ def nullspace(m, atol=0): vec = [0]*cols vec[free_var] = 1 for piv_row, piv_col in enumerate(pivot_cols): - for pos in pivot_cols[piv_row+1:] + [free_var]: + for pos in (*pivot_cols[piv_row+1:], free_var): if isinstance(mat[piv_row, pos], sym.Integer): vec[piv_col] -= int(mat[piv_row, pos]) else: From c9720f75b2e34cd68b71b40809c07f85e165f271 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Apr 2025 21:55:26 +0000 Subject: [PATCH 159/335] build(deps): bump astral-sh/setup-uv from 5 to 6 Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 5 to 6. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v6) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f0796010..af5338f3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v5 + - uses: astral-sh/setup-uv@v6 - name: "Main Script" run: | uv run --only-group lint ruff check From a08d7294d6510915d63c299d2b6179fac600162b Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 12 Jun 2025 15:41:39 -0500 Subject: [PATCH 160/335] Import is_integer from loopy.typing --- sumpy/codegen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 6e091d2f0..83dd54946 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -466,7 +466,7 @@ def map_power(self, expr, rec_self=None, *args): # {{{ convert big integers into floats -from loopy.tools import is_integer +from loopy.typing import is_integer class BigIntegerKiller(CSECachingIdentityMapper, CallExternalRecMapper): From c389879f4e441536ba730603486a93c0d5e2ca69 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:37:44 -0500 Subject: [PATCH 161/335] Fix license spec in pyproject --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 406c06310..c7d9ece26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "sumpy" version = "2024.0" description = "Fast summation in Python" readme = "README.rst" -license = { text = "MIT" } +license = "MIT" authors = [ { name = "Andreas Kloeckner", email = "inform@tiker.net" }, ] @@ -17,8 +17,6 @@ classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Other Audience", "Intended Audience :: Science/Research", - "License :: OSI Approved :: MIT License", - "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", From 1b07954738669b4b82ca22346f003789535d242c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:37:53 -0500 Subject: [PATCH 162/335] Add py.typed marker --- sumpy/py.typed | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sumpy/py.typed diff --git a/sumpy/py.typed b/sumpy/py.typed new file mode 100644 index 000000000..e69de29bb From 997d37b5f047ca943c15ab098ab88925db4a797b Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:38:54 -0500 Subject: [PATCH 163/335] Fix imports to please pyright --- sumpy/distributed.py | 6 ++--- sumpy/fmm.py | 20 ++++++++-------- sumpy/toys.py | 54 ++++++++++++++++++++++---------------------- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/sumpy/distributed.py b/sumpy/distributed.py index b8118b6d2..563de10a8 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -25,7 +25,7 @@ from boxtree.distributed.calculation import DistributedExpansionWrangler -import pyopencl as cl +import pyopencl.array as cl_array from sumpy.fmm import SumpyExpansionWrangler @@ -49,7 +49,7 @@ def distribute_source_weights(self, src_weight_vecs, src_idx_all_ranks): src_weight_vecs_host, src_idx_all_ranks) local_src_weight_vecs_device = [ - cl.array.to_device(src_weight.queue, local_src_weight) + cl_array.to_device(src_weight.queue, local_src_weight) for local_src_weight, src_weight in zip(local_src_weight_vecs_host, src_weight_vecs, strict=True)] @@ -68,7 +68,7 @@ def gather_potential_results(self, potentials, tgt_idx_all_ranks): if mpi_rank == 0: from pytools.obj_array import make_obj_array return make_obj_array([ - cl.array.to_device(potentials_dev.queue, gathered_potentials_host) + cl_array.to_device(potentials_dev.queue, gathered_potentials_host) for gathered_potentials_host, potentials_dev in zip(gathered_potentials_host_vec, potentials, strict=True)]) else: diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 0f6d87b2c..5a9730fa8 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -35,7 +35,7 @@ from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler import pyopencl as cl -import pyopencl.array +import pyopencl.array as cl_array from pytools import memoize_method from sumpy import ( @@ -243,7 +243,7 @@ def result(self): return TimingResult(wall_elapsed=None) if self.events: - pyopencl.wait_for_events(self.native_events) + cl.wait_for_events(self.native_events) result = 0 for event in self.events: @@ -410,7 +410,7 @@ def multipole_expansion_zeros(self, template_ary): (e.g. :class:`pyopencl.CommandQueue`) the returned array should reuse. """ - return cl.array.zeros( + return cl_array.zeros( template_ary.queue, self.multipole_expansions_level_starts()[-1], dtype=self.dtype) @@ -424,7 +424,7 @@ def local_expansion_zeros(self, template_ary): (e.g. :class:`pyopencl.CommandQueue`) the returned array should reuse. """ - return cl.array.zeros( + return cl_array.zeros( template_ary.queue, self.local_expansions_level_starts()[-1], dtype=self.dtype) @@ -437,7 +437,7 @@ def m2l_translation_classes_dependent_data_zeros(self, queue): level:level+2] translation_class_start, translation_class_stop = \ self.m2l_translation_class_level_start_box_nrs()[level:level+2] - exprs_level = cl.array.zeros(queue, expn_stop - expn_start, + exprs_level = cl_array.zeros(queue, expn_stop - expn_start, dtype=self.preprocessed_mpole_dtype) result.append(exprs_level.reshape( translation_class_stop - translation_class_start, -1)) @@ -484,7 +484,7 @@ def m2l_preproc_mpole_expansion_zeros(self, template_ary): expn_start, expn_stop = \ self.m2l_preproc_mpole_expansions_level_starts()[level:level+2] box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] - exprs_level = cl.array.zeros(template_ary.queue, expn_stop - expn_start, + exprs_level = cl_array.zeros(template_ary.queue, expn_stop - expn_start, dtype=self.preprocessed_mpole_dtype) result.append(exprs_level.reshape(box_stop - box_start, -1)) return result @@ -511,7 +511,7 @@ def output_zeros(self, template_ary): """ from pytools.obj_array import make_obj_array return make_obj_array([ - cl.array.zeros( + cl_array.zeros( template_ary.queue, self.tree.ntargets, dtype=self.dtype) @@ -537,14 +537,14 @@ def reorder(x): @memoize_method def max_nsources_in_one_box(self): with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int(pyopencl.array.max(self.tree.box_source_counts_nonchild, + return int(cl_array.max(self.tree.box_source_counts_nonchild, queue).get()) @property @memoize_method def max_ntargets_in_one_box(self): with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int(pyopencl.array.max(self.tree.box_target_counts_nonchild, + return int(cl_array.max(self.tree.box_target_counts_nonchild, queue).get()) # }}} @@ -719,7 +719,7 @@ def multipole_to_local_precompute(self): m2l_translation_classes_dependent_data_view.shape[0] if ntranslation_classes == 0: - result.append(pyopencl.array.empty_like( + result.append(cl_array.empty_like( m2l_translation_classes_dependent_data_view)) continue diff --git a/sumpy/toys.py b/sumpy/toys.py index 9e639583d..8595c4248 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -50,7 +50,7 @@ import loopy as lp # noqa: F401 import pyopencl as cl -import pyopencl.array +import pyopencl.array as cl_array logger = logging.getLogger(__name__) @@ -265,15 +265,15 @@ def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): toy_ctx = psource.toy_ctx queue = toy_ctx.queue - source_boxes = cl.array.to_device( + source_boxes = cl_array.to_device( queue, np.array([0], dtype=np.int32)) - box_source_starts = cl.array.to_device( + box_source_starts = cl_array.to_device( queue, np.array([0], dtype=np.int32)) - box_source_counts_nonchild = cl.array.to_device( + box_source_counts_nonchild = cl_array.to_device( queue, np.array([psource.points.shape[-1]], dtype=np.int32)) center = np.asarray(center) - centers = cl.array.to_device( + centers = cl_array.to_device( queue, np.array(center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) @@ -282,8 +282,8 @@ def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, centers=centers, - sources=cl.array.to_device(queue, psource.points), - strengths=(cl.array.to_device(queue, psource.weights),), + sources=cl_array.to_device(queue, psource.points), + strengths=(cl_array.to_device(queue, psource.weights),), rscale=rscale, nboxes=1, tgt_base_ibox=0, @@ -298,14 +298,14 @@ def _e2p(psource, targets, e2p): queue = toy_ctx.queue ntargets = targets.shape[-1] - boxes = cl.array.to_device( + boxes = cl_array.to_device( queue, np.array([0], dtype=np.int32)) - box_target_starts = cl.array.to_device( + box_target_starts = cl_array.to_device( queue, np.array([0], dtype=np.int32)) - box_target_counts_nonchild = cl.array.to_device( + box_target_counts_nonchild = cl_array.to_device( queue, np.array([ntargets], dtype=np.int32)) - centers = cl.array.to_device( + centers = cl_array.to_device( queue, np.array(psource.center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) @@ -313,7 +313,7 @@ def _e2p(psource, targets, e2p): from sumpy.tools import vector_to_device - coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) + coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) _evt, (pot,) = e2p( toy_ctx.queue, src_expansions=coeffs, @@ -334,14 +334,14 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, toy_ctx = psource.toy_ctx queue = toy_ctx.queue - target_boxes = cl.array.to_device( + target_boxes = cl_array.to_device( queue, np.array([1], dtype=np.int32)) - src_box_starts = cl.array.to_device( + src_box_starts = cl_array.to_device( queue, np.array([0, 1], dtype=np.int32)) - src_box_lists = cl.array.to_device( + src_box_lists = cl_array.to_device( queue, np.array([0], dtype=np.int32)) - centers = cl.array.to_device( + centers = cl_array.to_device( queue, np.array( [ @@ -354,7 +354,7 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, dtype=np.float64).T.copy() ) - coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) + coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) args = { "queue": toy_ctx.queue, "src_expansions": coeffs, @@ -383,7 +383,7 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, toy_ctx = psource.toy_ctx queue = toy_ctx.queue - coeffs = cl.array.to_device(queue, np.array([psource.coeffs])) + coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) m2l_use_translation_classes_dependent_data = \ toy_ctx.use_translation_classes_dependent_data() @@ -395,7 +395,7 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, expn_size = translation_classes_kwargs["m2l_expn_size"] # Preprocess the mpole expansion - preprocessed_src_expansions = cl.array.zeros(queue, (1, expn_size), + preprocessed_src_expansions = cl_array.zeros(queue, (1, expn_size), dtype=np.complex128) evt, _ = preprocess_kernel(queue, src_expansions=coeffs, @@ -415,12 +415,12 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, preprocessed_src_expansions, inverse=False, wait_for=[evt]) # Compute translation classes data - m2l_translation_classes_lists = cl.array.to_device(queue, + m2l_translation_classes_lists = cl_array.to_device(queue, np.array([0], dtype=np.int32)) dist = np.array(to_center - psource.center, dtype=np.float64) dim = toy_ctx.kernel.dim - m2l_translation_vectors = cl.array.to_device(queue, dist.reshape(dim, 1)) - m2l_translation_classes_dependent_data = cl.array.zeros(queue, + m2l_translation_vectors = cl_array.to_device(queue, dist.reshape(dim, 1)) + m2l_translation_classes_dependent_data = cl_array.zeros(queue, (1, expn_size), dtype=np.complex128) evt, _ = data_kernel( @@ -452,8 +452,8 @@ def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, ) # Postprocess the local expansion - local_before = cl.array.to_device(queue, np.array([ret.coeffs])) - to_coeffs = cl.array.zeros(queue, (1, len(data_kernel.tgt_expansion)), + local_before = cl_array.to_device(queue, np.array([ret.coeffs])) + to_coeffs = cl_array.zeros(queue, (1, len(data_kernel.tgt_expansion)), dtype=coeffs.dtype) if toy_ctx.use_fft: @@ -628,9 +628,9 @@ def eval(self, targets: np.ndarray) -> np.ndarray: queue = self.toy_ctx.queue _evt, (potential,) = self.toy_ctx.get_p2p()( queue, - cl.array.to_device(queue, targets), - cl.array.to_device(queue, self.points), - [cl.array.to_device(queue, self.weights)], + cl_array.to_device(queue, targets), + cl_array.to_device(queue, self.points), + [cl_array.to_device(queue, self.weights)], **self.toy_ctx.extra_source_and_kernel_kwargs) return potential.get(queue) From d2a42451a167b246fbe73ec685a952b8654f4779 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:39:13 -0500 Subject: [PATCH 164/335] Fix a few typing issues --- sumpy/codegen.py | 9 +++++++-- sumpy/expansion/m2l.py | 7 ++++--- sumpy/fmm.py | 14 +++++++++----- sumpy/tools.py | 5 ++++- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 83dd54946..29abf02ae 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -23,9 +23,10 @@ THE SOFTWARE. """ - import logging import re +from abc import ABC +from typing import ParamSpec import numpy as np from constantdict import constantdict @@ -43,6 +44,9 @@ logger = logging.getLogger(__name__) +P = ParamSpec("P") + + __doc__ = """ Conversion of :mod:`sympy` expressions to :mod:`loopy` @@ -237,7 +241,8 @@ def register_optimization_preambles(loopy_knl, device): # {{{ custom mapper base classes -class CSECachingIdentityMapper(IdentityMapper, CSECachingMapperMixin): +class CSECachingIdentityMapper( + IdentityMapper[P], CSECachingMapperMixin[Expression, P], ABC): pass diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 2779fefd1..034e798e3 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -25,12 +25,13 @@ import logging from abc import ABC, abstractmethod -from typing import Any, ClassVar +from typing import Any, ClassVar, cast import numpy as np import loopy as lp import pymbolic +import pymbolic.primitives as p import sumpy.symbolic as sym from sumpy.tools import add_to_sac, matvec_toeplitz_upper_triangular @@ -1075,8 +1076,8 @@ def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, for i in range(len(insns)): insn = insns[i] if isinstance(insn, lp.Assignment) and \ - insn.assignee.name.startswith(vec_name): - idx = int(insn.assignee.name[len(vec_name):]) + cast(p.Variable, insn.assignee).name.startswith(vec_name): + idx = int(cast(p.Variable, insn.assignee).name[len(vec_name):]) insns[i] = lp.Assignment( assignee=data[idx], expression=insn.expression, diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 5a9730fa8..386c1d9af 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -30,7 +30,7 @@ """ -from typing import Protocol +from typing import Protocol, cast from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler @@ -537,15 +537,19 @@ def reorder(x): @memoize_method def max_nsources_in_one_box(self): with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int(cl_array.max(self.tree.box_source_counts_nonchild, - queue).get()) + return int( + cast("cl_array.Array", + cl_array.max(self.tree.box_source_counts_nonchild, queue)) + .get()) @property @memoize_method def max_ntargets_in_one_box(self): with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int(cl_array.max(self.tree.box_target_counts_nonchild, - queue).get()) + return int( + cast("cl_array.Array", + cl_array.max(self.tree.box_target_counts_nonchild, queue)) + .get()) # }}} diff --git a/sumpy/tools.py b/sumpy/tools.py index 7ada6ad32..4035deb5f 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1,5 +1,7 @@ from __future__ import annotations +from pyopencl import MemoryObjectHolder + __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner @@ -972,7 +974,7 @@ def run_opencl_fft( input_vec: Any, inverse: bool = False, wait_for: list[pyopencl.Event] | None = None - ) -> tuple[pyopencl.Event, Any]: + ) -> tuple[pyopencl.Event | MarkerBasedProfilingEvent, Any]: """Runs an FFT on input_vec and returns a :class:`MarkerBasedProfilingEvent` that indicate the end and start of the operations carried out and the output vector. @@ -1015,6 +1017,7 @@ def run_opencl_fft( else: meth = _vkfft_opencl.fft + assert isinstance(output_vec.data, MemoryObjectHolder) meth(app.app, int(input_vec.data.int_ptr), int(output_vec.data.int_ptr), int(queue.int_ptr)) From 65506aa9f419fdccd79d81711161950c36fc0e74 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 18 Jun 2025 10:52:05 -0500 Subject: [PATCH 165/335] Use sympy for typechecking --- sumpy/symbolic.py | 16 ++++++++-------- test/test_cse.py | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index d040971d3..17aa4aa61 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -91,20 +91,20 @@ def _find_symbolic_backend(): # }}} -if USE_SYMENGINE: - import symengine as sym - - from pymbolic.interop.symengine import ( - PymbolicToSymEngineMapper as PymbolicToSympyMapperBase, - SymEngineToPymbolicMapper as SympyToPymbolicMapperBase, - ) -else: +if TYPE_CHECKING or not USE_SYMENGINE: import sympy as sym from pymbolic.interop.sympy import ( # type: ignore[assignment] PymbolicToSympyMapper as PymbolicToSympyMapperBase, SympyToPymbolicMapper as SympyToPymbolicMapperBase, ) +else: + import symengine as sym + + from pymbolic.interop.symengine import ( + PymbolicToSymEngineMapper as PymbolicToSympyMapperBase, + SymEngineToPymbolicMapper as SympyToPymbolicMapperBase, + ) # Symbolic API common to SymEngine and sympy. # Before adding a function here, make sure it's present in both modules. diff --git a/test/test_cse.py b/test/test_cse.py index 3a5057a20..6c0710c2f 100644 --- a/test/test_cse.py +++ b/test/test_cse.py @@ -68,6 +68,7 @@ # }}} import sys +from typing import TYPE_CHECKING import pytest @@ -75,7 +76,7 @@ from sumpy.cse import cse, postprocess_for_cse, preprocess_for_cse -if not sym.USE_SYMENGINE: +if TYPE_CHECKING or not sym.USE_SYMENGINE: from sympy.functions.special.hyper import meijerg from sympy.simplify import cse_opts from sympy.simplify.cse_opts import sub_post, sub_pre From 92deeb7ee881b549b03d68dbc61a69e405a792d4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:40:13 -0500 Subject: [PATCH 166/335] Drop mypy for basedpyright in CI --- .basedpyright/baseline.json | 58106 ++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 10 +- .gitlab-ci.yml | 12 - pyproject.toml | 90 +- 4 files changed, 58180 insertions(+), 38 deletions(-) create mode 100644 .basedpyright/baseline.json diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json new file mode 100644 index 000000000..7858e4768 --- /dev/null +++ b/.basedpyright/baseline.json @@ -0,0 +1,58106 @@ +{ + "files": { + "./examples/curve-pot.py": [ + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 14, + "lineCount": 1 + } + } + ], + "./examples/expansion-toys.py": [ + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnusedVariable", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + } + ], + "./examples/sym-exp-complexity.py": [ + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + } + ], + "./sumpy/__init__.py": [ + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 0, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 0, + "endColumn": 15, + "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": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUninitializedInstanceVariable", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUninitializedInstanceVariable", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 69, + "lineCount": 1 + } + } + ], + "./sumpy/array_context.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 5, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "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": 21, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnusedFunction", + "range": { + "startColumn": 4, + "endColumn": 8, + "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": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + } + ], + "./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 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + } + ], + "./sumpy/codegen.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 19, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 19, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 31, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 29, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "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": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 31, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "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": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 78, + "lineCount": 3 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 74, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 60, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 60, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 35, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 60, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 74, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 35, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 58, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 74, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 20, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "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": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 37, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 44, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 23, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 37, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 44, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 66, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 23, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 32, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 30, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportCallInDefaultInitializer", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 21, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 27, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 20, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 25, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 17, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 44, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 38, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportCallInDefaultInitializer", + "range": { + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportCallInDefaultInitializer", + "range": { + "startColumn": 52, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnusedVariable", + "range": { + "startColumn": 51, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 61, + "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", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "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": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 42, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 30, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 72, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 19, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 19, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 15, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 42, + "lineCount": 1 + } + } + ], + "./sumpy/derivative_taker.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 52, + "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": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 28, + "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": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 23, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 24, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 20, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 20, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 48, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 51, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 69, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + } + ], + "./sumpy/distributed.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 5, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnsafeMultipleInheritance", + "range": { + "startColumn": 6, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 51, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 51, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 58, + "lineCount": 1 + } + } + ], + "./sumpy/e2e.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "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": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 66, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 17 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 64, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 68, + "lineCount": 5 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 29 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 49, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "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", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 14 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 65, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 65, + "lineCount": 4 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 59, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 11 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 65, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 73, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 75, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 12 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 65, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 17, + "lineCount": 5 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 17 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 65, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 67, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 44, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 16 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 65, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 67, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 44, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + } + ], + "./sumpy/e2p.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "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": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 73, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 16 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 57, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 17 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 57, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 54, + "lineCount": 4 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 62, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/__init__.py": [ + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 48, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 48, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 51, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 54, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 61, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 64, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 76, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 63, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 44, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 20, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 25, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 60, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/diff_op.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 7, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 7, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 17, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 18, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 30, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 34, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 52, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 11, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/level_to_order.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 26, + "lineCount": 6 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 5 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/local.py": [ + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 55, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 60, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 6, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 52, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 72, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 72, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 6 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 20, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 20, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 20, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 26, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 20, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 40, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnsafeMultipleInheritance", + "range": { + "startColumn": 6, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 60, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnsafeMultipleInheritance", + "range": { + "startColumn": 6, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 37, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 59, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 72, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 40, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 40, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 56, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 64, + "endColumn": 82, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/loopy.py": [ + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 20, + "lineCount": 14 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 20, + "lineCount": 14 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 47, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/m2l.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 52, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 73, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 73, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 27, + "endColumn": 18, + "lineCount": 4 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 72, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 58, + "lineCount": 2 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 14, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 68, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 58, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 65, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 83, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 63, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 68, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 58, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 60, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 60, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 37, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/multipole.py": [ + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 6, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 52, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 64, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 72, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 72, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 68, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 40, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 48, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 63, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 56, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 59, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 75, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 61, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnsafeMultipleInheritance", + "range": { + "startColumn": 6, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnsafeMultipleInheritance", + "range": { + "startColumn": 6, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 59, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 68, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 56, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 64, + "endColumn": 82, + "lineCount": 1 + } + } + ], + "./sumpy/fmm.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 5, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 27, + "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": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 55, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 69, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 69, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 20, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 17, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 64, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 17, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 53, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 25, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 30, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 50, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 50, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 24, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 30, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 30, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 16, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 34, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 41, + "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": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 60, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 23, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnusedVariable", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 30, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 62, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 80, + "lineCount": 2 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 25, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 42, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 29, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 65, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 65, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 51, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 51, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 2 + } + } + ], + "./sumpy/kernel.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUninitializedInstanceVariable", + "range": { + "startColumn": 4, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportInvalidAbstractMethod", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportInvalidAbstractMethod", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportInvalidAbstractMethod", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 13, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 76, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 71, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 79, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 81, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 81, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 39, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportInconsistentConstructor", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 61, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 58, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "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": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 21, + "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": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 63, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 38, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 38, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 21, + "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": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 19, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 38, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 36, + "lineCount": 3 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 31, + "lineCount": 1 + } + } + ], + "./sumpy/p2e.py": [ + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 6, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "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": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 46, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "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": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 68, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 38, + "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": 67, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 77, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 16 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "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": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "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", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 53, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "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": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "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", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + } + ], + "./sumpy/p2p.py": [ + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 6, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 27, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 28, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "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": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "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": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "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", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "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": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "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": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "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": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "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, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "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": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 53, + "lineCount": 8 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 51, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 51, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 53, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 65, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 66, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "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": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 27, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + } + ], + "./sumpy/point_calculus.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 17, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 57, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 56, + "lineCount": 4 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 60, + "lineCount": 4 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 24, + "endColumn": 38, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + } + ], + "./sumpy/qbx.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportImplicitAbstractClass", + "range": { + "startColumn": 6, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 65, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 62, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 28, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 63, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 63, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 70, + "lineCount": 3 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnusedVariable", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "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": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 68, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 68, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 42, + "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": 67, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 49, + "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": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 76, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 76, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "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": 67, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 66, + "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": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "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": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 67, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 46, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 55, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 42, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnusedClass", + "range": { + "startColumn": 6, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + } + ], + "./sumpy/symbolic.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 7, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnusedImport", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 7, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 5, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnusedFunction", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 7, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 24, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 58, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 7, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 44, + "lineCount": 1 + } + } + ], + "./sumpy/tools.py": [ + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 11, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "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": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 22, + "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": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 7, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 51, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 51, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "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", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeArgument", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 27, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 64, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 51, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 51, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 67, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 52, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 14, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnusedImport", + "range": { + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 14, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 11, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 13, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 33, + "lineCount": 1 + } + } + ], + "./sumpy/toys.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 16, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 38, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 74, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 74, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 59, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 59, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 9 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 36, + "lineCount": 9 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 38, + "lineCount": 9 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 62, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 71, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 60, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 73, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 59, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 47, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 44, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 44, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 20, + "lineCount": 3 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 32, + "lineCount": 3 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 63, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 63, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 10, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 10, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 58, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 58, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 65, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 11, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 13, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 13, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 17, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 17, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 16, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportPrivateImportUsage", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 53, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 42, + "lineCount": 1 + } + } + ], + "./sumpy/version.py": [ + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + } + ], + "./sumpy/visualization.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 40, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 15, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 37, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingImports", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 63, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingImports", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + } + ], + "./test/test_cse.py": [ + { + "code": "reportIndexIssue", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 11, + "endColumn": 34, + "lineCount": 1 + } + } + ], + "./test/test_distributed.py": [ + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 32, + "endColumn": 53, + "lineCount": 1 + } + } + ], + "./test/test_fmm.py": [ + { + "code": "reportRedeclaration", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 70, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 12, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 11, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 23, + "endColumn": 54, + "lineCount": 1 + } + } + ], + "./test/test_kernels.py": [ + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 16, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + } + ], + "./test/test_misc.py": [ + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + } + ] + } +} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af5338f3f..e7cb0abef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v6 + - uses: astral-sh/setup-uv@v5 - name: "Main Script" run: | uv run --only-group lint ruff check @@ -25,8 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: crate-ci/typos@master - mypy: - name: Mypy + basedpyright: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -39,8 +38,9 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 build_py_project_in_conda_env - python -m pip install mypy - mypy $(get_proj_name) + cipip install pytest pyfmmlib scipy matplotlib pyvisfile + cipip install basedpyright + basedpyright pylint: name: Pylint diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5a03e0a93..4fb558416 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -140,18 +140,6 @@ Pylint: except: - tags -Mypy: - script: | - curl -L -O https://tiker.net/ci-support-v0 - . ./ci-support-v0 - build_py_project_in_venv - python -m pip install mypy - mypy $(get_proj_name) - tags: - - python3 - except: - - tags - Downstream: parallel: matrix: diff --git a/pyproject.toml b/pyproject.toml index c7d9ece26..d53ddc851 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -142,28 +142,76 @@ extend-exclude = [ "notes/*/*.eps", ] -[tool.mypy] -python_version = "3.10" -warn_unused_ignores = true - -[[tool.mypy.overrides]] -module = [ - "boxtree.*", - "loopy.*", - "matplotlib.*", - "mayavi.*", - "pyfmmlib.*", - "pymbolic.*", - "pyopencl.*", - "pyvisfile.*", - "pyvkfft.*", - "scipy.*", - "symengine.*", - "sympy.*", -] -ignore_missing_imports = true - [tool.pytest.ini_options] markers = [ "mpi: tests distributed FMM", ] + +[tool.basedpyright] +reportImplicitStringConcatenation = "none" +reportUnnecessaryIsInstance = "none" +reportUnusedCallResult = "none" +reportExplicitAny = "none" +reportPrivateUsage = "none" + +# Multiple reasons for this: +# - make_subst_func is reported as having an incomplete type (but only in CI?) +# - numpy scalar types are reported as incomplete (because of "any" precision) +reportUnknownVariableType = "none" + +reportUnreachable = "hint" +reportUnnecessaryComparison = "hint" +reportPossiblyUnboundVariable = "hint" + +# This reports even cycles that are qualified by 'if TYPE_CHECKING'. Not what +# we care about at this moment. +# https://github.com/microsoft/pyright/issues/746 +reportImportCycles = "none" + +pythonVersion = "3.10" +pythonPlatform = "All" + +exclude = [ + "doc", + "build", + "benchmarks", + "contrib", + ".conda-root", +] + +[[tool.basedpyright.executionEnvironments]] +root = "test" +reportUnknownArgumentType = "none" +reportUnknownVariableType = "none" +reportUnknownParameterType = "hint" +reportMissingParameterType = "none" +reportAttributeAccessIssue = "hint" +reportMissingTypeStubs = "hint" +reportUnknownLambdaType = "hint" +reportUnusedImport = "hint" +reportUnusedParameter = "none" +reportUnannotatedClassAttribute = "hint" +reportAny = "hint" +reportUnknownMemberType = "hint" +reportMissingImports = "none" +reportArgumentType = "hint" +reportOperatorIssue = "hint" + +[[tool.basedpyright.executionEnvironments]] +root = "examples" +reportUnknownArgumentType = "none" +reportUnknownVariableType = "none" +reportUnknownParameterType = "hint" +reportMissingParameterType = "none" +reportAttributeAccessIssue = "hint" +reportMissingTypeStubs = "hint" +reportUnknownLambdaType = "hint" +reportUnusedImport = "hint" +reportUnusedParameter = "none" +reportUnannotatedClassAttribute = "hint" +reportAny = "hint" +reportUnknownMemberType = "hint" +reportMissingImports = "none" +reportArgumentType = "hint" +reportOperatorIssue = "hint" + From ff5fb719ecafe9d2aa0f16f0d46c898958ac89c1 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 14:49:16 -0500 Subject: [PATCH 167/335] Limit Github PR concurrency --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7cb0abef..c4a3ca783 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,10 @@ on: schedule: - cron: '17 3 * * 0' +concurrency: + group: ${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + jobs: ruff: name: Ruff From 26801ccded2339e00df47abf4b1afeab71c8e2fa Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 8 Jun 2025 15:07:28 -0500 Subject: [PATCH 168/335] Ruff: enable TC --- doc/codegen.rst | 24 ++++++++++++++++++++++++ pyproject.toml | 1 + sumpy/__init__.py | 9 +++++++-- sumpy/expansion/__init__.py | 13 +++++++++---- sumpy/expansion/diff_op.py | 6 +++++- sumpy/expansion/loopy.py | 11 ++++++++--- sumpy/expansion/m2l.py | 4 ++-- sumpy/kernel.py | 3 ++- sumpy/tools.py | 2 +- sumpy/toys.py | 6 +++--- test/test_misc.py | 7 +++++-- 11 files changed, 67 insertions(+), 19 deletions(-) diff --git a/doc/codegen.rst b/doc/codegen.rst index 2d5d6f4dc..cf872592d 100644 --- a/doc/codegen.rst +++ b/doc/codegen.rst @@ -4,3 +4,27 @@ Code Generation .. automodule:: sumpy.codegen .. automodule:: sumpy.assignment_collection .. automodule:: sumpy.cse + +References +---------- + +This is only here because Sphinx (the documentation tool) fails to resolve these +references properly. + +.. currentmodule:: lp + +.. class:: TranslationUnit + + See :class:`loopy.TranslationUnit`. + +.. currentmodule:: sp + +.. class:: Expr + + See :class:`sympy.core.expr.Expr`. + +.. currentmodule:: np + +.. class:: ndarray + + See :class:`numpy.ndarray`. diff --git a/pyproject.toml b/pyproject.toml index d53ddc851..7a1db248f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,6 +91,7 @@ extend-select = [ "SIM", # flake8-simplify "UP", # pyupgrade "W", # pycodestyle + "TC", ] extend-ignore = [ "C90", # McCabe complexity diff --git a/sumpy/__init__.py b/sumpy/__init__.py index a550d68ea..5a25a161e 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -24,9 +24,8 @@ """ import os -from collections.abc import Hashable +from typing import TYPE_CHECKING -import loopy as lp from pytools.persistent_dict import WriteOncePersistentDict from sumpy.e2e import ( @@ -44,6 +43,12 @@ from sumpy.version import VERSION_TEXT +if TYPE_CHECKING: + from collections.abc import Hashable + + import loopy as lp + + __all__ = [ "P2P", "E2EFromCSR", diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 401f3be80..8c63e9156 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -25,18 +25,23 @@ import logging from abc import ABC, abstractmethod -from collections.abc import Hashable, Sequence -from typing import Any, ClassVar +from typing import TYPE_CHECKING, Any, ClassVar -import loopy as lp import pymbolic.primitives as prim from pytools import memoize_method import sumpy.symbolic as sym -from sumpy.kernel import Kernel from sumpy.tools import add_mi +if TYPE_CHECKING: + from collections.abc import Hashable, Sequence + + import loopy as lp + + from sumpy.kernel import Kernel + + logger = logging.getLogger(__name__) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 7ee421967..e3d9ad074 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -26,9 +26,9 @@ """ import logging -from collections.abc import Mapping, Sequence from dataclasses import dataclass from itertools import accumulate +from typing import TYPE_CHECKING import numpy as np import sympy as sp @@ -41,6 +41,10 @@ from sumpy.tools import add_mi +if TYPE_CHECKING: + from collections.abc import Mapping, Sequence + + logger = logging.getLogger(__name__) __doc__ = """ diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 7798c7099..33e502095 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -24,7 +24,7 @@ """ import logging -from collections.abc import Sequence +from typing import TYPE_CHECKING import numpy as np @@ -33,11 +33,16 @@ import sumpy.symbolic as sym from sumpy.assignment_collection import SymbolicAssignmentCollection -from sumpy.expansion import ExpansionBase -from sumpy.kernel import Kernel from sumpy.tools import gather_loopy_arguments, gather_loopy_source_arguments +if TYPE_CHECKING: + from collections.abc import Sequence + + from sumpy.expansion import ExpansionBase + from sumpy.kernel import Kernel + + logger = logging.getLogger(__name__) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 034e798e3..a64c0937e 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -1076,8 +1076,8 @@ def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, for i in range(len(insns)): insn = insns[i] if isinstance(insn, lp.Assignment) and \ - cast(p.Variable, insn.assignee).name.startswith(vec_name): - idx = int(cast(p.Variable, insn.assignee).name[len(vec_name):]) + cast("p.Variable", insn.assignee).name.startswith(vec_name): + idx = int(cast("p.Variable", insn.assignee).name[len(vec_name):]) insns[i] = lp.Assignment( assignee=data[idx], expression=insn.expression, diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 81556bf92..c4544ef5f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -28,7 +28,6 @@ from typing import TYPE_CHECKING, ClassVar import numpy as np -import sympy as sp import loopy as lp import pymbolic.primitives as prim @@ -42,6 +41,8 @@ if TYPE_CHECKING: + import sympy as sp + from sumpy.expansion.diff_op import LinearPDESystemOperator diff --git a/sumpy/tools.py b/sumpy/tools.py index 4035deb5f..2d097a8e1 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -40,7 +40,6 @@ import numpy as np import loopy as lp -import pyopencl as cl from pymbolic.mapper import WalkMapper from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -52,6 +51,7 @@ import numpy import pyopencl + import pyopencl as cl from sumpy.kernel import Kernel diff --git a/sumpy/toys.py b/sumpy/toys.py index 8595c4248..dd20c17ce 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -1,7 +1,5 @@ from __future__ import annotations -from sumpy.expansion.m2l import M2LTranslationClassFactoryBase - __copyright__ = """ Copyright (C) 2017 Andreas Kloeckner @@ -28,7 +26,6 @@ THE SOFTWARE. """ -from collections.abc import Sequence from functools import partial from numbers import Number from typing import TYPE_CHECKING @@ -39,8 +36,11 @@ if TYPE_CHECKING: + from collections.abc import Sequence + import pyopencl + from sumpy.expansion.m2l import M2LTranslationClassFactoryBase from sumpy.kernel import Kernel from sumpy.visualization import FieldPlotter diff --git a/test/test_misc.py b/test/test_misc.py index d745af73e..df4d13311 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -25,9 +25,8 @@ import logging import sys -from collections.abc import Callable from dataclasses import dataclass -from typing import Any +from typing import TYPE_CHECKING, Any import numpy as np import numpy.linalg as la @@ -65,6 +64,10 @@ ) +if TYPE_CHECKING: + from collections.abc import Callable + + logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ From 5604c67e1fb901a642439606955f4e9780aa0ac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 21:50:23 +0000 Subject: [PATCH 169/335] build(deps): bump astral-sh/setup-uv from 5 to 6 Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 5 to 6. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v6) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4a3ca783..ba38b8344 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v5 + - uses: astral-sh/setup-uv@v6 - name: "Main Script" run: | uv run --only-group lint ruff check From c2258234a8b1fd5adaa0399f2a6d42b594cdf4b0 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 10 Jul 2025 15:50:01 -0500 Subject: [PATCH 170/335] Some typing imporevements --- sumpy/expansion/__init__.py | 28 ++++++++++++++++++-- sumpy/expansion/loopy.py | 10 ++++--- sumpy/expansion/multipole.py | 1 + sumpy/fmm.py | 51 +++++++++++++++++++++++++++++++----- sumpy/kernel.py | 2 +- sumpy/p2p.py | 8 +++--- sumpy/qbx.py | 13 +++++---- sumpy/tools.py | 51 ++++++++++++++++++++++++------------ 8 files changed, 125 insertions(+), 39 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 8c63e9156..fe96602d0 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -39,6 +39,8 @@ import loopy as lp + from sumpy.expansion.local import LocalExpansionBase + from sumpy.expansion.multipole import MultipoleExpansionBase from sumpy.kernel import Kernel @@ -915,13 +917,17 @@ class ExpansionFactoryBase(ABC): """ @abstractmethod - def get_local_expansion_class(self, base_kernel): + def get_local_expansion_class(self, + base_kernel: Kernel + ) -> type[LocalExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @abstractmethod - def get_multipole_expansion_class(self, base_kernel): + def get_multipole_expansion_class(self, + base_kernel: Kernel + ) -> type[MultipoleExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -983,4 +989,22 @@ def get_multipole_expansion_class(self, base_kernel): # }}} +__all__ = [ + "BiharmonicConformingVolumeTaylorExpansion", + "CSEMatVecOperator", + "DefaultExpansionFactory", + "ExpansionBase", + "ExpansionFactoryBase", + "ExpansionTermsWrangler", + "FullExpansionTermsWrangler", + "HelmholtzConformingVolumeTaylorExpansion", + "LaplaceConformingVolumeTaylorExpansion", + "LinearPDEBasedExpansionTermsWrangler", + "LinearPDEConformingVolumeTaylorExpansion", + "VolumeTaylorExpansion", + "VolumeTaylorExpansionFactory", + "VolumeTaylorExpansionMixin", +] + + # vim: fdm=marker diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 33e502095..79b28beee 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -24,7 +24,7 @@ """ import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast import numpy as np @@ -109,7 +109,9 @@ def make_e2p_loopy_kernel( idx = int(insn.assignee.name[len(result.name):]) insns[i] = lp.Assignment( assignee=result[idx], - expression=result[idx] + insn.expression, + expression=( + result[idx] + + cast("pymbolic.ArithmeticExpression", insn.expression)), id=f"result_{idx}", happens_after=insn.happens_after, ) @@ -207,7 +209,9 @@ def make_p2e_loopy_kernel( idx = int(insn.assignee.name[len(coeffs.name):]) insns[i] = lp.Assignment( assignee=coeffs[idx], - expression=coeffs[idx] + insn.expression, + expression=( + coeffs[idx] + + cast("pymbolic.ArithmeticExpression", insn.expression)), id=f"coeff_{idx}", happens_after=insn.happens_after, ) diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index ef440cf01..e230a2afa 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -42,6 +42,7 @@ __doc__ = """ +.. autoclass:: MultipoleExpansionBase .. autoclass:: VolumeTaylorMultipoleExpansion .. autoclass:: H2DMultipoleExpansion .. autoclass:: Y2DMultipoleExpansion diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 386c1d9af..d56bfbc12 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -27,10 +27,21 @@ .. autoclass:: SumpyTreeIndependentDataForWrangler .. autoclass:: SumpyExpansionWrangler -""" +.. autodata:: MultipoleExpansionFactory + :noindex: +.. class:: MultipoleExpansionFactory + + See above. +.. autodata:: LocalExpansionFactory + :noindex: +.. class:: LocalExpansionFactory + + See above. +""" -from typing import Protocol, cast +from collections.abc import Callable, Sequence +from typing import TYPE_CHECKING, Protocol, TypeAlias, cast from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler @@ -52,6 +63,8 @@ P2EFromSingleBox, P2PFromCSR, ) +from sumpy.expansion.local import LocalExpansionBase +from sumpy.expansion.multipole import MultipoleExpansionBase from sumpy.tools import ( AggregateProfilingEvent, get_native_event, @@ -61,6 +74,17 @@ ) +if TYPE_CHECKING: + from sumpy.kernel import Kernel + + +# parameters here are order, use_rscale +MultipoleExpansionFactory: TypeAlias = Callable[ + [int, bool | None], MultipoleExpansionBase] +LocalExpansionFactory: TypeAlias = Callable[ + [int, bool | None], LocalExpansionBase] + + # {{{ tree-independent data for wrangler class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): @@ -75,11 +99,24 @@ class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): profiling enabled. """ - def __init__(self, cl_context, - multipole_expansion_factory, - local_expansion_factory, - target_kernels, exclude_self=False, use_rscale=None, - strength_usage=None, source_kernels=None): + cl_context: cl.Context + multipole_expansion_factory: MultipoleExpansionFactory + local_expansion_factory: LocalExpansionFactory + source_kernels: Sequence[Kernel] | None + target_kernels: Sequence[Kernel] + exclude_self: bool + use_rscale: bool | None + strength_usage: Sequence[int] | None + + def __init__(self, + cl_context: cl.Context, + multipole_expansion_factory: MultipoleExpansionFactory, + local_expansion_factory: LocalExpansionFactory, + target_kernels: Sequence[Kernel], + exclude_self: bool = False, + use_rscale: bool | None = None, + strength_usage: Sequence[int] | None = None, + source_kernels: Sequence[Kernel] | None = None): """ :arg multipole_expansion_factory: a callable of a single argument (order) that returns a multipole expansion. diff --git a/sumpy/kernel.py b/sumpy/kernel.py index c4544ef5f..f654eb2a7 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -213,7 +213,7 @@ def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: """ return new_base_kernel - def prepare_loopy_kernel(self, loopy_knl): + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: """Apply some changes (such as registering function manglers) to the kernel. Return the new kernel. """ diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 2e5872ebe..d8a259ea4 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -252,7 +252,7 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - for knl in self.target_kernels + self.source_kernels: + for knl in [*self.target_kernels, *self.source_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl @@ -314,7 +314,7 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - for knl in self.target_kernels + self.source_kernels: + for knl in [*self.target_kernels, *self.source_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl @@ -395,7 +395,7 @@ def get_kernel(self): loopy_knl = lp.add_dtypes( loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) - for knl in self.target_kernels + self.source_kernels: + for knl in [*self.target_kernels, *self.source_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl @@ -657,7 +657,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, loopy_knl = lp.tag_array_axes(loopy_knl, "targets", "sep,C") loopy_knl = lp.tag_array_axes(loopy_knl, "sources", "sep,C") - for knl in self.target_kernels + self.source_kernels: + for knl in [*self.target_kernels, *self.source_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl diff --git a/sumpy/qbx.py b/sumpy/qbx.py index ea3cded78..3e44c0c07 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -30,6 +30,7 @@ import logging import numpy as np +from typing_extensions import override import loopy as lp from loopy.version import MOST_RECENT_LANGUAGE_VERSION @@ -145,8 +146,8 @@ def get_loopy_insns_and_result_names(self): sac.run_global_cse() - pymbolic_expr_maps = [knl.get_code_transformer() for knl in ( - self.target_kernels + self.source_kernels)] + pymbolic_expr_maps = [knl.get_code_transformer() for knl in [ + *self.target_kernels, *self.source_kernels]] from sumpy.codegen import to_loopy_insns loopy_insns = to_loopy_insns( @@ -235,6 +236,7 @@ class LayerPotential(LayerPotentialBase): """ @property + @override def default_name(self): return "qbx_apply" @@ -283,7 +285,7 @@ def get_kernel(self): lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - for knl in self.target_kernels + self.source_kernels: + for knl in [*self.target_kernels, *self.source_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl @@ -360,7 +362,7 @@ def get_kernel(self): lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - for expn in self.source_kernels + self.target_kernels: + for expn in [*self.source_kernels, *self.target_kernels]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) return loopy_knl @@ -443,11 +445,12 @@ def get_kernel(self): loopy_knl = lp.add_dtypes( loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) - for knl in self.source_kernels + self.target_kernels: + for knl in [*self.source_kernels, *self.target_kernels]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) return loopy_knl + @override def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array, centers_is_obj_array): loopy_knl = self.get_kernel() diff --git a/sumpy/tools.py b/sumpy/tools.py index 2d097a8e1..c28214bd2 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -49,6 +49,7 @@ if TYPE_CHECKING: import numpy + from numpy.typing import DTypeLike import pyopencl import pyopencl as cl @@ -113,6 +114,13 @@ .. autoclass:: ProfileGetter .. autoclass:: AggregateProfilingEvent .. autoclass:: MarkerBasedProfilingEvent + +References +---------- + +.. class:: DTypeLike + + See :data:`numpy.typing.DTypeLike`. """ @@ -291,11 +299,11 @@ class KernelComputation(ABC): .. automethod:: get_kernel """ - def __init__(self, ctx: Any, - target_kernels: list[Kernel], - source_kernels: list[Kernel], - strength_usage: list[int] | None = None, - value_dtypes: list[numpy.dtype[Any]] | None = None, + def __init__(self, ctx: cl.Context, + target_kernels: Sequence[Kernel], + source_kernels: Sequence[Kernel], + strength_usage: Sequence[int] | None = None, + value_dtypes: Sequence[numpy.dtype[Any]] | numpy.dtype[Any] | None = None, name: str | None = None, device: Any | None = None) -> None: """ @@ -321,7 +329,7 @@ def __init__(self, ctx: Any, else: value_dtypes.append(np.dtype(np.float64)) - if not isinstance(value_dtypes, list | tuple): + if not isinstance(value_dtypes, Sequence): value_dtypes = [np.dtype(value_dtypes)] * len(target_kernels) value_dtypes = [np.dtype(vd) for vd in value_dtypes] @@ -341,14 +349,14 @@ def __init__(self, ctx: Any, if device is None: device = ctx.devices[0] - self.context = ctx - self.device = device + self.context: cl.Context = ctx + self.device: cl.Device = device - self.source_kernels = tuple(source_kernels) - self.target_kernels = tuple(target_kernels) - self.value_dtypes = value_dtypes - self.strength_usage = strength_usage - self.strength_count = strength_count + self.source_kernels: Sequence[Kernel] = tuple(source_kernels) + self.target_kernels: Sequence[Kernel] = tuple(target_kernels) + self.value_dtypes: Sequence[np.dtype[Any]] = value_dtypes + self.strength_usage: Sequence[int] = strength_usage + self.strength_count: int = strength_count self.name = name or self.default_name @@ -507,7 +515,9 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: return knl.executor(self.context) @staticmethod - def _allow_redundant_execution_of_knl_scaling(knl): + def _allow_redundant_execution_of_knl_scaling( + knl: lp.TranslationUnit + ) -> lp.TranslationUnit: from loopy.match import ObjTagged return lp.add_inames_for_unused_hw_axes( knl, within=ObjTagged(ScalingAssignmentTag())) @@ -734,13 +744,20 @@ def wait(self): return self.native_event.wait() -def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, - name=None): +def loopy_fft( + shape: tuple[int, ...], + inverse: bool, + complex_dtype: DTypeLike, + index_dtype: DTypeLike | None = None, + name: str | None = None + ): from math import pi from pymbolic import var from pymbolic.algorithm import find_factors + complex_dtype = np.dtype(complex_dtype) + sign = 1 if not inverse else -1 n = shape[-1] @@ -766,7 +783,7 @@ def loopy_fft(shape, inverse, complex_dtype, index_dtype=None, i2 = var("i2") i3 = var("i3") - fixed_parameters = {"const": complex_dtype(sign*(-2j)*pi/n), "n": n} + fixed_parameters = {"const": complex_dtype.type(sign*(-2j)*pi/n), "n": int(n)} index = (*broadcast_dims, i2) insns = [ From 975c5d1c9c1bcf291b1e6f6faeb7e829071ab0ba Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 10 Jul 2025 15:50:07 -0500 Subject: [PATCH 171/335] Update baseline --- .basedpyright/baseline.json | 1822 +++-------------------------------- 1 file changed, 155 insertions(+), 1667 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 7858e4768..2af736b3c 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -329,14 +329,6 @@ } ], "./sumpy/array_context.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -7675,14 +7667,6 @@ } ], "./sumpy/distributed.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportUnsafeMultipleInheritance", "range": { @@ -7995,6 +7979,14 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -8028,7 +8020,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 49, "endColumn": 65, @@ -8036,7 +8028,15 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { "startColumn": 16, "endColumn": 42, @@ -8091,14 +8091,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8211,14 +8203,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8235,22 +8219,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -8259,14 +8227,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -8291,14 +8251,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -8324,18 +8276,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 69, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, @@ -16217,46 +16161,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 44, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -16265,14 +16169,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -16281,14 +16177,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -16297,14 +16185,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -16313,14 +16193,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -16329,14 +16201,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -16345,30 +16209,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -16377,14 +16217,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -16392,22 +16224,6 @@ "endColumn": 55, "lineCount": 1 } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 60, - "lineCount": 1 - } } ], "./sumpy/expansion/diff_op.py": [ @@ -21009,14 +20825,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21152,65 +20960,57 @@ "endColumn": 28, "lineCount": 1 } + } + ], + "./sumpy/expansion/m2l.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 + } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } - } - ], - "./sumpy/expansion/m2l.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -29047,254 +28847,6 @@ } ], "./sumpy/fmm.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 27, - "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": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -29312,18 +28864,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 55, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, @@ -29344,10 +28888,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 66, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, @@ -29391,22 +28935,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29415,14 +28943,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29431,14 +28951,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -29455,22 +28967,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29479,14 +28975,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29495,14 +28983,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -29535,14 +29015,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29551,14 +29023,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29575,14 +29039,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29631,14 +29087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29647,14 +29095,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29671,14 +29111,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29719,14 +29151,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29735,14 +29159,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29759,14 +29175,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29807,14 +29215,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29823,14 +29223,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29847,14 +29239,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29895,14 +29279,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29911,14 +29287,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29935,14 +29303,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29983,14 +29343,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29999,14 +29351,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -30023,14 +29367,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -30055,14 +29391,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -30071,14 +29399,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -30087,14 +29407,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -30111,14 +29423,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -30127,14 +29431,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -30143,46 +29439,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -30239,14 +29495,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -30319,14 +29567,6 @@ "lineCount": 1 } }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -30343,14 +29583,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -30839,14 +30071,6 @@ "lineCount": 1 } }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 25, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -31839,14 +31063,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -31895,6 +31111,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 42, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -32639,14 +31863,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -32656,10 +31872,10 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, @@ -33911,14 +33127,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -33928,18 +33136,10 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, @@ -34527,14 +33727,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -35009,30 +34201,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownLambdaType", "range": { @@ -36185,14 +35353,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -36201,14 +35361,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -36481,14 +35633,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -36497,14 +35641,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -36777,22 +35913,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -36825,14 +35945,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -37273,22 +36385,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -37321,14 +36417,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -37489,22 +36577,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -37529,14 +36601,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -37777,14 +36841,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -41227,6 +40283,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -41331,14 +40395,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -41379,14 +40435,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -41435,14 +40483,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -41451,22 +40491,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -41763,14 +40787,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -41835,14 +40851,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -42059,14 +41067,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -42131,14 +41131,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -42405,6 +41397,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42462,18 +41462,10 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, @@ -42481,15 +41473,15 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 25, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, @@ -42502,7 +41494,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, "endColumn": 65, @@ -42510,7 +41502,7 @@ } }, { - "code": "reportOptionalMemberAccess", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 28, "endColumn": 65, @@ -42717,14 +41709,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -42773,14 +41757,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -42789,22 +41765,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -42853,14 +41813,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -43101,14 +42053,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -43341,22 +42285,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -43397,14 +42325,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -43413,22 +42333,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -43765,22 +42669,6 @@ "lineCount": 8 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -43885,14 +42773,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -43909,22 +42789,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 53, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 65, - "endColumn": 79, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -44053,14 +42917,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -45457,6 +44313,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportArgumentType", "range": { @@ -45521,6 +44385,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -45530,7 +44402,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, "endColumn": 65, @@ -45538,7 +44410,7 @@ } }, { - "code": "reportOptionalMemberAccess", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 28, "endColumn": 65, @@ -46057,14 +44929,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -46193,14 +45057,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -46217,14 +45073,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46257,14 +45105,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -46561,14 +45401,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -46857,22 +45689,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -46881,14 +45697,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -46937,14 +45745,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -49917,6 +48717,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -49997,6 +48805,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 39, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -50333,94 +49149,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 21, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "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", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -50869,38 +49597,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51741,14 +50437,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51758,7 +50446,7 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 52, "endColumn": 55, @@ -51901,94 +50589,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 14, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 14, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51997,22 +50597,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 70, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportConstantRedefinition", "range": { @@ -52053,14 +50637,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -52069,22 +50645,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -52093,62 +50653,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -52157,30 +50661,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -57763,6 +56243,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 27, + "endColumn": 75, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { From 4880a83857a4a4c21c4d35bc153ae017caedcfe3 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 22 Jul 2025 11:19:47 -0400 Subject: [PATCH 172/335] Track obj_array renames --- sumpy/distributed.py | 7 +++---- sumpy/fmm.py | 7 +++---- sumpy/point_calculus.py | 4 ++-- sumpy/qbx.py | 13 +++++-------- sumpy/tools.py | 12 +++++------- sumpy/toys.py | 5 ++--- test/test_fmm.py | 4 ++-- test/test_kernels.py | 4 ++-- test/test_matrixgen.py | 7 +++---- 9 files changed, 27 insertions(+), 36 deletions(-) diff --git a/sumpy/distributed.py b/sumpy/distributed.py index 563de10a8..df66f308f 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -26,6 +26,7 @@ from boxtree.distributed.calculation import DistributedExpansionWrangler import pyopencl.array as cl_array +import pytools.obj_array as obj_array from sumpy.fmm import SumpyExpansionWrangler @@ -66,8 +67,7 @@ def gather_potential_results(self, potentials, tgt_idx_all_ranks): super().gather_potential_results(potentials_host, tgt_idx_all_ranks)) if mpi_rank == 0: - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ cl_array.to_device(potentials_dev.queue, gathered_potentials_host) for gathered_potentials_host, potentials_dev in zip(gathered_potentials_host_vec, potentials, strict=True)]) @@ -85,7 +85,6 @@ def reorder_potentials(self, potentials): if self.comm.Get_rank() == 0: import numpy as np - from pytools.obj_array import obj_array_vectorize assert ( isinstance(potentials, np.ndarray) and potentials.dtype.char == "O") @@ -93,7 +92,7 @@ def reorder_potentials(self, potentials): def reorder(x): return x[self.global_traversal.tree.sorted_target_ids] - return obj_array_vectorize(reorder, potentials) + return obj_array.vectorize(reorder, potentials) else: return None diff --git a/sumpy/fmm.py b/sumpy/fmm.py index d56bfbc12..7c9587e77 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -47,6 +47,7 @@ import pyopencl as cl import pyopencl.array as cl_array +import pytools.obj_array as obj_array from pytools import memoize_method from sumpy import ( @@ -546,8 +547,7 @@ def output_zeros(self, template_ary): (e.g. :class:`pyopencl.CommandQueue`) the returned array should reuse. """ - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ cl_array.zeros( template_ary.queue, self.tree.ntargets, @@ -560,7 +560,6 @@ def reorder_sources(self, source_array): def reorder_potentials(self, potentials): import numpy as np - from pytools.obj_array import obj_array_vectorize assert ( isinstance(potentials, np.ndarray) and potentials.dtype.char == "O") @@ -568,7 +567,7 @@ def reorder_potentials(self, potentials): def reorder(x): return x[self.tree.sorted_target_ids] - return obj_array_vectorize(reorder, potentials) + return obj_array.vectorize(reorder, potentials) @property @memoize_method diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 6e59e7f92..f2c3d1d29 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -26,6 +26,7 @@ import numpy as np import numpy.linalg as la +import pytools.obj_array as obj_array from pytools import memoize_method @@ -232,8 +233,7 @@ def curl(self, arg): :class:`numpy.ndarray`\ s with shape ``(npoints_total,)``. """ from pytools import levi_civita - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ sum( levi_civita((k, m, n)) * self.diff(m, arg[n]) for m in range(3) for n in range(3)) diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 3e44c0c07..8d6092ebd 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -33,6 +33,7 @@ from typing_extensions import override import loopy as lp +import pytools.obj_array as obj_array from loopy.version import MOST_RECENT_LANGUAGE_VERSION from pymbolic import parse, var from pytools import memoize_method @@ -646,8 +647,7 @@ def normal(self): self.arguments["normal"] = ( lp.GlobalArg("normal", self.geometry_dtype, shape=("ntargets", self.dim), order="C")) - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ parse(f"normal[itgt, {i}]") for i in range(self.dim)]) @@ -657,8 +657,7 @@ def tangent(self): self.arguments["tangent"] = ( lp.GlobalArg("tangent", self.geometry_dtype, shape=("ntargets", self.dim), order="C")) - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ parse(f"tangent[itgt, {i}]") for i in range(self.dim)]) @@ -678,8 +677,7 @@ def src_derivative_dir(self): lp.GlobalArg("src_derivative_dir", self.geometry_dtype, shape=("ntargets", self.dim), order="C")) - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ parse(f"src_derivative_dir[itgt, {i}]") for i in range(self.dim)]) @@ -690,8 +688,7 @@ def tgt_derivative_dir(self): lp.GlobalArg("tgt_derivative_dir", self.geometry_dtype, shape=("ntargets", self.dim), order="C")) - from pytools.obj_array import make_obj_array - return make_obj_array([ + return obj_array.new_1d([ parse(f"tgt_derivative_dir[itgt, {i}]") for i in range(self.dim)]) diff --git a/sumpy/tools.py b/sumpy/tools.py index c28214bd2..06f3072b7 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1,7 +1,5 @@ from __future__ import annotations -from pyopencl import MemoryObjectHolder - __copyright__ = """ Copyright (C) 2012 Andreas Kloeckner @@ -29,6 +27,7 @@ THE SOFTWARE. """ + import enum import logging import warnings @@ -40,7 +39,9 @@ import numpy as np import loopy as lp +import pytools.obj_array as obj_array from pymbolic.mapper import WalkMapper +from pyopencl import MemoryObjectHolder from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -226,17 +227,14 @@ def build_matrix(op, dtype=None, shape=None): def vector_to_device(queue, vec): from pyopencl.array import to_device - from pytools.obj_array import obj_array_vectorize def to_dev(ary): return to_device(queue, ary) - return obj_array_vectorize(to_dev, vec) + return obj_array.vectorize(to_dev, vec) def vector_from_device(queue, vec): - from pytools.obj_array import obj_array_vectorize - def from_dev(ary): from numbers import Number if isinstance(ary, np.number | Number): @@ -245,7 +243,7 @@ def from_dev(ary): return ary.get(queue=queue) - return obj_array_vectorize(from_dev, vec) + return obj_array.vectorize(from_dev, vec) def _merge_kernel_arguments(dictionary, arg): diff --git a/sumpy/toys.py b/sumpy/toys.py index dd20c17ce..ad7ee5517 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -30,6 +30,7 @@ from numbers import Number from typing import TYPE_CHECKING +import pytools.obj_array as obj_array from pytools import memoize_method from sumpy.kernel import TargetTransformationRemover @@ -309,8 +310,6 @@ def _e2p(psource, targets, e2p): queue, np.array(psource.center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) - from pytools.obj_array import make_obj_array - from sumpy.tools import vector_to_device coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) @@ -323,7 +322,7 @@ def _e2p(psource, targets, e2p): box_target_counts_nonchild=box_target_counts_nonchild, centers=centers, rscale=psource.rscale, - targets=vector_to_device(queue, make_obj_array(targets)), + targets=vector_to_device(queue, obj_array.new_1d(targets)), **toy_ctx.extra_kernel_kwargs) return pot.get(queue) diff --git a/test/test_fmm.py b/test/test_fmm.py index d85eafe60..b79b800b7 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -32,6 +32,7 @@ import numpy.linalg as la import pytest +import pytools.obj_array as obj_array from arraycontext import pytest_generate_tests_for_array_contexts from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 @@ -142,8 +143,7 @@ def _test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, from sumpy.visualization import FieldPlotter fp = FieldPlotter(np.array([0.5, 0]), extent=3, npoints=200) - from pytools.obj_array import make_obj_array - targets = make_obj_array([fp.points[i] for i in range(knl.dim)]) + targets = obj_array.new_1d([fp.points[i] for i in range(knl.dim)]) from boxtree import TreeBuilder tb = TreeBuilder(actx.context) diff --git a/test/test_kernels.py b/test/test_kernels.py index 41d9da0b5..9c7b23cc0 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -31,9 +31,9 @@ import numpy.linalg as la import pytest +import pytools.obj_array as obj_array from arraycontext import pytest_generate_tests_for_array_contexts from pytools.convergence import PConvergenceVerifier -from pytools.obj_array import make_obj_array import sumpy.symbolic as sym import sumpy.toys as t @@ -350,7 +350,7 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative + center[:, np.newaxis]) centers = actx.from_numpy(centers) - targets = actx.from_numpy(make_obj_array(fp.points)) + targets = actx.from_numpy(obj_array.new_1d(fp.points)) rscale = 0.5 # pick something non-1 diff --git a/test/test_matrixgen.py b/test/test_matrixgen.py index 1dc0dd854..87a085af0 100644 --- a/test/test_matrixgen.py +++ b/test/test_matrixgen.py @@ -30,6 +30,7 @@ import numpy.linalg as la import pytest +import pytools.obj_array as obj_array from arraycontext import pytest_generate_tests_for_array_contexts from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 @@ -141,9 +142,8 @@ def test_qbx_direct(actx_factory, factor, lpot_id, visualize=False): extra_kwargs = {} if lpot_id == 2: - from pytools.obj_array import make_obj_array extra_kwargs["dsource_vec"] = ( - actx.from_numpy(make_obj_array(np.ones((ndim, n)))) + actx.from_numpy(obj_array.new_1d(np.ones((ndim, n)))) ) _, (result_lpot,) = lpot(actx.queue, @@ -229,9 +229,8 @@ def test_p2p_direct(actx_factory, exclude_self, factor, lpot_id, visualize=False actx.from_numpy(np.arange(n, dtype=np.int32)) ) if lpot_id == 2: - from pytools.obj_array import make_obj_array extra_kwargs["dsource_vec"] = ( - actx.from_numpy(make_obj_array(np.ones((ndim, n))))) + actx.from_numpy(obj_array.new_1d(np.ones((ndim, n))))) _, (result_lpot,) = lpot(actx.queue, targets=targets, From 4f3010de3fe6feafb7cb7a632ea42c799d8c0ee0 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 22 Jul 2025 11:20:01 -0400 Subject: [PATCH 173/335] Some typing improvements in examples --- examples/curve-pot.py | 9 +++++---- examples/curve.py | 3 +++ examples/fourier.py | 15 +++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index c1c113662..e51380d3f 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -1,5 +1,6 @@ import numpy as np import numpy.linalg as la +from numpy.typing import NDArray import pyopencl as cl @@ -120,7 +121,7 @@ def draw_pot_figure(aspect_ratio, a = 1 b = 1/aspect_ratio - def map_to_curve(t): + def map_to_curve(t: NDArray[np.floating]): t = t*(2*np.pi) x = a*np.cos(t) @@ -185,8 +186,8 @@ def map_to_curve(t): from sumpy.tools import build_matrix - def apply_lpot(x): - xovsmp = np.dot(fim, x) + def apply_lpot(x: NDArray[np.inexact]) -> NDArray[np.inexact]: + xovsmp = fim @ x _evt, (y,) = lpot(actx.queue, sources, ovsmp_sources, @@ -197,7 +198,7 @@ def apply_lpot(x): return actx.to_numpy(y) - op = LinearOperator((nsrc, nsrc), apply_lpot) + op = LinearOperator((nsrc, nsrc), np.dtype(np.complex128), apply_lpot) mat = build_matrix(op, dtype=np.complex128) w, _v = la.eig(mat) plt.plot(w.real, "o-") diff --git a/examples/curve.py b/examples/curve.py index 760db5f77..2a7e53b88 100644 --- a/examples/curve.py +++ b/examples/curve.py @@ -1,8 +1,11 @@ +from typing import final + import numpy as np import scipy as sp import scipy.fftpack +@final class CurveGrid: def __init__(self, x, y): self.pos = np.vstack([x, y]).copy() diff --git a/examples/fourier.py b/examples/fourier.py index f637c2a4f..9e51c8449 100644 --- a/examples/fourier.py +++ b/examples/fourier.py @@ -1,13 +1,14 @@ import numpy as np +from numpy.typing import NDArray -def make_fourier_vdm(n, inverse): +def make_fourier_vdm(n: int, inverse: bool) -> NDArray[np.complex128]: i = np.arange(n, dtype=np.float64) imat = i[:, np.newaxis]*i/n result = np.exp((2j*np.pi)*imat) if inverse: - result = result.T.conj()/n + result = np.conj(result.T)/n return result @@ -30,9 +31,7 @@ def make_fourier_mode_extender(m, n, dtype): return result -def make_fourier_interp_matrix(m, n): - return np.dot( - np.dot( - make_fourier_vdm(m, inverse=False), - make_fourier_mode_extender(m, n, np.float64)), - make_fourier_vdm(n, inverse=True)) +def make_fourier_interp_matrix(m: int, n: int): + return (make_fourier_vdm(m, inverse=False) + @ make_fourier_mode_extender(m, n, np.float64) + @ make_fourier_vdm(n, inverse=True)) From a3a8d631fc377c52ee49049695bcb84f3fdf9097 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 22 Jul 2025 18:29:20 -0400 Subject: [PATCH 174/335] Install scipy-stubs in bpr CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba38b8344..6db9e167b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 build_py_project_in_conda_env - cipip install pytest pyfmmlib scipy matplotlib pyvisfile + cipip install pytest pyfmmlib scipy scipy-stubs matplotlib pyvisfile cipip install basedpyright basedpyright From 5c35d441dd0db8a52ac5c1ce7ca705d099f35988 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 22 Jul 2025 11:24:02 -0400 Subject: [PATCH 175/335] Update baseline --- .basedpyright/baseline.json | 64 ++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 2af736b3c..bc042efe5 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -16,6 +16,14 @@ "endColumn": 14, "lineCount": 1 } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 13, + "endColumn": 78, + "lineCount": 1 + } } ], "./examples/expansion-toys.py": [ @@ -43111,22 +43119,6 @@ "lineCount": 1 } }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 17, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -43135,14 +43127,6 @@ "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 57, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -43288,10 +43272,18 @@ } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, @@ -43328,10 +43320,18 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 22, + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, @@ -52586,8 +52586,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 66, + "startColumn": 61, + "endColumn": 68, "lineCount": 1 } }, From 84338330da6ffb940a228044e707abe0173d3170 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 02:58:37 +0000 Subject: [PATCH 176/335] build(deps): bump actions/checkout from 4 to 5 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/autopush.yml | 2 +- .github/workflows/ci.yml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index f0b30a9ce..e1dfec1a9 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -10,7 +10,7 @@ jobs: if: startsWith(github.repository, 'inducer/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6db9e167b..50267fc6c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: name: Ruff runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: astral-sh/setup-uv@v6 - name: "Main Script" run: | @@ -26,13 +26,13 @@ jobs: name: Typos runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: crate-ci/typos@master basedpyright: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: @@ -50,7 +50,7 @@ jobs: name: Pylint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" run: | USE_CONDA_BUILD=1 @@ -64,7 +64,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" run: | CONDA_ENVIRONMENT=.test-conda-env-py3.yml @@ -77,7 +77,7 @@ jobs: name: Conda Pytest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -89,7 +89,7 @@ jobs: name: Conda Pytest Symengine runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -99,7 +99,7 @@ jobs: name: Conda Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -117,7 +117,7 @@ jobs: name: Tests for downstream project ${{ matrix.downstream_project }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: "Main Script" env: DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }} From f206cca532b505abf749cba7dc86e63ecb5e3358 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 3 Sep 2025 13:47:27 -0500 Subject: [PATCH 177/335] Rework most of sumpy.kernel to use dataclasses --- doc/conf.py | 10 + sumpy/kernel.py | 559 +++++++++++++++++++++------------------------- sumpy/tools.py | 34 ++- test/test_misc.py | 20 +- 4 files changed, 299 insertions(+), 324 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 9ae15030e..852bbd15a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -28,3 +28,13 @@ nitpick_ignore_regex = [ ["py:class", r"symengine\.(.+)"], # :cry: ] + +sphinxconfig_missing_reference_aliases = { + # pymbolic + "Expression": "obj:pymbolic.typing.Expression", + "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", +} + + +def setup(app): + app.connect("missing-reference", process_autodoc_missing_reference) # noqa: F821 diff --git a/sumpy/kernel.py b/sumpy/kernel.py index f654eb2a7..3ac1e03ff 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -23,15 +23,17 @@ THE SOFTWARE. """ -from abc import abstractmethod +from abc import ABC, abstractmethod from collections import defaultdict -from typing import TYPE_CHECKING, ClassVar +from dataclasses import dataclass +from typing import TYPE_CHECKING, ClassVar, Generic, Literal, TypeVar import numpy as np +from typing_extensions import override import loopy as lp import pymbolic.primitives as prim -from pymbolic import Expression, var +from pymbolic import ArithmeticExpression, Expression, var from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper from pymbolic.primitives import make_sym_vector from pytools import memoize_method @@ -41,8 +43,11 @@ if TYPE_CHECKING: + from collections.abc import Iterable, Sequence + import sympy as sp + from sumpy.derivative_taker import ExprDerivativeTaker from sumpy.expansion.diff_op import LinearPDESystemOperator @@ -97,42 +102,26 @@ """ +@dataclass(frozen=True) class KernelArgument: """ - .. attribute:: loopy_arg - - A :class:`loopy.KernelArgument` instance describing the type, - name, and other features of this kernel argument when - passed to a generated piece of code. + .. autoattribute:: loopy_arg """ - def __init__(self, loopy_arg): - self.loopy_arg = loopy_arg + loopy_arg: lp.KernelArgument + """A :class:`loopy.KernelArgument` instance describing the type, + name, and other features of this kernel argument when + passed to a generated piece of code.""" @property def name(self): return self.loopy_arg.name - def __eq__(self, other): - if id(self) == id(other): - return True - if type(self) is not KernelArgument: - return NotImplemented - if type(other) is not KernelArgument: - return NotImplemented - return self.loopy_arg == other.loopy_arg - - def __ne__(self, other): - # Needed for python2 - return not self == other - - def __hash__(self): # pylint: disable=invalid-hash-returned - return (type(self), self.loopy_arg) - # {{{ basic kernel interface -class Kernel: +@dataclass(frozen=True) +class Kernel(ABC): """Basic kernel interface. .. attribute:: is_complex_valued @@ -157,49 +146,6 @@ def is_complex_valued(self) -> bool: ... dim: int - init_arg_names: ClassVar[tuple[str, ...]] - _hash_value: int - - def __init__(self, dim: int) -> None: - self.dim = dim - - # {{{ hashing/pickling/equality - - def __eq__(self, other): - if self is other: - return True - elif hash(self) != hash(other): - return False - else: - return (type(self) is type(other) - and self.__getinitargs__() == other.__getinitargs__()) - - def __ne__(self, other): - return not self.__eq__(other) - - def __hash__(self) -> int: - try: - return self._hash_value - except AttributeError: - self._hash_value = hash((type(self), *self.__getinitargs__())) - return self._hash_value - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.__getinitargs__()) - - def __getinitargs__(self): - return (self.dim,) - - def __getstate__(self): - return self.__getinitargs__() - - def __setstate__(self, state): - # Can't use trivial pickling: hash_value cache must stay unset - assert len(self.init_arg_names) == len(state) - self.__init__(*state) - - # }}} def get_base_kernel(self) -> Kernel: """Return the kernel being wrapped by this one, or else @@ -288,7 +234,7 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): return expr_dict @abstractmethod - def get_global_scaling_const(self): + def get_global_scaling_const(self) -> ArithmeticExpression: r"""Return a global scaling constant of the kernel. Typically, this ensures that the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` with a constant of 1, where @@ -298,13 +244,13 @@ def get_global_scaling_const(self): """ ... - def get_args(self) -> list[KernelArgument]: + def get_args(self) -> Sequence[KernelArgument]: """Return list of :class:`KernelArgument` instances describing extra arguments used by the kernel. """ return [] - def get_source_args(self) -> list[KernelArgument]: + def get_source_args(self) -> Sequence[KernelArgument]: """Return list of :class:`KernelArgument` instances describing extra arguments used by kernel in picking up contributions from point sources. @@ -315,56 +261,45 @@ def get_source_args(self) -> list[KernelArgument]: def get_pde_as_diff_op(self) -> LinearPDESystemOperator: ... + @abstractmethod + def get_derivative_taker(self, dvec, rscale, sac) -> ExprDerivativeTaker: + ... + # TODO: Allow kernels that are not translation invariant - is_translation_invariant = True + is_translation_invariant: ClassVar[bool] = True + + mapper_method: ClassVar[str] # }}} +@dataclass(frozen=True) class ExpressionKernel(Kernel): r""" - .. attribute:: expression - - A :mod:`pymbolic` expression depending on - variables *d_1* through *d_N* where *N* equals *dim*. - (These variables match what is returned from - :func:`pymbolic.primitives.make_sym_vector` with - argument `"d"`.) Any variable that is not *d* or - a :class:`~sumpy.symbolic.SpatialConstant` will be - viewed as potentially spatially varying. - - .. attribute:: global_scaling_const - - A constant :mod:`pymbolic` expression for the - global scaling of the kernel. Typically, this ensures that - the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` - with a constant of 1, where :math:`\mathcal L` is the PDE - operator associated with the kernel. Not to be confused with - *rscale*, which keeps expansion coefficients benignly scaled. - - .. attribute:: is_complex_valued - - .. automethod:: __init__ - .. automethod:: get_expression + .. autoattribute:: expression + .. autoattribute:: global_scaling_const + .. autoattribute:: is_complex_valued """ - init_arg_names: ClassVar[tuple[str, ...]] = ( - "dim", "expression", "global_scaling_const", "is_complex_valued") - - def __init__(self, dim, expression, global_scaling_const, - is_complex_valued): - # expression and global_scaling_const are pymbolic objects because - # those pickle cleanly. D'oh, sympy! - - Kernel.__init__(self, dim) + expression: Expression + """A :mod:`pymbolic` expression depending on + variables *d_1* through *d_N* where *N* equals *dim*. + (These variables match what is returned from + :func:`pymbolic.primitives.make_sym_vector` with + argument `"d"`.) Any variable that is not *d* or + a :class:`~sumpy.symbolic.SpatialConstant` will be + viewed as potentially spatially varying. + """ - self.expression = expression - self.global_scaling_const = global_scaling_const - self.is_complex_valued = is_complex_valued + global_scaling_const: Expression - def __getinitargs__(self): - return (self.dim, self.expression, self.global_scaling_const, - self.is_complex_valued) + r"""A constant :mod:`pymbolic` expression for the + global scaling of the kernel. Typically, this ensures that + the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` + with a constant of 1, where :math:`\mathcal L` is the PDE + operator associated with the kernel. Not to be confused with + *rscale*, which keeps expansion coefficients benignly scaled. + """ def __repr__(self): return f"ExprKnl{self.dim}D" @@ -394,12 +329,7 @@ def get_global_scaling_const(self): return PymbolicToSympyMapperWithSymbols()( self.global_scaling_const) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - for _, value in zip(self.init_arg_names, self.__getinitargs__(), strict=True): - key_builder.rec(key_hash, value) - - mapper_method = "map_expression_kernel" + mapper_method: ClassVar[str] = "map_expression_kernel" def get_derivative_taker(self, dvec, rscale, sac): """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance @@ -417,24 +347,28 @@ def get_pde_as_diff_op(self): raise NotImplementedError -one_kernel_2d = ExpressionKernel( - dim=2, - expression=1, - global_scaling_const=1, - is_complex_valued=False) -one_kernel_3d = ExpressionKernel( - dim=3, - expression=1, - global_scaling_const=1, - is_complex_valued=False) +class OneKernel(ExpressionKernel): + def __init__(self, dim: int): + super().__init__( + dim=dim, + expression=1, + global_scaling_const=1, + ) + + @property + @override + def is_complex_valued(self) -> bool: + return False + + +one_kernel_2d = OneKernel(2) +one_kernel_3d = OneKernel(3) # {{{ PDE kernels class LaplaceKernel(ExpressionKernel): - init_arg_names = ("dim",) - - def __init__(self, dim): + def __init__(self, dim: int): # See (Kress LIE, Thm 6.2) for scaling if dim == 2: r = pymbolic_real_norm_2(make_sym_vector("d", dim)) @@ -451,15 +385,17 @@ def __init__(self, dim): dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=False) + ) - def __getinitargs__(self): - return (self.dim,) + @property + @override + def is_complex_valued(self) -> bool: + return False def __repr__(self): return f"LapKnl{self.dim}D" - mapper_method = "map_laplace_kernel" + mapper_method: ClassVar[str] = "map_laplace_kernel" def get_derivative_taker(self, dvec, rscale, sac): """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance @@ -475,9 +411,7 @@ def get_pde_as_diff_op(self): class BiharmonicKernel(ExpressionKernel): - init_arg_names = ("dim",) - - def __init__(self, dim): + def __init__(self, dim: int): r = pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: # Ref: Farkas, Peter. Mathematical foundations for fast algorithms @@ -499,15 +433,17 @@ def __init__(self, dim): dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=False) + ) - def __getinitargs__(self): - return (self.dim,) + @property + @override + def is_complex_valued(self) -> bool: + return False def __repr__(self): return f"BiharmKnl{self.dim}D" - mapper_method = "map_biharmonic_kernel" + mapper_method: ClassVar[str] = "map_biharmonic_kernel" def get_derivative_taker(self, dvec, rscale, sac): """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance @@ -523,15 +459,17 @@ def get_pde_as_diff_op(self): return laplacian(laplacian(w)) +@dataclass(frozen=True) class HelmholtzKernel(ExpressionKernel): - init_arg_names = ("dim", "helmholtz_k_name", "allow_evanescent") + helmholtz_k_name: str + """ + The argument name to use for the Helmholtz + parameter when generating functions to evaluate this kernel. + """ + allow_evanescent: bool - def __init__(self, dim, helmholtz_k_name="k", - allow_evanescent=False): - """ - :arg helmholtz_k_name: The argument name to use for the Helmholtz - parameter when generating functions to evaluate this kernel. - """ + def __init__(self, dim: int, helmholtz_k_name: str = "k", + allow_evanescent: bool = False): k = SpatialConstant(helmholtz_k_name) # Guard against code using the old positional interface. @@ -552,19 +490,15 @@ def __init__(self, dim, helmholtz_k_name="k", dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=True) - - self.helmholtz_k_name = helmholtz_k_name - self.allow_evanescent = allow_evanescent + ) - def __getinitargs__(self): - return (self.dim, self.helmholtz_k_name, - self.allow_evanescent) + object.__setattr__(self, "helmholtz_k_name", helmholtz_k_name) + object.__setattr__(self, "allow_evanescent", allow_evanescent) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, (self.dim, self.helmholtz_k_name, - self.allow_evanescent)) + @property + @override + def is_complex_valued(self) -> bool: + return True def __repr__(self): return f"HelmKnl{self.dim}D({self.helmholtz_k_name})" @@ -580,7 +514,7 @@ def get_args(self): loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype), )] - mapper_method = "map_helmholtz_kernel" + mapper_method: ClassVar[str] = "map_helmholtz_kernel" def get_derivative_taker(self, dvec, rscale, sac): """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance @@ -597,10 +531,11 @@ def get_pde_as_diff_op(self): return (laplacian(w) + k**2 * w) +@dataclass(frozen=True) class YukawaKernel(ExpressionKernel): - init_arg_names = ("dim", "yukawa_lambda_name") + yukawa_lambda_name: str - def __init__(self, dim, yukawa_lambda_name="lam"): + def __init__(self, dim: int, yukawa_lambda_name: str = "lam"): """ :arg yukawa_lambda_name: The argument name to use for the Yukawa parameter when generating functions to evaluate this kernel. @@ -638,16 +573,15 @@ def __init__(self, dim, yukawa_lambda_name="lam"): dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=True) - - self.yukawa_lambda_name = yukawa_lambda_name + ) - def __getinitargs__(self): - return (self.dim, self.yukawa_lambda_name) + object.__setattr__(self, "yukawa_lambda_name", yukawa_lambda_name) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, (self.dim, self.yukawa_lambda_name)) + @property + @override + def is_complex_valued(self) -> bool: + # FIXME + return True def __repr__(self): return f"YukKnl{self.dim}D({self.yukawa_lambda_name})" @@ -662,8 +596,6 @@ def get_args(self): loopy_arg=lp.ValueArg(self.yukawa_lambda_name, np.float64), )] - mapper_method = "map_yukawa_kernel" - def get_derivative_taker(self, dvec, rscale, sac): """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance that supports taking derivatives of the base kernel with respect to dvec. @@ -677,18 +609,36 @@ def get_pde_as_diff_op(self): lam = sym.Symbol(self.yukawa_lambda_name) return (laplacian(w) - lam**2 * w) + mapper_method: ClassVar[str] = "map_yukawa_kernel" -class ElasticityKernel(ExpressionKernel): - init_arg_names = ("dim", "icomp", "jcomp", "viscosity_mu", "poisson_ratio") - def __new__(cls, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): +@dataclass(frozen=True) +class ElasticityKernel(ExpressionKernel): + icomp: int + jcomp: int + viscosity_mu: ArithmeticExpression + poisson_ratio: ArithmeticExpression + + def __new__(cls, + dim: int, + icomp: int, + jcomp: int, + viscosity_mu: str | ArithmeticExpression = "mu", + poisson_ratio: str | ArithmeticExpression = "nu", + ): if poisson_ratio == 0.5: instance = super().__new__(StokesletKernel) else: instance = super().__new__(cls) return instance - def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): + def __init__(self, + dim: int, + icomp: int, + jcomp: int, + viscosity_mu: str | ArithmeticExpression = "mu", + poisson_ratio: str | ArithmeticExpression = "nu", + ): r""" :arg viscosity_mu: The argument name to use for dynamic viscosity :math:`\mu` when generating functions to @@ -731,31 +681,29 @@ def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): else: raise RuntimeError("unsupported dimensionality") - self.viscosity_mu = mu - self.poisson_ratio = nu - self.icomp = icomp - self.jcomp = jcomp + object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "poisson_ratio", nu) + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) super().__init__( dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=False) - - def __getinitargs__(self): - return (self.dim, self.icomp, self.jcomp, self.viscosity_mu, - self.poisson_ratio) + ) + @override def __reduce__(self): - return (ElasticityKernel, self.__getinitargs__()) + return ( + type(self), + (self.dim, self.icomp, self.jcomp, self.viscosity_mu, self.poisson_ratio)) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, - (self.dim, self.icomp, self.jcomp)) - key_builder.rec(key_hash, self.viscosity_mu) - key_builder.rec(key_hash, self.poisson_ratio) + @property + @override + def is_complex_valued(self) -> bool: + return False + @override def __repr__(self): return f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" @@ -777,27 +725,51 @@ def get_source_args(self): res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) return res - mapper_method = "map_elasticity_kernel" + mapper_method: ClassVar[str] = "map_elasticity_kernel" + @override def get_pde_as_diff_op(self): from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) +@dataclass(frozen=True) class StokesletKernel(ElasticityKernel): - def __new__(cls, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="0.5"): + def __new__(cls, + dim: int, + icomp: int, + jcomp: int, + viscosity_mu: str | ArithmeticExpression = "mu", + poisson_ratio: str | ArithmeticExpression | None = None, + ): return object.__new__(cls) - def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio=0.5): + def __init__(self, + dim: int, + icomp: int, + jcomp: int, + viscosity_mu: str | ArithmeticExpression = "mu", + poisson_ratio: str | ArithmeticExpression | None = None, + ): + if poisson_ratio is None: + poisson_ratio = 0.5 + if poisson_ratio != 0.5: + raise ValueError("StokesletKernel must have a Poisson ratio of 0.5") + super().__init__(dim, icomp, jcomp, viscosity_mu, poisson_ratio) + @override def __repr__(self): return f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" +@dataclass(frozen=True) class StressletKernel(ExpressionKernel): - init_arg_names = ("dim", "icomp", "jcomp", "kcomp", "viscosity_mu") + icomp: int + jcomp: int + kcomp: int + viscosity_mu: SpatialConstant def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): r""" @@ -830,24 +802,21 @@ def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): else: raise RuntimeError("unsupported dimensionality") - self.icomp = icomp - self.jcomp = jcomp - self.kcomp = kcomp - self.viscosity_mu = mu + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "kcomp", kcomp) + object.__setattr__(self, "viscosity_mu", mu) super().__init__( dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=False) - - def __getinitargs__(self): - return (self.dim, self.icomp, self.jcomp, self.kcomp, self.viscosity_mu) + ) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, (self.dim, self.icomp, self.jcomp, self.kcomp)) - key_builder.rec(key_hash, self.viscosity_mu) + @property + @override + def is_complex_valued(self) -> bool: + return False def __repr__(self): return f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" @@ -860,7 +829,7 @@ def get_args(self): KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) for v in variables] - mapper_method = "map_stresslet_kernel" + mapper_method: ClassVar[str] = "map_stresslet_kernel" def get_pde_as_diff_op(self): from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -876,9 +845,16 @@ class LineOfCompressionKernel(ExpressionKernel): [1]: Mindlin, R.: Force at a Point in the Interior of a Semi-Infinite Solid https://doi.org/10.1063/1.1745385 """ - init_arg_names = ("dim", "axis", "viscosity_mu", "poisson_ratio") - - def __init__(self, dim=3, axis=2, viscosity_mu="mu", poisson_ratio="nu"): + axis: int + viscosity_mu: SpatialConstant + poisson_ratio: SpatialConstant + + def __init__(self, + dim: int = 3, + axis: int = 2, + viscosity_mu: str | SpatialConstant = "mu", + poisson_ratio: str | SpatialConstant = "nu" + ): r""" :arg axis: axis number defaulting to 2 for the z axis. :arg viscosity_mu: The argument name to use for @@ -914,16 +890,12 @@ def __init__(self, dim=3, axis=2, viscosity_mu="mu", poisson_ratio="nu"): dim, expression=expr, global_scaling_const=scaling, - is_complex_valued=False) - - def __getinitargs__(self): - return (self.dim, self.axis, self.viscosity_mu, self.poisson_ratio) + ) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, (self.dim, self.axis)) - key_builder.rec(key_hash, self.viscosity_mu) - key_builder.rec(key_hash, self.poisson_ratio) + @property + @override + def is_complex_valued(self) -> bool: + return False def __repr__(self): return f"LineOfCompressionKnl{self.dim}D_{self.axis}" @@ -938,7 +910,7 @@ def get_args(self): res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) return res - mapper_method = "map_line_of_compression_kernel" + mapper_method: ClassVar[str] = "map_line_of_compression_kernel" def get_pde_as_diff_op(self): from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -951,10 +923,13 @@ def get_pde_as_diff_op(self): # {{{ a kernel defined as wrapping another one--e.g., derivatives -class KernelWrapper(Kernel): - def __init__(self, inner_kernel): +@dataclass(frozen=True) +class KernelWrapper(Kernel, ABC): + inner_kernel: Kernel + + def __init__(self, inner_kernel: Kernel): Kernel.__init__(self, inner_kernel.dim) - self.inner_kernel = inner_kernel + object.__setattr__(self, "inner_kernel", inner_kernel) def get_base_kernel(self): return self.inner_kernel.get_base_kernel() @@ -999,26 +974,23 @@ def get_derivative_taker(self, dvec, rscale, sac): # {{{ derivatives -class DerivativeBase(KernelWrapper): - pass +class DerivativeBase(KernelWrapper, ABC): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + return self.inner_kernel.get_pde_as_diff_op() +@dataclass(frozen=True) class AxisSourceDerivative(DerivativeBase): - init_arg_names = ("axis", "inner_kernel") + axis: int - def __init__(self, axis, inner_kernel): - KernelWrapper.__init__(self, inner_kernel) - self.axis = axis - - def __getinitargs__(self): - return (self.axis, self.inner_kernel) + def __init__(self, axis: int, inner_kernel: Kernel): + super().__init__(inner_kernel) + object.__setattr__(self, "axis", axis) def __str__(self): return f"d/dy{self.axis} {self.inner_kernel}" - def __repr__(self): - return f"AxisSourceDerivative({self.axis}, {self.inner_kernel!r})" - def get_derivative_coeff_dict_at_source(self, expr_dict): expr_dict = self.inner_kernel.get_derivative_coeff_dict_at_source( expr_dict) @@ -1036,26 +1008,23 @@ def replace_base_kernel(self, new_base_kernel): def replace_inner_kernel(self, new_inner_kernel): return type(self)(self.axis, new_inner_kernel) - mapper_method = "map_axis_source_derivative" + mapper_method: ClassVar[str] = "map_axis_source_derivative" +@dataclass(frozen=True) class AxisTargetDerivative(DerivativeBase): - init_arg_names = ("axis", "inner_kernel") - target_array_name = "targets" + target_array_name: ClassVar[str] = "targets" - def __init__(self, axis, inner_kernel): - KernelWrapper.__init__(self, inner_kernel) - self.axis = axis + axis: int - def __getinitargs__(self): - return (self.axis, self.inner_kernel) + def __init__(self, axis: int, inner_kernel: Kernel): + super().__init__(inner_kernel) + object.__setattr__(self, "axis", axis) + @override def __str__(self): return f"d/dx{self.axis} {self.inner_kernel}" - def __repr__(self): - return f"AxisTargetDerivative({self.axis}, {self.inner_kernel!r})" - def postprocess_at_target(self, expr, bvec): from sumpy.derivative_taker import ( DifferentiatedExprDerivativeTaker, @@ -1083,7 +1052,7 @@ def replace_base_kernel(self, new_base_kernel): def replace_inner_kernel(self, new_inner_kernel): return type(self)(self.axis, new_inner_kernel) - mapper_method = "map_axis_target_derivative" + mapper_method: ClassVar[str] = "map_axis_target_derivative" class _VectorIndexAdder(CSECachingMapperMixin[Expression, []], IdentityMapper[[]]): @@ -1111,43 +1080,36 @@ def map_common_subexpression_uncached(self, result, expr.prefix, expr.scope, **expr.get_extra_properties()) +@dataclass(frozen=True) class DirectionalDerivative(DerivativeBase): - directional_kind: ClassVar[str] - init_arg_names = ("inner_kernel", "dir_vec_name") + directional_kind: ClassVar[Literal["src", "tgt"]] + + dir_vec_name: str - def __init__(self, inner_kernel, dir_vec_name=None): + def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None): if dir_vec_name is None: dir_vec_name = f"{self.directional_kind}_derivative_dir" KernelWrapper.__init__(self, inner_kernel) - self.dir_vec_name = dir_vec_name - - def __getinitargs__(self): - return (self.inner_kernel, self.dir_vec_name) - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.inner_kernel) - key_builder.rec(key_hash, self.dir_vec_name) + object.__setattr__(self, "dir_vec_name", dir_vec_name) def replace_base_kernel(self, new_base_kernel): return type(self)(self.inner_kernel.replace_base_kernel(new_base_kernel), dir_vec_name=self.dir_vec_name) + @override def __str__(self): return r"{}·∇_{} {}".format( self.dir_vec_name, "y" if self.directional_kind == "src" else "x", self.inner_kernel) - def __repr__(self): - return f"{type(self).__name__}({self.inner_kernel!r}, {self.dir_vec_name})" - class DirectionalTargetDerivative(DirectionalDerivative): - directional_kind = "tgt" + directional_kind: ClassVar[Literal["src", "tgt"]] = "tgt" target_array_name = "targets" + @override def get_code_transformer(self): from sumpy.codegen import VectorComponentRewriter vcr = VectorComponentRewriter([self.dir_vec_name]) @@ -1209,11 +1171,11 @@ def prepare_loopy_kernel(self, loopy_knl): loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method = "map_directional_target_derivative" + mapper_method: ClassVar[str] = "map_directional_target_derivative" class DirectionalSourceDerivative(DirectionalDerivative): - directional_kind = "src" + directional_kind: ClassVar[Literal["src", "tgt"]] = "src" def get_code_transformer(self): inner = self.inner_kernel.get_code_transformer() @@ -1258,7 +1220,7 @@ def prepare_loopy_kernel(self, loopy_knl): loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method = "map_directional_source_derivative" + mapper_method: ClassVar[str] = "map_directional_source_derivative" class TargetPointMultiplier(KernelWrapper): @@ -1266,22 +1228,17 @@ class TargetPointMultiplier(KernelWrapper): where :math:`x, y` are targets and sources respectively. """ - init_arg_names = ("axis", "inner_kernel") - target_array_name = "targets" + axis: int + + target_array_name: ClassVar[str] = "targets" def __init__(self, axis, inner_kernel): KernelWrapper.__init__(self, inner_kernel) self.axis = axis - def __getinitargs__(self): - return (self.axis, self.inner_kernel) - def __str__(self): return f"x{self.axis} {self.inner_kernel}" - def __repr__(self): - return f"TargetPointMultiplier({self.axis}, {self.inner_kernel!r})" - def replace_base_kernel(self, new_base_kernel): return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) @@ -1311,6 +1268,7 @@ def postprocess_at_target(self, expr, avec): else: return mult * expr + @override def get_code_transformer(self): from sumpy.codegen import VectorComponentRewriter vcr = VectorComponentRewriter([self.target_array_name]) @@ -1324,15 +1282,22 @@ def transform(expr): return transform - mapper_method = "map_target_point_multiplier" + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + raise NotImplementedError("no PDE is known") + + mapper_method: ClassVar[str] = "map_target_point_multiplier" # }}} # {{{ kernel mappers -class KernelMapper: - def rec(self, kernel): +ResultT = TypeVar("ResultT") + + +class KernelMapper(Generic[ResultT]): + def rec(self, kernel: Kernel) -> ResultT: try: method = getattr(self, kernel.mapper_method) except AttributeError as err: @@ -1343,15 +1308,11 @@ def rec(self, kernel): __call__ = rec -class KernelCombineMapper(KernelMapper): - def combine(self, values): +class KernelCombineMapper(KernelMapper[ResultT], ABC): + @abstractmethod + def combine(self, values: Iterable[ResultT]) -> ResultT: raise NotImplementedError - def map_difference_kernel(self, kernel): - return self.combine([ - self.rec(kernel.kernel_plus), - self.rec(kernel.kernel_minus)]) - def map_axis_target_derivative(self, kernel): return self.rec(kernel.inner_kernel) @@ -1361,7 +1322,7 @@ def map_axis_target_derivative(self, kernel): map_target_point_multiplier = map_axis_target_derivative -class KernelIdentityMapper(KernelMapper): +class KernelIdentityMapper(KernelMapper[Kernel]): def map_expression_kernel(self, kernel): return kernel @@ -1415,7 +1376,7 @@ def map_target_point_multiplier(self, kernel): SourceTransformationRemover = SourceDerivativeRemover -class DerivativeCounter(KernelCombineMapper): +class DerivativeCounter(KernelCombineMapper[int]): def combine(self, values): return max(values) @@ -1439,24 +1400,4 @@ def map_axis_target_derivative(self, kernel): # }}} -def to_kernel_and_args(kernel_like): - if (isinstance(kernel_like, tuple) - and len(kernel_like) == 2 - and isinstance(kernel_like[0], Kernel)): - # already gone through to_kernel_and_args - return kernel_like - - if not isinstance(kernel_like, Kernel): - if kernel_like == 0: - return LaplaceKernel(None), {} - elif isinstance(kernel_like, str): - return HelmholtzKernel(None), {"k": var(kernel_like)} - else: - raise ValueError("Only Kernel instances, 0 (for Laplace) and " - "variable names (strings) " - "for the Helmholtz parameter are allowed as kernels.") - - return kernel_like, {} - - # vim: fdm=marker diff --git a/sumpy/tools.py b/sumpy/tools.py index 06f3072b7..e08226fa6 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -34,7 +34,7 @@ from abc import ABC, abstractmethod from collections.abc import Hashable, Sequence from dataclasses import dataclass -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, TypeAlias import numpy as np @@ -55,7 +55,8 @@ import pyopencl import pyopencl as cl - from sumpy.kernel import Kernel + from sumpy.expansion import ExpansionBase + from sumpy.kernel import Kernel, KernelArgument logger = logging.getLogger(__name__) @@ -95,6 +96,12 @@ .. autofunction:: reduced_row_echelon_form .. autofunction:: nullspace +.. class:: KernelLike + See below. + +.. autodata:: KernelLike + :no-index: + FFT --- @@ -125,6 +132,9 @@ """ +KernelLike: TypeAlias = "Kernel | ExpansionBase" + + # {{{ multi_index helpers def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: @@ -246,15 +256,17 @@ def from_dev(ary): return obj_array.vectorize(from_dev, vec) -def _merge_kernel_arguments(dictionary, arg): +def _merge_kernel_arguments( + dictionary: dict[str, KernelArgument], + arg: KernelArgument): # Check for strict equality until there's a usecase if dictionary.setdefault(arg.name, arg) != arg: msg = "Merging two different kernel arguments {} and {} with the same name" - raise ValueError(msg.format(arg.loopy_arg, dictionary[arg].loopy_arg)) + raise ValueError(msg.format(arg.loopy_arg, dictionary[arg.name].loopy_arg)) -def gather_arguments(kernel_likes): - result = {} +def gather_arguments(kernel_likes: Sequence[KernelLike]): + result: dict[str, KernelArgument] = {} for knl in kernel_likes: for arg in knl.get_args(): _merge_kernel_arguments(result, arg) @@ -262,20 +274,20 @@ def gather_arguments(kernel_likes): return sorted(result.values(), key=lambda arg: arg.name) -def gather_source_arguments(kernel_likes): - result = {} +def gather_source_arguments(kernel_likes: Sequence[KernelLike]): + result: dict[str, KernelArgument] = {} for knl in kernel_likes: - for arg in knl.get_args() + knl.get_source_args(): + for arg in [*knl.get_args(), *knl.get_source_args()]: _merge_kernel_arguments(result, arg) return sorted(result.values(), key=lambda arg: arg.name) -def gather_loopy_arguments(kernel_likes): +def gather_loopy_arguments(kernel_likes: Sequence[KernelLike]): return [arg.loopy_arg for arg in gather_arguments(kernel_likes)] -def gather_loopy_source_arguments(kernel_likes): +def gather_loopy_source_arguments(kernel_likes: Sequence[KernelLike]): return [arg.loopy_arg for arg in gather_source_arguments(kernel_likes)] diff --git a/test/test_misc.py b/test/test_misc.py index df4d13311..2d1b073bf 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing_extensions import override + __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" @@ -526,9 +528,14 @@ def test_elasticity_new(): def test_weird_kernel(pde): class MyKernel(ExpressionKernel): def __init__(self): - super().__init__(dim=2, expression=1, global_scaling_const=1, - is_complex_valued=False) + super().__init__(dim=2, expression=1, global_scaling_const=1) + + @property + @override + def is_complex_valued(self) -> bool: + return False + @override def get_pde_as_diff_op(self): return pde @@ -554,10 +561,15 @@ def get_pde_as_diff_op(self): class StorageIndexTestKernel(ExpressionKernel): def __init__(self, dim, max_mi): - super().__init__(dim=dim, expression=1, global_scaling_const=1, - is_complex_valued=False) + super().__init__(dim=dim, expression=1, global_scaling_const=1) self._max_mi = max_mi + @property + @override + def is_complex_valued(self) -> bool: + return False + + @override def get_pde_as_diff_op(self): w = make_identity_diff_op(self.dim) pde = diff(w, tuple(self._max_mi)) From 84d088051771a892e84c2761c06179f4a13d560f Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 3 Sep 2025 13:48:05 -0500 Subject: [PATCH 178/335] Update baseline --- .basedpyright/baseline.json | 5286 ++++++----------------------------- 1 file changed, 806 insertions(+), 4480 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index bc042efe5..762e1e262 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -7306,10 +7306,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, @@ -8461,14 +8461,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8493,14 +8485,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8525,14 +8509,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9245,14 +9221,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9285,6 +9253,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10245,14 +10221,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 29 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10301,6 +10269,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10814,11 +10790,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 14 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { @@ -10830,10 +10806,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, @@ -11318,11 +11294,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 11 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { @@ -11334,10 +11310,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, @@ -11781,14 +11757,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 12 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -11813,6 +11781,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12182,11 +12158,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { @@ -12222,10 +12198,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, @@ -12550,11 +12526,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { @@ -12590,10 +12566,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, @@ -12967,22 +12943,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13136,34 +13096,10 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 38, + "endColumn": 76, "lineCount": 1 } }, @@ -13263,30 +13199,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13559,30 +13471,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -15609,14 +15497,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -15721,14 +15601,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20793,148 +20665,132 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 20, - "lineCount": 14 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 20, - "lineCount": 14 + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 } }, { @@ -33881,326 +33737,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUninitializedInstanceVariable", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -34225,14 +33761,6 @@ "lineCount": 1 } }, - { - "code": "reportInvalidAbstractMethod", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -34441,147 +33969,51 @@ "lineCount": 1 } }, - { - "code": "reportInvalidAbstractMethod", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportInvalidAbstractMethod", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 60, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 60, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 29, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, @@ -34633,14 +34065,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -34681,75 +34105,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, + "endColumn": 28, "lineCount": 1 } }, @@ -34865,46 +34225,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -34913,14 +34233,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -35033,54 +34345,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -35089,14 +34353,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -35210,130 +34466,154 @@ } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 28, + "startColumn": 35, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 40, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 40, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 60, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 73, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 81, + "endColumn": 84, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 26, "lineCount": 1 } }, @@ -35377,14 +34657,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -35498,154 +34770,146 @@ } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 46, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 31, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, @@ -35658,1330 +34922,26 @@ } }, { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 81, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportInconsistentConstructor", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 58, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, + "startColumn": 53, "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, + "startColumn": 53, "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 26, "lineCount": 1 } }, @@ -36989,47 +34949,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, + "endColumn": 16, "lineCount": 1 } }, @@ -37037,55 +34957,47 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 57, + "startColumn": 25, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 19, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 53, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, @@ -37093,23 +35005,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, + "endColumn": 26, "lineCount": 1 } }, @@ -37121,123 +35017,43 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 28, "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, @@ -37245,7 +35061,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 29, - "endColumn": 41, + "endColumn": 44, "lineCount": 1 } }, @@ -37253,63 +35069,15 @@ "code": "reportMissingParameterType", "range": { "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 48, + "endColumn": 63, "lineCount": 1 } }, @@ -37348,224 +35116,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "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": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 15, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 69, + "endColumn": 78, "lineCount": 1 } }, @@ -37628,24 +35188,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 55, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 57, + "startColumn": 61, + "endColumn": 65, "lineCount": 1 } }, @@ -37653,246 +35205,246 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 49, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 66, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, - "endColumn": 51, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 51, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 53, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 17, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 51, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 51, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 15, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 31, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 32, + "startColumn": 68, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 28, - "endColumn": 32, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 41, + "startColumn": 50, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 50, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 74, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 26, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, + "startColumn": 34, "endColumn": 49, "lineCount": 1 } @@ -37900,56 +35452,48 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 37, + "startColumn": 34, "endColumn": 49, "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 37, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 29, "lineCount": 1 } }, @@ -37957,87 +35501,79 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 52, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 55, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 61, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 51, + "startColumn": 48, + "endColumn": 57, "lineCount": 1 } }, @@ -38065,99 +35601,83 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 37, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 80, + "startColumn": 33, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 20, + "startColumn": 33, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 4, + "startColumn": 13, "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 13, + "endColumn": 31, "lineCount": 1 } }, @@ -38165,79 +35685,79 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 57, + "startColumn": 28, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 56, + "startColumn": 28, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 49, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 49, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 64, + "startColumn": 31, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 48, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 41, "lineCount": 1 } }, @@ -38245,87 +35765,87 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 64, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 54, + "startColumn": 38, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 27, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, @@ -38333,7 +35853,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 29, "lineCount": 1 } }, @@ -38341,116 +35861,116 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 37, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 39, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 55, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 61, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 58, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 42, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 61, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 61, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 17, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 20, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 28, @@ -38458,50 +35978,50 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 57, + "startColumn": 59, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 56, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 32, - "endColumn": 49, + "startColumn": 38, + "endColumn": 57, "lineCount": 1 } }, @@ -38529,6 +36049,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -38564,16 +36092,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, @@ -38601,14 +36129,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -38625,30 +36145,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -38673,59 +36169,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, + "startColumn": 59, + "endColumn": 68, "lineCount": 1 } }, @@ -38761,14 +36209,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -38777,30 +36217,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -38809,14 +36225,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -38844,24 +36252,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 66, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, @@ -38881,14 +36273,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -38961,6 +36345,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 65, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -38993,14 +36393,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -39009,14 +36401,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -39042,34 +36426,10 @@ } }, { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, @@ -39081,30 +36441,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 72, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -39121,126 +36457,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -39257,22 +36473,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39449,14 +36649,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39529,14 +36721,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39569,78 +36753,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -39668,29 +36780,45 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 44, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", "range": { "startColumn": 24, "endColumn": 43, @@ -39698,10 +36826,10 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, @@ -39729,22 +36857,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39761,14 +36873,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -39793,22 +36897,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39825,14 +36913,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -39857,22 +36937,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -39889,14 +36953,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -39905,14 +36961,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -39921,14 +36969,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -40001,14 +37041,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -40033,22 +37065,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -40088,38 +37104,6 @@ "endColumn": 30, "lineCount": 1 } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 31, - "lineCount": 1 - } } ], "./sumpy/p2e.py": [ @@ -40260,15 +37244,15 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 67, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 66, @@ -40278,8 +37262,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, @@ -40404,10 +37396,10 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, @@ -40707,30 +37699,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -41035,30 +38003,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -41390,18 +38334,18 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, @@ -41485,14 +38429,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -41501,22 +38437,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -42677,6 +39597,14 @@ "lineCount": 8 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -42853,6 +39781,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42861,6 +39797,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42869,6 +39821,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42877,6 +39837,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42885,6 +39853,30 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42893,6 +39885,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 41, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42901,6 +39901,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42909,6 +39917,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42917,6 +39933,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42925,6 +39949,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -43847,14 +40879,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -43895,14 +40919,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 24, - "endColumn": 38, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -44385,14 +41401,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -44401,22 +41409,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -44865,14 +41857,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -45097,14 +42081,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -45393,14 +42369,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -45681,14 +42649,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -46025,22 +42985,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46065,14 +43009,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46097,22 +43033,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46137,14 +43057,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -48821,334 +45733,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 7, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -50975,14 +47559,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -51143,22 +47719,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51199,14 +47759,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51239,22 +47791,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51295,14 +47831,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51351,22 +47879,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51391,22 +47903,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51431,14 +47927,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51479,14 +47967,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51559,22 +48039,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51599,14 +48063,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51655,22 +48111,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51695,14 +48135,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51751,22 +48183,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51783,14 +48199,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51863,22 +48271,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51903,14 +48295,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51959,22 +48343,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51999,14 +48367,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -52055,14 +48415,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -52079,14 +48431,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -56571,24 +52915,6 @@ "lineCount": 1 } } - ], - "./test/test_misc.py": [ - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 12, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - } ] } } \ No newline at end of file From dc983d1f69ec6d74ec935352101d6ce2cd5c8d7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 20:33:08 +0000 Subject: [PATCH 179/335] build(deps): bump actions/setup-python from 5 to 6 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50267fc6c..00760c546 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.x' - name: "Main Script" From 58892458196baa17e6b9f739c8e4b916cbfef209 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:51:03 +0300 Subject: [PATCH 180/335] feat(typing): add annotations to VectorComponentRewriter constructor --- sumpy/codegen.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 29abf02ae..f903464e5 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -549,7 +549,12 @@ def map_constant(self, expr, rec_self=None): class VectorComponentRewriter(CSECachingIdentityMapper, CallExternalRecMapper): """For names in name_whitelist, turn ``a3`` into ``a[3]``.""" - def __init__(self, name_whitelist=frozenset()): + name_whitelist: frozenset[str] + + def __init__(self, name_whitelist: frozenset[str] | None = None) -> None: + if name_whitelist is None: + name_whitelist = frozenset() + self.name_whitelist = name_whitelist def map_variable(self, expr, *args): From aff6617c491fd5ce44e2c09836cddaad01d9766c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:51:44 +0300 Subject: [PATCH 181/335] feat(typing): allow multiplying LinearPDESystemOperator with Expr --- sumpy/expansion/diff_op.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index e3d9ad074..f2127a446 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -113,7 +113,7 @@ def order(self) -> int: deg = max(deg, max(sum(ident.mi) for ident in eq)) return deg - def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: + def __mul__(self, param: Number_ish | sym.Expr) -> LinearPDESystemOperator: eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq in self.eqs: deriv_ident_to_coeff = {} From 82af5f0905a59f02708a044202bd152a6f0075f2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:52:10 +0300 Subject: [PATCH 182/335] feat(typing): add addnotations to make_sym_vector --- sumpy/symbolic.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 17aa4aa61..c3c7eaa2a 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -110,6 +110,7 @@ def _find_symbolic_backend(): # Before adding a function here, make sure it's present in both modules. Add = sym.Add Basic = sym.Basic +Expr = sym.Expr Mul = sym.Mul Pow = sym.Pow exp = sym.exp @@ -253,7 +254,7 @@ def pymbolic_real_norm_2(x): return var("sqrt")(np.dot(x, x)) -def make_sym_vector(name, components): +def make_sym_vector(name: str, components: int) -> Matrix: return sym.Matrix([sym.Symbol(f"{name}{i}") for i in range(components)]) From 43ae22858f8331646c290975e8151a45ac9ed58a Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:52:40 +0300 Subject: [PATCH 183/335] feat(typing): add annotations to get_all_variables --- sumpy/tools.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index e08226fa6..35baf4055 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -54,6 +54,8 @@ import pyopencl import pyopencl as cl + from pymbolic.primitives import Variable + from pymbolic.typing import Expression from sumpy.expansion import ExpansionBase from sumpy.kernel import Kernel, KernelArgument @@ -203,7 +205,7 @@ def map_variable(self, expr): self.vars.add(expr) -def get_all_variables(expr): +def get_all_variables(expr: Expression) -> set[Variable]: mapper = GatherAllVariables() mapper(expr) return mapper.vars From 7a13074cc16d93f67d381bae7e5edf6e1c30024a Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:53:13 +0300 Subject: [PATCH 184/335] feat(typing): add annotations to diff_derivative_coeff_dict --- sumpy/derivative_taker.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 926b09773..e7181c1e0 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -39,7 +39,7 @@ """ import logging -from typing import Any +from typing import TYPE_CHECKING import numpy as np @@ -49,6 +49,9 @@ from sumpy.tools import add_mi, add_to_sac +if TYPE_CHECKING: + import sympy as sp + logger = logging.getLogger(__name__) @@ -341,7 +344,7 @@ def diff(self, mi, q=0): # {{{ DifferentiatedExprDerivativeTaker -DerivativeCoeffDict = dict[tuple[int, ...], Any] +DerivativeCoeffDict = dict[tuple[int, ...], int | float | complex | sym.Expr] @tag_dataclass @@ -387,8 +390,10 @@ def diff(self, mi, save_intermediate=lambda x: x): # {{{ Helper functions -def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, - variable_idx, variables): +def diff_derivative_coeff_dict( + derivative_coeff_dict: DerivativeCoeffDict, + variable_idx: int, + variables: sp.Matrix) -> DerivativeCoeffDict: """Differentiate a derivative transformation dictionary given by *derivative_coeff_dict* using the variable given by **variable_idx** and return a new derivative transformation dictionary. @@ -397,15 +402,17 @@ def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, new_derivative_coeff_dict: DerivativeCoeffDict = defaultdict(lambda: 0) for mi, coeff in derivative_coeff_dict.items(): - # In the case where we have x * u.diff(x), the result should - # be x.diff(x) + x * u.diff(x, x) + # In the case where we have x * u.diff(x), the result should be + # x.diff(x) + x * u.diff(x, x) # Calculate the first term by differentiating the coefficients new_coeff = sym.sympify(coeff).diff(variables[variable_idx]) new_derivative_coeff_dict[mi] += new_coeff + # Next calculate the second term by differentiating the derivatives new_mi = list(mi) new_mi[variable_idx] += 1 new_derivative_coeff_dict[tuple(new_mi)] += coeff + return {derivative: coeff for derivative, coeff in new_derivative_coeff_dict.items() if coeff != 0} From db2529c750b06d34fd22a5325612ece324c11d16 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 20:40:04 +0300 Subject: [PATCH 185/335] feat(typing): add annotations to domains in e2e --- sumpy/e2e.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index e6bedebf9..4f5162f0a 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -387,7 +387,7 @@ def get_inner_loopy_kernel(self, result_dtype): ncoeff_src = len(self.src_expansion) ncoeff_tgt = len(self.tgt_expansion) - domains = [] + domains: list[str] = [] insns = self.get_translation_loopy_insns(result_dtype) tgt_coeffs = pymbolic.var("tgt_coeffs") for i in range(ncoeff_tgt): From 228bfdc36efc3793fbbf96132df1c977da769ce9 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 15:53:31 +0300 Subject: [PATCH 186/335] feat(typing): annotate most of kernel --- sumpy/kernel.py | 1123 ++++++++++++++++++++++++++++------------------- 1 file changed, 661 insertions(+), 462 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 3ac1e03ff..df87e27ff 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -26,31 +26,45 @@ from abc import ABC, abstractmethod from collections import defaultdict from dataclasses import dataclass -from typing import TYPE_CHECKING, ClassVar, Generic, Literal, TypeVar +from typing import ( + TYPE_CHECKING, + ClassVar, + Generic, + Literal, + TypeAlias, + TypeVar, + cast, + overload, +) import numpy as np from typing_extensions import override import loopy as lp import pymbolic.primitives as prim -from pymbolic import ArithmeticExpression, Expression, var +from pymbolic import Expression, var from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper from pymbolic.primitives import make_sym_vector from pytools import memoize_method import sumpy.symbolic as sym +from sumpy.derivative_taker import ( + DerivativeCoeffDict, + DifferentiatedExprDerivativeTaker, + ExprDerivativeTaker, + diff_derivative_coeff_dict, +) from sumpy.symbolic import SpatialConstant, pymbolic_real_norm_2 if TYPE_CHECKING: - from collections.abc import Iterable, Sequence + from collections.abc import Callable, Iterable, Sequence import sympy as sp - from sumpy.derivative_taker import ExprDerivativeTaker + from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import LinearPDESystemOperator - __doc__ = """ Kernel interface ---------------- @@ -101,6 +115,8 @@ .. autoclass:: DerivativeCounter """ +ArithmeticExpr: TypeAlias = int | float | complex | sym.Basic + @dataclass(frozen=True) class KernelArgument: @@ -109,12 +125,13 @@ class KernelArgument: """ loopy_arg: lp.KernelArgument - """A :class:`loopy.KernelArgument` instance describing the type, - name, and other features of this kernel argument when - passed to a generated piece of code.""" + """A :class:`loopy.KernelArgument` instance describing the type, name, and + other features of this kernel argument when passed to a generated piece of + code. + """ @property - def name(self): + def name(self) -> str: return self.loopy_arg.name @@ -124,9 +141,11 @@ def name(self): class Kernel(ABC): """Basic kernel interface. - .. attribute:: is_complex_valued - .. attribute:: is_translation_invariant - .. attribute:: dim + .. autoattribute:: mapper_method + .. autoattribute:: is_translation_invariant + + .. autoattribute:: dim + .. autoattribute:: is_complex_valued .. automethod:: get_base_kernel .. automethod:: replace_base_kernel @@ -140,65 +159,108 @@ class Kernel(ABC): .. automethod:: get_source_args """ - if TYPE_CHECKING: - @property - def is_complex_valued(self) -> bool: - ... - dim: int + """Dimension of the space the kernel is defined in.""" + + # TODO: Allow kernels that are not translation invariant + is_translation_invariant: ClassVar[bool] = True + """A boolean flag indicating whether the kernel is translation invariant.""" + mapper_method: ClassVar[str] + """The name of the mapper method called for the kernel.""" + + @property + @abstractmethod + def is_complex_valued(self) -> bool: + """A boolean flag indicating whether this kernel is complex valued.""" def get_base_kernel(self) -> Kernel: - """Return the kernel being wrapped by this one, or else - *self*. + """ + :returns: the kernel being wrapped by this one, or else *self*. """ return self def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: - """Return the base kernel being wrapped by this one, or else - *new_base_kernel*. + """ + :returns: the base kernel being wrapped by this one, or else + *new_base_kernel*. """ return new_base_kernel def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - """Apply some changes (such as registering function - manglers) to the kernel. Return the new kernel. + """Apply some changes (such as registering function manglers) to the kernel. + + :returns: a new :mod:`loopy` kernel with the applied changes. """ return loopy_knl - def get_code_transformer(self): - """Return a function to postprocess the :mod:`pymbolic` - expression generated from the result of - :meth:`get_expression` on the way to code generation. + def get_code_transformer(self) -> Callable[[Expression], Expression]: + """ + :returns: a function to postprocess the :mod:`pymbolic` expression + generated from the result of :meth:`get_expression` on the way to + code generation. """ return lambda expr: expr @abstractmethod - def get_expression(self, dist_vec: np.ndarray) -> sp.Expr: - r"""Return a :mod:`sympy` expression for the kernel.""" - ... + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + """ + :returns: a :mod:`sympy` expression for the kernel. + """ - def _diff(self, expr, vec, mi): - """Take the derivative of an expression + @abstractmethod + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + r""" + :returns: the PDE for the kernel as a + :class:`sumpy.expansion.diff_op.LinearPDESystemOperator` object + :math:`\mathcal{L}`, where :math:`\mathcal{L}(u) = 0` is the PDE. """ + + def _diff(self, + expr: sym.Expr, + vec: sp.Matrix, + mi: tuple[int, ...]) -> sym.Expr: + """Take the derivative of an expression.""" for i in range(self.dim): if mi[i] == 0: continue expr = expr.diff(vec[i], mi[i]) + return expr - def postprocess_at_source(self, expr, avec): + @abstractmethod + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: + """ + :returns: an :class:`~sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to + *dvec*. + """ + + @overload + def postprocess_at_source( + self, expr: sym.Expr, avec: sp.Matrix + ) -> sym.Expr: ... + + @overload + def postprocess_at_source( + self, expr: ExprDerivativeTaker, avec: sp.Matrix + ) -> DifferentiatedExprDerivativeTaker: ... + + def postprocess_at_source( + self, expr: sym.Expr | ExprDerivativeTaker, avec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place - where the vector a (something - source) is known. ("something" may be - an expansion center or a target.) + where the vector :math:`a` (something - source) is known. ("something" may be + an expansion center or a target) The typical use of this function is to apply source-variable derivatives to the kernel. """ - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - ExprDerivativeTaker, - ) - expr_dict = {(0,)*self.dim: 1} + expr_dict: DerivativeCoeffDict = {(0,)*self.dim: 1} expr_dict = self.get_derivative_coeff_dict_at_source(expr_dict) if isinstance(expr, ExprDerivativeTaker): return DifferentiatedExprDerivativeTaker(expr, expr_dict) @@ -206,144 +268,137 @@ def postprocess_at_source(self, expr, avec): result = 0 for mi, coeff in expr_dict.items(): result += coeff * self._diff(expr, avec, mi) + + assert isinstance(result, sym.Expr) return result - def postprocess_at_target(self, expr, bvec): + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... + + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place - where the vector b (target - something) is known. ("something" may be - an expansion center or a target.) + where the vector :math:`b` (target - something) is known. ("something" may + be an expansion center or a target.) The typical use of this function is to apply target-variable derivatives to the kernel. - - :arg expr: may be a :class:`sympy.core.expr.Expr` or a - :class:`sumpy.derivative_taker.DifferentiatedExprDerivativeTaker`. """ return expr - def get_derivative_coeff_dict_at_source(self, expr_dict): - r"""Get the derivative transformation of the expression at source - represented by the dictionary expr_dict which is mapping from multi-index - `mi` to coefficient `coeff`. - Expression represented by the dictionary `expr_dict` is - :math:`\sum_{mi} \frac{\partial^mi}{x^mi}G * coeff`. Returns an - expression of the same type. + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: + r"""Get the derivative transformation of the expression at the source. + + The transformation is represented by the *expr_dict* which maps from a + multi-index *mi* to a coefficient *coeff*. The Expression represented by + *expr_dict* is :math:`\sum_{mi} \frac{\partial^mi}{x^mi}G * coeff`. This function is meant to be overridden by child classes where necessary. """ return expr_dict @abstractmethod - def get_global_scaling_const(self) -> ArithmeticExpression: - r"""Return a global scaling constant of the kernel. + def get_global_scaling_const(self) -> ArithmeticExpr: + r"""A global scaling constant of the kernel. + Typically, this ensures that the kernel is scaled so that - :math:`\mathcal L(G)(x)=C\delta(x)` with a constant of 1, where - :math:`\mathcal L` is the PDE operator associated with the kernel. - Not to be confused with *rscale*, which keeps expansion - coefficients benignly scaled. + :math:`\mathcal{L}(G)(x) = C \delta(x)` with a constant of 1, where + :math:`\mathcal{L}` is the PDE operator associated with the kernel. Not + to be confused with *rscale*, which keeps expansion coefficients + benignly scaled. """ - ... def get_args(self) -> Sequence[KernelArgument]: - """Return list of :class:`KernelArgument` instances describing - extra arguments used by the kernel. + """ + :returns: list of :class:`KernelArgument` instances describing extra + arguments used by the kernel. """ return [] def get_source_args(self) -> Sequence[KernelArgument]: - """Return list of :class:`KernelArgument` instances describing - extra arguments used by kernel in picking up contributions - from point sources. + """ + :returns: list of :class:`KernelArgument` instances describing extra + arguments used by kernel in picking up contributions from point sources. """ return [] - @abstractmethod - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - ... - - @abstractmethod - def get_derivative_taker(self, dvec, rscale, sac) -> ExprDerivativeTaker: - ... - - # TODO: Allow kernels that are not translation invariant - is_translation_invariant: ClassVar[bool] = True - - mapper_method: ClassVar[str] - # }}} @dataclass(frozen=True) -class ExpressionKernel(Kernel): +class ExpressionKernel(Kernel, ABC): r""" .. autoattribute:: expression .. autoattribute:: global_scaling_const - .. autoattribute:: is_complex_valued """ + mapper_method: ClassVar[str] = "map_expression_kernel" + expression: Expression - """A :mod:`pymbolic` expression depending on - variables *d_1* through *d_N* where *N* equals *dim*. - (These variables match what is returned from - :func:`pymbolic.primitives.make_sym_vector` with - argument `"d"`.) Any variable that is not *d* or - a :class:`~sumpy.symbolic.SpatialConstant` will be - viewed as potentially spatially varying. + """A :mod:`pymbolic` expression depending on variables *d_1* through *d_N* + where *N* equals *dim*. These variables match what is returned from + :func:`pymbolic.primitives.make_sym_vector` with argument `"d"`. Any + variable that is not *d* or a :class:`~sumpy.symbolic.SpatialConstant` will + be viewed as potentially spatially varying. """ global_scaling_const: Expression - - r"""A constant :mod:`pymbolic` expression for the - global scaling of the kernel. Typically, this ensures that - the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` - with a constant of 1, where :math:`\mathcal L` is the PDE - operator associated with the kernel. Not to be confused with - *rscale*, which keeps expansion coefficients benignly scaled. + r"""A constant :mod:`pymbolic` expression for the global scaling of the + kernel. Typically, this ensures that the kernel is scaled so that + :math:`\mathcal{L}(G)(x)=C\delta(x)` with a constant of 1, where + :math:`\mathcal{L}` is the PDE operator associated with the kernel. Not to + be confused with *rscale*, which keeps expansion coefficients benignly + scaled. """ - def __repr__(self): + @override + def __str__(self) -> str: return f"ExprKnl{self.dim}D" - def get_expression(self, scaled_dist_vec): - """Return :attr:`expression` as a :class:`sumpy.symbolic.Basic`.""" - + @override + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols expr = PymbolicToSympyMapperWithSymbols()(self.expression) - if self.dim != len(scaled_dist_vec): - raise ValueError("dist_vec length does not match expected dimension") + if self.dim != len(dist_vec): + raise ValueError( + "'dist_vec' length does not match expected dimension: " + f"kernel dim is '{self.dim}' and dist_vec has length '{len(dist_vec)}'") from sumpy.symbolic import Symbol expr = expr.xreplace({ Symbol(f"d{i}"): dist_vec_i - for i, dist_vec_i in enumerate(scaled_dist_vec) + for i, dist_vec_i in enumerate(dist_vec) }) return expr - def get_global_scaling_const(self): - """Return a global scaling of the kernel as a :class:`sumpy.symbolic.Basic`. - """ - + @override + def get_global_scaling_const(self) -> ArithmeticExpr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - return PymbolicToSympyMapperWithSymbols()( - self.global_scaling_const) + return PymbolicToSympyMapperWithSymbols()(self.global_scaling_const) - mapper_method: ClassVar[str] = "map_expression_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ - from sumpy.derivative_taker import ExprDerivativeTaker + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: return ExprDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): - r""" - Returns the PDE for the kernel as a - :class:`sumpy.expansion.diff_op.LinearPDESystemOperator` object `L` - where `L(u) = 0` is the PDE. - """ + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: raise NotImplementedError @@ -368,7 +423,9 @@ def is_complex_valued(self) -> bool: # {{{ PDE kernels class LaplaceKernel(ExpressionKernel): - def __init__(self, dim: int): + mapper_method: ClassVar[str] = "map_laplace_kernel" + + def __init__(self, dim: int) -> None: # See (Kress LIE, Thm 6.2) for scaling if dim == 2: r = pymbolic_real_norm_2(make_sym_vector("d", dim)) @@ -379,39 +436,40 @@ def __init__(self, dim: int): expr = 1/r scaling = 1/(4*var("pi")) else: - raise NotImplementedError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + super().__init__(dim, expression=expr, global_scaling_const=scaling) @property @override def is_complex_valued(self) -> bool: return False - def __repr__(self): + @override + def __str__(self) -> str: return f"LapKnl{self.dim}D" - mapper_method: ClassVar[str] = "map_laplace_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import LaplaceDerivativeTaker return LaplaceDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) class BiharmonicKernel(ExpressionKernel): - def __init__(self, dim: int): + mapper_method: ClassVar[str] = "map_biharmonic_kernel" + + def __init__(self, dim: int) -> None: r = pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: # Ref: Farkas, Peter. Mathematical foundations for fast algorithms @@ -427,33 +485,31 @@ def __init__(self, dim: int): expr = r scaling = -1/(8*var("pi")) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + super().__init__(dim, expression=expr, global_scaling_const=scaling) @property @override def is_complex_valued(self) -> bool: return False - def __repr__(self): + @override + def __str__(self) -> str: return f"BiharmKnl{self.dim}D" - mapper_method: ClassVar[str] = "map_biharmonic_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import RadialDerivativeTaker - return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, - sac) + return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) @@ -461,15 +517,18 @@ def get_pde_as_diff_op(self): @dataclass(frozen=True) class HelmholtzKernel(ExpressionKernel): + mapper_method: ClassVar[str] = "map_helmholtz_kernel" + helmholtz_k_name: str - """ - The argument name to use for the Helmholtz - parameter when generating functions to evaluate this kernel. + """The argument name to use for the Helmholtz parameter when generating + functions to evaluate this kernel. """ allow_evanescent: bool - def __init__(self, dim: int, helmholtz_k_name: str = "k", - allow_evanescent: bool = False): + def __init__(self, + dim: int, + helmholtz_k_name: str = "k", + allow_evanescent: bool = False) -> None: k = SpatialConstant(helmholtz_k_name) # Guard against code using the old positional interface. @@ -484,13 +543,9 @@ def __init__(self, dim: int, helmholtz_k_name: str = "k", expr = var("exp")(var("I")*k*r)/r scaling = 1/(4*var("pi")) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "helmholtz_k_name", helmholtz_k_name) object.__setattr__(self, "allow_evanescent", allow_evanescent) @@ -500,46 +555,52 @@ def __init__(self, dim: int, helmholtz_k_name: str = "k", def is_complex_valued(self) -> bool: return True - def __repr__(self): + @override + def __str__(self) -> str: return f"HelmKnl{self.dim}D({self.helmholtz_k_name})" - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: from sumpy.codegen import register_bessel_callables return register_bessel_callables(loopy_knl) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: k_dtype = np.complex128 if self.allow_evanescent else np.float64 return [ KernelArgument( loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype), )] - mapper_method: ClassVar[str] = "map_helmholtz_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) k = sym.Symbol(self.helmholtz_k_name) - return (laplacian(w) + k**2 * w) + return laplacian(w) + k**2 * w @dataclass(frozen=True) class YukawaKernel(ExpressionKernel): + mapper_method: ClassVar[str] = "map_yukawa_kernel" + yukawa_lambda_name: str + """The argument name to use for the Yukawa parameter when generating + functions to evaluate this kernel. + """ - def __init__(self, dim: int, yukawa_lambda_name: str = "lam"): - """ - :arg yukawa_lambda_name: The argument name to use for the Yukawa - parameter when generating functions to evaluate this kernel. - """ + def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: lam = SpatialConstant(yukawa_lambda_name) # NOTE: The Yukawa kernel is given by [1] @@ -567,14 +628,9 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam"): scaling = -1/(4 * var("pi")**2) else: - raise RuntimeError("unsupported dimensionality") - - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + raise NotImplementedError(f"unsupported dimension: '{dim}'") + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "yukawa_lambda_name", yukawa_lambda_name) @property @@ -583,74 +639,78 @@ def is_complex_valued(self) -> bool: # FIXME return True - def __repr__(self): + @override + def __str__(self) -> str: return f"YukKnl{self.dim}D({self.yukawa_lambda_name})" - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: from sumpy.codegen import register_bessel_callables return register_bessel_callables(loopy_knl) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.ValueArg(self.yukawa_lambda_name, np.float64), )] - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) lam = sym.Symbol(self.yukawa_lambda_name) - return (laplacian(w) - lam**2 * w) - - mapper_method: ClassVar[str] = "map_yukawa_kernel" + return laplacian(w) - lam**2 * w @dataclass(frozen=True) class ElasticityKernel(ExpressionKernel): + mapper_method: ClassVar[str] = "map_elasticity_kernel" + icomp: int + """Component index for the kernel.""" jcomp: int - viscosity_mu: ArithmeticExpression - poisson_ratio: ArithmeticExpression + """Component index for the kernel.""" + + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ + poisson_ratio: float | SpatialConstant + r"""The argument name to use for Poisson's ratio :math:`\nu` when generating + functions to evaluate this kernel. Can also be a numeric value. + """ def __new__(cls, - dim: int, - icomp: int, - jcomp: int, - viscosity_mu: str | ArithmeticExpression = "mu", - poisson_ratio: str | ArithmeticExpression = "nu", - ): + dim: int, icomp: int, jcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu", + ) -> ElasticityKernel: if poisson_ratio == 0.5: - instance = super().__new__(StokesletKernel) + return super().__new__(StokesletKernel) else: - instance = super().__new__(cls) - return instance + return super().__new__(cls) def __init__(self, - dim: int, - icomp: int, - jcomp: int, - viscosity_mu: str | ArithmeticExpression = "mu", - poisson_ratio: str | ArithmeticExpression = "nu", - ): - r""" - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` when generating functions to - evaluate this kernel. Can also be a numeric value. - :arg poisson_ratio: The argument name to use for - Poisson's ratio :math:`\nu` when generating functions to - evaluate this kernel. Can also be a numeric value. - """ + dim: int, icomp: int, jcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu") -> None: if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: mu = viscosity_mu + if isinstance(poisson_ratio, str): nu = SpatialConstant(poisson_ratio) else: @@ -679,18 +739,14 @@ def __init__(self, scaling = -1/(16*var("pi")*(1 - nu)*mu) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + super().__init__(dim, expression=expr, global_scaling_const=scaling) - object.__setattr__(self, "viscosity_mu", mu) - object.__setattr__(self, "poisson_ratio", nu) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "poisson_ratio", nu) @override def __reduce__(self): @@ -704,32 +760,39 @@ def is_complex_valued(self) -> bool: return False @override - def __repr__(self): - return f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" + def __str__(self) -> str: + return ( + f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu}, {self.poisson_ratio})") @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.viscosity_mu) - res = [] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + self.get_source_args() + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) + + return [*args, *self.get_source_args()] @memoize_method - def get_source_args(self): + @override + def get_source_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.poisson_ratio) - res = [] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - mapper_method: ClassVar[str] = "map_elasticity_kernel" + return args @override - def get_pde_as_diff_op(self): + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) @@ -740,43 +803,52 @@ def __new__(cls, dim: int, icomp: int, jcomp: int, - viscosity_mu: str | ArithmeticExpression = "mu", - poisson_ratio: str | ArithmeticExpression | None = None, - ): + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant | None = None, + ) -> StokesletKernel: return object.__new__(cls) def __init__(self, dim: int, icomp: int, jcomp: int, - viscosity_mu: str | ArithmeticExpression = "mu", - poisson_ratio: str | ArithmeticExpression | None = None, - ): + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant | None = None) -> None: if poisson_ratio is None: poisson_ratio = 0.5 + if poisson_ratio != 0.5: - raise ValueError("StokesletKernel must have a Poisson ratio of 0.5") + raise ValueError( + "'StokesletKernel' must have a Poisson ratio of 0.5: " + f"got '{poisson_ratio}'") super().__init__(dim, icomp, jcomp, viscosity_mu, poisson_ratio) @override - def __repr__(self): - return f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" + def __str__(self) -> str: + return ( + f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu}, {self.poisson_ratio})") @dataclass(frozen=True) class StressletKernel(ExpressionKernel): + mapper_method: ClassVar[str] = "map_stresslet_kernel" + icomp: int + """Component index for the kernel.""" jcomp: int + """Component index for the kernel.""" kcomp: int - viscosity_mu: SpatialConstant + """Component index for the kernel.""" + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ - def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): - r""" - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` the then generating functions to - evaluate this kernel. - """ + def __init__(self, + dim: int, icomp: int, jcomp: int, kcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu") -> None: # mu is unused but kept for consistency with the Stokeslet. if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) @@ -800,70 +872,75 @@ def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): scaling = 3/(4*var("pi")) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) object.__setattr__(self, "kcomp", kcomp) object.__setattr__(self, "viscosity_mu", mu) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) - @property @override def is_complex_valued(self) -> bool: return False - def __repr__(self): - return f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + @override + def __str__(self) -> str: + return ( + f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + f"({self.viscosity_mu})") @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.viscosity_mu) return [ KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) for v in variables] - mapper_method: ClassVar[str] = "map_stresslet_kernel" - - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) +@dataclass(frozen=True) class LineOfCompressionKernel(ExpressionKernel): """A kernel for the line of compression or dilatation of constant strength - along the axis "axis" from zero to negative infinity. This is used for the - explicit solution to half-space Elasticity problem. See [1] for details. + along the axis "axis" from zero to negative infinity. - [1]: Mindlin, R.: Force at a Point in the Interior of a Semi-Infinite Solid - https://doi.org/10.1063/1.1745385 + This is used for the explicit solution to half-space Elasticity problem. + See [Mindlin1936]_ for details. + + .. [Mindlin1936] R. D. Mindlin (1936). + *Force at a Point in the Interior of a Semi-Infinite Solid*. + Physics. 7 (5): 195-202. + `doi:10.1063/1.1745385 `__. """ + + mapper_method: ClassVar[str] = "map_line_of_compression_kernel" + axis: int - viscosity_mu: SpatialConstant - poisson_ratio: SpatialConstant + """Axis number (defaulting to 2 for the z axis).""" + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ + poisson_ratio: float | SpatialConstant + r"""The argument name to use for Poisson's ratio :math:`\nu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ def __init__(self, dim: int = 3, axis: int = 2, - viscosity_mu: str | SpatialConstant = "mu", - poisson_ratio: str | SpatialConstant = "nu" - ): - r""" - :arg axis: axis number defaulting to 2 for the z axis. - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` when generating functions to - evaluate this kernel. Can also be a numeric value. - :arg poisson_ratio: The argument name to use for - Poisson's ratio :math:`\nu` when generating functions to - evaluate this kernel. Can also be a numeric value. - """ + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu" + ) -> None: if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: @@ -880,39 +957,39 @@ def __init__(self, expr = d[axis] * var("log")(r + d[axis]) - r scaling = (1 - 2*nu)/(4*var("pi")*mu) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - self.viscosity_mu = mu - self.poisson_ratio = nu - self.axis = axis + super().__init__(dim, expression=expr, global_scaling_const=scaling) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) + object.__setattr__(self, "axis", axis) + object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "poisson_ratio", nu) @property @override def is_complex_valued(self) -> bool: return False - def __repr__(self): + @override + def __str__(self) -> str: return f"LineOfCompressionKnl{self.dim}D_{self.axis}" @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables - variables = list(get_all_variables(self.viscosity_mu)) \ - + list(get_all_variables(self.poisson_ratio)) - res = [] + variables = [ + *get_all_variables(self.viscosity_mu), + *get_all_variables(self.poisson_ratio)] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - mapper_method: ClassVar[str] = "map_line_of_compression_kernel" + return args - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) @@ -927,46 +1004,77 @@ def get_pde_as_diff_op(self): class KernelWrapper(Kernel, ABC): inner_kernel: Kernel - def __init__(self, inner_kernel: Kernel): + def __init__(self, inner_kernel: Kernel) -> None: Kernel.__init__(self, inner_kernel.dim) object.__setattr__(self, "inner_kernel", inner_kernel) - def get_base_kernel(self): + @property + @override + def is_complex_valued(self) -> bool: + return self.inner_kernel.is_complex_valued + + @override + def get_base_kernel(self) -> Kernel: return self.inner_kernel.get_base_kernel() - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: return self.inner_kernel.prepare_loopy_kernel(loopy_knl) - @property - def is_complex_valued(self): - return self.inner_kernel.is_complex_valued - - def get_expression(self, scaled_dist_vec): - return self.inner_kernel.get_expression(scaled_dist_vec) + @override + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + return self.inner_kernel.get_expression(dist_vec) - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: return self.inner_kernel.get_derivative_coeff_dict_at_source(expr_dict) - def postprocess_at_target(self, expr, bvec): + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... + + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: return self.inner_kernel.postprocess_at_target(expr, bvec) - def get_global_scaling_const(self): + @override + def get_global_scaling_const(self) -> ArithmeticExpr: return self.inner_kernel.get_global_scaling_const() - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: return self.inner_kernel.get_code_transformer() - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return self.inner_kernel.get_args() - def get_source_args(self): + @override + def get_source_args(self) -> Sequence[KernelArgument]: return self.inner_kernel.get_source_args() - def replace_base_kernel(self, new_base_kernel): - raise NotImplementedError("replace_base_kernel is not implemented " - "for this wrapper.") + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + raise NotImplementedError( + f"'replace_base_kernel' is not implemented for '{type(self).__name__}'") - def get_derivative_taker(self, dvec, rscale, sac): + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: return self.inner_kernel.get_derivative_taker(dvec, rscale, sac) # }}} @@ -979,19 +1087,33 @@ class DerivativeBase(KernelWrapper, ABC): def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return self.inner_kernel.get_pde_as_diff_op() + @abstractmethod + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + """Replace the inner kernel of this wrapper. + + This is essentially the same as :meth:`Kernel.replace_base_kernel`, but it does + not recurse. + """ + @dataclass(frozen=True) class AxisSourceDerivative(DerivativeBase): + mapper_method: ClassVar[str] = "map_axis_source_derivative" + axis: int - def __init__(self, axis: int, inner_kernel: Kernel): + def __init__(self, axis: int, inner_kernel: Kernel) -> None: super().__init__(inner_kernel) object.__setattr__(self, "axis", axis) - def __str__(self): + @override + def __str__(self) -> str: return f"d/dy{self.axis} {self.inner_kernel}" - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: expr_dict = self.inner_kernel.get_derivative_coeff_dict_at_source( expr_dict) result = {} @@ -1001,75 +1123,93 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): result[tuple(new_mi)] = -coeff return result - def replace_base_kernel(self, new_base_kernel): + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) - def replace_inner_kernel(self, new_inner_kernel): + @override + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: return type(self)(self.axis, new_inner_kernel) - mapper_method: ClassVar[str] = "map_axis_source_derivative" - @dataclass(frozen=True) class AxisTargetDerivative(DerivativeBase): + mapper_method: ClassVar[str] = "map_axis_target_derivative" target_array_name: ClassVar[str] = "targets" axis: int - def __init__(self, axis: int, inner_kernel: Kernel): + def __init__(self, axis: int, inner_kernel: Kernel) -> None: super().__init__(inner_kernel) object.__setattr__(self, "axis", axis) @override - def __str__(self): + def __str__(self) -> str: return f"d/dx{self.axis} {self.inner_kernel}" - def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... - target_vec = make_sympy_vector(self.target_array_name, self.dim) + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) # bvec = tgt - ctr - expr = self.inner_kernel.postprocess_at_target(expr, bvec) - if isinstance(expr, DifferentiatedExprDerivativeTaker): - transformation = diff_derivative_coeff_dict(expr.derivative_coeff_dict, + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) + if isinstance(inner_expr, DifferentiatedExprDerivativeTaker): + transformation = diff_derivative_coeff_dict( + inner_expr.derivative_coeff_dict, self.axis, target_vec) - return DifferentiatedExprDerivativeTaker(expr.taker, transformation) + return DifferentiatedExprDerivativeTaker(inner_expr.taker, transformation) else: # Since `bvec` and `tgt` are two different symbolic variables # need to differentiate by both to get the correct answer - return expr.diff(bvec[self.axis]) + expr.diff(target_vec[self.axis]) + return (inner_expr.diff(bvec[self.axis]) + + inner_expr.diff(target_vec[self.axis])) - def replace_base_kernel(self, new_base_kernel): + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) - def replace_inner_kernel(self, new_inner_kernel): + @override + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: return type(self)(self.axis, new_inner_kernel) - mapper_method: ClassVar[str] = "map_axis_target_derivative" - class _VectorIndexAdder(CSECachingMapperMixin[Expression, []], IdentityMapper[[]]): - def __init__(self, vec_name, additional_indices): + vec_name: str + additional_indices: tuple[Expression, ...] + + def __init__(self, + vec_name: str, + additional_indices: tuple[Expression, ...]) -> None: self.vec_name = vec_name self.additional_indices = additional_indices - def map_subscript(self, expr): + @override + def map_subscript(self, expr: prim.Subscript) -> Expression: from pymbolic.primitives import CommonSubexpression, cse_scope - if (expr.aggregate.name == self.vec_name - and isinstance(expr.index, int)): + name = getattr(expr.aggregate, "name", None) + + if name == self.vec_name and isinstance(expr.index, int): return CommonSubexpression( expr.aggregate[(expr.index, *self.additional_indices)], prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr) + @override def map_common_subexpression_uncached(self, expr: prim.CommonSubexpression) -> Expression: result = self.rec(expr.child) @@ -1083,78 +1223,94 @@ def map_common_subexpression_uncached(self, @dataclass(frozen=True) class DirectionalDerivative(DerivativeBase): directional_kind: ClassVar[Literal["src", "tgt"]] - dir_vec_name: str - def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None): + def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None) -> None: if dir_vec_name is None: dir_vec_name = f"{self.directional_kind}_derivative_dir" KernelWrapper.__init__(self, inner_kernel) object.__setattr__(self, "dir_vec_name", dir_vec_name) - def replace_base_kernel(self, new_base_kernel): - return type(self)(self.inner_kernel.replace_base_kernel(new_base_kernel), + @override + def __str__(self) -> str: + d = "y" if self.directional_kind == "src" else "x" + return fr"{self.dir_vec_name}·∇_{d} {self.inner_kernel}" + + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + return type(self)( + self.inner_kernel.replace_base_kernel(new_base_kernel), dir_vec_name=self.dir_vec_name) @override - def __str__(self): - return r"{}·∇_{} {}".format( - self.dir_vec_name, - "y" if self.directional_kind == "src" else "x", - self.inner_kernel) + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + return type(self)(new_inner_kernel, dir_vec_name=self.dir_vec_name) class DirectionalTargetDerivative(DirectionalDerivative): + mapper_method: ClassVar[str] = "map_directional_target_derivative" + directional_kind: ClassVar[Literal["src", "tgt"]] = "tgt" - target_array_name = "targets" + target_array_name: ClassVar[str] = "targets" @override - def get_code_transformer(self): + def get_code_transformer(self) -> Callable[[Expression], Expression]: from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.dir_vec_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.dir_vec_name, (Variable("itgt"),)) + vcr = VectorComponentRewriter(frozenset([self.dir_vec_name])) + via = _VectorIndexAdder(self.dir_vec_name, (prim.Variable("itgt"),)) inner_transform = self.inner_kernel.get_code_transformer() - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner_transform(expr))) return transform - def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector - dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) - target_vec = make_sympy_vector(self.target_array_name, self.dim) + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... + + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + dir_vec = sym.make_sym_vector(self.dir_vec_name, self.dim) + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) - expr = self.inner_kernel.postprocess_at_target(expr, bvec) + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) # bvec = tgt - center - if not isinstance(expr, DifferentiatedExprDerivativeTaker): + if not isinstance(inner_expr, DifferentiatedExprDerivativeTaker): result = 0 for axis in range(self.dim): # Since `bvec` and `tgt` are two different symbolic variables # need to differentiate by both to get the correct answer - result += (expr.diff(bvec[axis]) + expr.diff(target_vec[axis])) \ - * dir_vec[axis] + result += ( + (inner_expr.diff(bvec[axis]) + inner_expr.diff(target_vec[axis])) + * dir_vec[axis]) + + assert isinstance(result, sym.Expr) return result - new_transformation = defaultdict(lambda: 0) + new_transformation: DerivativeCoeffDict = defaultdict(lambda: 0) for axis in range(self.dim): axis_transformation = diff_derivative_coeff_dict( - expr.derivative_coeff_dict, axis, target_vec) + inner_expr.derivative_coeff_dict, axis, target_vec) for mi, coeff in axis_transformation.items(): new_transformation[mi] += coeff * dir_vec[axis] - return DifferentiatedExprDerivativeTaker(expr.taker, - dict(new_transformation)) + return DifferentiatedExprDerivativeTaker( + inner_expr.taker, dict(new_transformation)) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.GlobalArg( @@ -1167,29 +1323,32 @@ def get_args(self): *self.inner_kernel.get_args() ] - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method: ClassVar[str] = "map_directional_target_derivative" - class DirectionalSourceDerivative(DirectionalDerivative): + mapper_method: ClassVar[str] = "map_directional_source_derivative" directional_kind: ClassVar[Literal["src", "tgt"]] = "src" - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: inner = self.inner_kernel.get_code_transformer() from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.dir_vec_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.dir_vec_name, (Variable("isrc"),)) + vcr = VectorComponentRewriter(frozenset([self.dir_vec_name])) + via = _VectorIndexAdder(self.dir_vec_name, (prim.Variable("isrc"),)) - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner(expr))) return transform - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: from sumpy.symbolic import make_sym_vector as make_sympy_vector dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) @@ -1197,15 +1356,17 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): expr_dict) # avec = center-src -> minus sign from chain rule - result = defaultdict(lambda: 0) + result: DerivativeCoeffDict = defaultdict(lambda: 0) for mi, coeff in expr_dict.items(): for axis in range(self.dim): new_mi = list(mi) new_mi[axis] += 1 result[tuple(new_mi)] += -coeff * dir_vec[axis] - return result - def get_source_args(self): + return dict(result) + + @override + def get_source_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.GlobalArg( @@ -1216,68 +1377,70 @@ def get_source_args(self): ), *self.inner_kernel.get_source_args()] - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method: ClassVar[str] = "map_directional_source_derivative" - class TargetPointMultiplier(KernelWrapper): """Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` where :math:`x, y` are targets and sources respectively. """ - axis: int - + mapper_method: ClassVar[str] = "map_target_point_multiplier" target_array_name: ClassVar[str] = "targets" - def __init__(self, axis, inner_kernel): + axis: int + + def __init__(self, axis: int, inner_kernel: Kernel) -> None: KernelWrapper.__init__(self, inner_kernel) self.axis = axis - def __str__(self): + @override + def __str__(self) -> str: return f"x{self.axis} {self.inner_kernel}" - def replace_base_kernel(self, new_base_kernel): - return type(self)(self.axis, - self.inner_kernel.replace_base_kernel(new_base_kernel)) + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... - def replace_inner_kernel(self, new_inner_kernel): - return type(self)(self.axis, new_inner_kernel) + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... - def postprocess_at_target(self, expr, avec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - ExprDerivativeTaker, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector - - expr = self.inner_kernel.postprocess_at_target(expr, avec) - target_vec = make_sympy_vector(self.target_array_name, self.dim) + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) zeros = tuple([0]*self.dim) - mult = target_vec[self.axis] - - if isinstance(expr, DifferentiatedExprDerivativeTaker): - transform = {mi: coeff * mult for mi, coeff in - expr.derivative_coeff_dict.items()} - return DifferentiatedExprDerivativeTaker(expr.taker, transform) - elif isinstance(expr, ExprDerivativeTaker): - return DifferentiatedExprDerivativeTaker({zeros: mult}) + mult = cast("sym.Symbol", target_vec[self.axis]) + + if isinstance(inner_expr, DifferentiatedExprDerivativeTaker): + transform: DerivativeCoeffDict = { + mi: coeff * mult for mi, coeff in + inner_expr.derivative_coeff_dict.items()} + + return DifferentiatedExprDerivativeTaker(inner_expr.taker, transform) + elif isinstance(inner_expr, ExprDerivativeTaker): + return DifferentiatedExprDerivativeTaker(expr.orig_expr, {zeros: mult}) else: - return mult * expr + return mult * inner_expr @override - def get_code_transformer(self): + def get_code_transformer(self) -> Callable[[Expression], Expression]: from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.target_array_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.target_array_name, (Variable("itgt"),)) + vcr = VectorComponentRewriter(frozenset([self.target_array_name])) + via = _VectorIndexAdder(self.target_array_name, (prim.Variable("itgt"),)) inner_transform = self.inner_kernel.get_code_transformer() - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner_transform(expr))) return transform @@ -1286,7 +1449,13 @@ def transform(expr): def get_pde_as_diff_op(self) -> LinearPDESystemOperator: raise NotImplementedError("no PDE is known") - mapper_method: ClassVar[str] = "map_target_point_multiplier" + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + return type(self)(self.axis, + self.inner_kernel.replace_base_kernel(new_base_kernel)) + + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + return type(self)(self.axis, new_inner_kernel) # }}} @@ -1299,13 +1468,16 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: class KernelMapper(Generic[ResultT]): def rec(self, kernel: Kernel) -> ResultT: try: - method = getattr(self, kernel.mapper_method) + method = cast( + "Callable[[Kernel], ResultT]", + getattr(self, kernel.mapper_method)) except AttributeError as err: raise RuntimeError(f"{type(self)} cannot handle {type(kernel)}") from err else: return method(kernel) - __call__ = rec + def __call__(self, kernel: Kernel) -> ResultT: + return self.rec(kernel) class KernelCombineMapper(KernelMapper[ResultT], ABC): @@ -1313,17 +1485,29 @@ class KernelCombineMapper(KernelMapper[ResultT], ABC): def combine(self, values: Iterable[ResultT]) -> ResultT: raise NotImplementedError - def map_axis_target_derivative(self, kernel): + def map_axis_target_derivative( + self, kernel: AxisTargetDerivative) -> ResultT: return self.rec(kernel.inner_kernel) - map_directional_target_derivative = map_axis_target_derivative - map_directional_source_derivative = map_axis_target_derivative - map_axis_source_derivative = map_axis_target_derivative - map_target_point_multiplier = map_axis_target_derivative + def map_axis_source_derivative( + self, kernel: AxisSourceDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) + + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) + + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) + + def map_target_point_multiplier( + self, kernel: TargetPointMultiplier) -> ResultT: + return self.rec(kernel.inner_kernel) class KernelIdentityMapper(KernelMapper[Kernel]): - def map_expression_kernel(self, kernel): + def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: return kernel map_laplace_kernel = map_expression_kernel @@ -1334,42 +1518,55 @@ def map_expression_kernel(self, kernel): map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel - def map_axis_target_derivative(self, kernel): + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - map_axis_source_derivative = map_axis_target_derivative - map_target_point_multiplier = map_axis_target_derivative + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: + return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) + + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: + return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_directional_target_derivative(self, kernel): - return type(kernel)( - self.rec(kernel.inner_kernel), - kernel.dir_vec_name) + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> Kernel: + return type(kernel)(self.rec(kernel.inner_kernel), + dir_vec_name=kernel.dir_vec_name) - map_directional_source_derivative = map_directional_target_derivative + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> Kernel: + return type(kernel)(self.rec(kernel.inner_kernel), + dir_vec_name=kernel.dir_vec_name) class AxisSourceDerivativeRemover(KernelIdentityMapper): - def map_axis_source_derivative(self, kernel): + @override + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class AxisTargetDerivativeRemover(KernelIdentityMapper): - def map_axis_target_derivative(self, kernel): + @override + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class TargetDerivativeRemover(AxisTargetDerivativeRemover): - def map_directional_target_derivative(self, kernel): + @override + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class SourceDerivativeRemover(AxisSourceDerivativeRemover): - def map_directional_source_derivative(self, kernel): + @override + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class TargetTransformationRemover(TargetDerivativeRemover): - def map_target_point_multiplier(self, kernel): + @override + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: return self.rec(kernel.inner_kernel) @@ -1377,10 +1574,11 @@ def map_target_point_multiplier(self, kernel): class DerivativeCounter(KernelCombineMapper[int]): - def combine(self, values): - return max(values) + @override + def combine(self, values: Iterable[int]) -> int: + return sum(values) - def map_expression_kernel(self, kernel): + def map_expression_kernel(self, kernel: ExpressionKernel) -> int: return 0 map_laplace_kernel = map_expression_kernel @@ -1390,8 +1588,9 @@ def map_expression_kernel(self, kernel): map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel - def map_axis_target_derivative(self, kernel): - return 1 + self.rec(kernel.inner_kernel) + @override + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: + return self.combine([1, self.rec(kernel.inner_kernel)]) map_directional_target_derivative = map_axis_target_derivative map_directional_source_derivative = map_axis_target_derivative From ba2aeb3ed82361f5f9d006f8eb309d1ac0450b57 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 9 Sep 2025 16:30:49 +0300 Subject: [PATCH 187/335] docs: improve kernel docs --- doc/conf.py | 9 ++-- sumpy/kernel.py | 135 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 136 insertions(+), 8 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 852bbd15a..f54cc4146 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -2,8 +2,7 @@ from urllib.request import urlopen -_conf_url = \ - "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py" +_conf_url = "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py" with urlopen(_conf_url) as _inf: exec(compile(_inf.read(), _conf_url, "exec"), globals()) @@ -30,9 +29,13 @@ ] sphinxconfig_missing_reference_aliases = { + # sympy + "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", # pymbolic - "Expression": "obj:pymbolic.typing.Expression", "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", + "Expression": "obj:pymbolic.typing.Expression", + # sumpy + "ArithmeticExpr": "obj:sumpy.kernel.ArithmeticExpr", } diff --git a/sumpy/kernel.py b/sumpy/kernel.py index df87e27ff..12d390ad9 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -69,25 +69,46 @@ Kernel interface ---------------- -.. autoclass:: Kernel +.. autoclass:: ArithmeticExpr + .. autoclass:: KernelArgument +.. autoclass:: Kernel + :show-inheritance: Symbolic kernels ---------------- .. autoclass:: ExpressionKernel + :show-inheritance: + :members: mapper_method PDE kernels ----------- .. autoclass:: LaplaceKernel + :show-inheritance: + :members: mapper_method .. autoclass:: BiharmonicKernel + :show-inheritance: + :members: mapper_method .. autoclass:: HelmholtzKernel + :show-inheritance: + :members: mapper_method .. autoclass:: YukawaKernel + :show-inheritance: + :members: mapper_method .. autoclass:: StokesletKernel + :show-inheritance: + :members: mapper_method .. autoclass:: StressletKernel + :show-inheritance: + :members: mapper_method .. autoclass:: ElasticityKernel + :show-inheritance: + :members: mapper_method .. autoclass:: LineOfCompressionKernel + :show-inheritance: + :members: mapper_method Derivatives ----------- @@ -97,22 +118,50 @@ .. autoclass:: DerivativeBase .. autoclass:: AxisTargetDerivative + :show-inheritance: + :undoc-members: + :members: mapper_method,target_array_name .. autoclass:: AxisSourceDerivative + :show-inheritance: + :members: mapper_method +.. autoclass:: DirectionalDerivative + :show-inheritance: + :members: directional_kind .. autoclass:: DirectionalSourceDerivative + :show-inheritance: + :members: mapper_method,directional_kind .. autoclass:: DirectionalTargetDerivative + :show-inheritance: + :undoc-members: + :members: mapper_method,directional_kind,target_array_name Transforming kernels -------------------- +.. autoclass:: TargetPointMultiplier + :undoc-members: + :members: mapper_method,target_array_name + +.. autoclass:: ResultT + .. autoclass:: KernelMapper + :show-inheritance: .. autoclass:: KernelCombineMapper + :show-inheritance: .. autoclass:: KernelIdentityMapper + :show-inheritance: .. autoclass:: AxisSourceDerivativeRemover + :show-inheritance: .. autoclass:: AxisTargetDerivativeRemover + :show-inheritance: .. autoclass:: SourceDerivativeRemover + :show-inheritance: .. autoclass:: TargetDerivativeRemover -.. autoclass:: TargetPointMultiplier + :show-inheritance: +.. autoclass:: TargetTransformationRemover + :show-inheritance: .. autoclass:: DerivativeCounter + :show-inheritance: """ ArithmeticExpr: TypeAlias = int | float | complex | sym.Basic @@ -145,7 +194,7 @@ class Kernel(ABC): .. autoattribute:: is_translation_invariant .. autoattribute:: dim - .. autoattribute:: is_complex_valued + .. autoproperty:: is_complex_valued .. automethod:: get_base_kernel .. automethod:: replace_base_kernel @@ -517,6 +566,11 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True) class HelmholtzKernel(ExpressionKernel): + """ + .. autoattribute:: helmholtz_k_name + .. autoattribute:: allow_evanescent + """ + mapper_method: ClassVar[str] = "map_helmholtz_kernel" helmholtz_k_name: str @@ -593,6 +647,10 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True) class YukawaKernel(ExpressionKernel): + """ + .. autoattribute:: yukawa_lambda_name + """ + mapper_method: ClassVar[str] = "map_yukawa_kernel" yukawa_lambda_name: str @@ -676,6 +734,12 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True) class ElasticityKernel(ExpressionKernel): + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: viscosity_mu + .. autoattribute:: poisson_ratio + """ mapper_method: ClassVar[str] = "map_elasticity_kernel" icomp: int @@ -799,6 +863,12 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True) class StokesletKernel(ElasticityKernel): + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: viscosity_mu + """ + def __new__(cls, dim: int, icomp: int, @@ -833,6 +903,12 @@ def __str__(self) -> str: @dataclass(frozen=True) class StressletKernel(ExpressionKernel): + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: kcomp + .. autoattribute:: viscosity_mu + """ mapper_method: ClassVar[str] = "map_stresslet_kernel" icomp: int @@ -920,6 +996,10 @@ class LineOfCompressionKernel(ExpressionKernel): *Force at a Point in the Interior of a Semi-Infinite Solid*. Physics. 7 (5): 195-202. `doi:10.1063/1.1745385 `__. + + .. autoattribute:: axis + .. autoattribute:: viscosity_mu + .. autoattribute:: poisson_ratio """ mapper_method: ClassVar[str] = "map_line_of_compression_kernel" @@ -1003,6 +1083,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True) class KernelWrapper(Kernel, ABC): inner_kernel: Kernel + """The kernel that is being wrapped (to take a derivative of, etc.).""" def __init__(self, inner_kernel: Kernel) -> None: Kernel.__init__(self, inner_kernel.dim) @@ -1083,6 +1164,12 @@ def get_derivative_taker( # {{{ derivatives class DerivativeBase(KernelWrapper, ABC): + """Bases: :class:`Kernel` + + .. autoattribute:: inner_kernel + .. automethod:: replace_inner_kernel + """ + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return self.inner_kernel.get_pde_as_diff_op() @@ -1098,9 +1185,14 @@ def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: @dataclass(frozen=True) class AxisSourceDerivative(DerivativeBase): + """ + .. autoattribute:: axis + """ + mapper_method: ClassVar[str] = "map_axis_source_derivative" axis: int + """Direction axis for the source derivative.""" def __init__(self, axis: int, inner_kernel: Kernel) -> None: super().__init__(inner_kernel) @@ -1135,6 +1227,10 @@ def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: @dataclass(frozen=True) class AxisTargetDerivative(DerivativeBase): + """ + .. autoattribute:: axis + """ + mapper_method: ClassVar[str] = "map_axis_target_derivative" target_array_name: ClassVar[str] = "targets" @@ -1222,8 +1318,14 @@ def map_common_subexpression_uncached(self, @dataclass(frozen=True) class DirectionalDerivative(DerivativeBase): + """ + .. autoattribute:: dir_vec_name + """ directional_kind: ClassVar[Literal["src", "tgt"]] + """The kind of this directional derivative (can only be a source or target).""" + dir_vec_name: str + """Name of the vector used for the direction.""" def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None) -> None: if dir_vec_name is None: @@ -1250,7 +1352,6 @@ def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: class DirectionalTargetDerivative(DirectionalDerivative): mapper_method: ClassVar[str] = "map_directional_target_derivative" - directional_kind: ClassVar[Literal["src", "tgt"]] = "tgt" target_array_name: ClassVar[str] = "targets" @@ -1384,14 +1485,19 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU class TargetPointMultiplier(KernelWrapper): - """Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` + """Bases: :class:`Kernel` + + Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` where :math:`x, y` are targets and sources respectively. + + .. autoattribute:: axis """ mapper_method: ClassVar[str] = "map_target_point_multiplier" target_array_name: ClassVar[str] = "targets" axis: int + """Coordinate axis with which to multiply the kernel.""" def __init__(self, axis: int, inner_kernel: Kernel) -> None: KernelWrapper.__init__(self, inner_kernel) @@ -1466,6 +1572,9 @@ def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: class KernelMapper(Generic[ResultT]): + """ + .. automethod:: __call__ + """ def rec(self, kernel: Kernel) -> ResultT: try: method = cast( @@ -1481,6 +1590,10 @@ def __call__(self, kernel: Kernel) -> ResultT: class KernelCombineMapper(KernelMapper[ResultT], ABC): + """ + .. automethod:: combine + """ + @abstractmethod def combine(self, values: Iterable[ResultT]) -> ResultT: raise NotImplementedError @@ -1539,18 +1652,24 @@ def map_directional_source_derivative( class AxisSourceDerivativeRemover(KernelIdentityMapper): + """Removes all axis source derivatives from the kernel.""" + @override def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class AxisTargetDerivativeRemover(KernelIdentityMapper): + """Removes all axis target derivatives from the kernel.""" + @override def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class TargetDerivativeRemover(AxisTargetDerivativeRemover): + """Removes all target derivatives from the kernel.""" + @override def map_directional_target_derivative( self, kernel: DirectionalTargetDerivative) -> Kernel: @@ -1558,6 +1677,8 @@ def map_directional_target_derivative( class SourceDerivativeRemover(AxisSourceDerivativeRemover): + """Removes all source derivatives from the kernel.""" + @override def map_directional_source_derivative( self, kernel: DirectionalSourceDerivative) -> Kernel: @@ -1565,6 +1686,8 @@ def map_directional_source_derivative( class TargetTransformationRemover(TargetDerivativeRemover): + """Removes all target transformations from the kernel.""" + @override def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: return self.rec(kernel.inner_kernel) @@ -1574,6 +1697,8 @@ def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: class DerivativeCounter(KernelCombineMapper[int]): + """Counts the number of derivatives in the kernel.""" + @override def combine(self, values: Iterable[int]) -> int: return sum(values) From 4bf096f281b022be28e6fd03d4f4d46acf6dc65f Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 10 Sep 2025 10:51:56 +0300 Subject: [PATCH 188/335] chore: update baseline --- .basedpyright/baseline.json | 4294 ++++++----------------------------- 1 file changed, 703 insertions(+), 3591 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 762e1e262..e5c79fa2a 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -3597,46 +3597,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportCallInDefaultInitializer", - "range": { - "startColumn": 38, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -3701,14 +3661,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -4397,6 +4349,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -6233,6 +6193,14 @@ } ], "./sumpy/derivative_taker.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -7577,6 +7545,14 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -7601,54 +7577,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7656,22 +7584,6 @@ "endColumn": 43, "lineCount": 1 } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } } ], "./sumpy/distributed.py": [ @@ -9221,6 +9133,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -9998,10 +9918,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, @@ -10221,6 +10141,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10789,6 +10717,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -11293,6 +11229,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -11757,6 +11701,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12157,6 +12109,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12525,6 +12485,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -13199,6 +13167,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -13471,6 +13447,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -13729,14 +13713,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -20569,14 +20545,6 @@ } ], "./sumpy/expansion/loopy.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20585,14 +20553,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20658,18 +20618,18 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, @@ -20700,8 +20660,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -20713,14 +20673,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20785,6 +20737,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -23171,6 +23131,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 30, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -23735,7 +23703,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 32, "lineCount": 1 } }, @@ -23747,283 +23715,299 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 71, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 64, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, @@ -25947,6 +25931,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -26771,14 +26763,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -26891,6 +26875,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 26, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -27085,14 +27077,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -28205,6 +28189,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 67, + "lineCount": 3 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -33737,86 +33729,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -33826,3170 +33738,282 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 20, + "startColumn": 56, "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 47, + "startColumn": 43, "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 73, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 59, + "startColumn": 73, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 50, - "endColumn": 59, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { "startColumn": 35, - "endColumn": 39, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 42, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 62, + "startColumn": 51, "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOperatorIssue", "range": { "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 57, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 38, - "endColumn": 63, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 58, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 71, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 79, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 70, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 81, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 81, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 69, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 48, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 20, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 68, - "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": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 50, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 19, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 36, - "lineCount": 3 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 36, - "endColumn": 42, + "endColumn": 67, "lineCount": 1 } }, @@ -37025,6 +34049,14 @@ "lineCount": 1 } }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -37042,42 +34074,58 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 34, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 28, - "endColumn": 47, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 28, - "endColumn": 47, + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, @@ -37089,6 +34137,14 @@ "lineCount": 1 } }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 66, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -37097,6 +34153,14 @@ "lineCount": 1 } }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 40, + "endColumn": 66, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -37104,6 +34168,14 @@ "endColumn": 30, "lineCount": 1 } + }, + { + "code": "reportAssignmentType", + "range": { + "startColumn": 33, + "endColumn": 59, + "lineCount": 1 + } } ], "./sumpy/p2e.py": [ @@ -37699,6 +34771,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -38003,6 +35083,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -38446,18 +35534,18 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 23, - "endColumn": 51, - "lineCount": 1 + "endColumn": 33, + "lineCount": 3 } }, { "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 54, + "startColumn": 28, + "endColumn": 55, "lineCount": 1 } }, @@ -38470,10 +35558,18 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 23, - "endColumn": 52, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, @@ -38485,6 +35581,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -38741,6 +35845,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -38981,6 +36093,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -39213,6 +36333,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -39589,6 +36717,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42081,6 +39217,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -42369,6 +39513,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -42649,6 +39801,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -44411,46 +41571,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -45389,38 +42509,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 11, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -47245,6 +44333,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 24, + "lineCount": 1 + } + }, { "code": "reportMissingTypeStubs", "range": { @@ -47357,6 +44453,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { From 7f662a25a5aeb5d77bfa95aa42403895f5f1edc4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 15:01:31 -0500 Subject: [PATCH 189/335] Annotate actx_factory in tests --- test/test_fmm.py | 50 +++++++++++++++++++++++++++++++----------- test/test_kernels.py | 28 +++++++++++++++++------ test/test_matrixgen.py | 15 ++++++++++--- test/test_misc.py | 10 ++++----- test/test_qbx.py | 7 ++++-- test/test_tools.py | 4 ++-- 6 files changed, 82 insertions(+), 32 deletions(-) diff --git a/test/test_fmm.py b/test/test_fmm.py index b79b800b7..35210c82d 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -33,7 +33,7 @@ import pytest import pytools.obj_array as obj_array -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import ( @@ -49,7 +49,13 @@ Y2DMultipoleExpansion, ) from sumpy.fmm import SumpyExpansionWrangler, SumpyTreeIndependentDataForWrangler -from sumpy.kernel import BiharmonicKernel, HelmholtzKernel, LaplaceKernel, YukawaKernel +from sumpy.kernel import ( + BiharmonicKernel, + HelmholtzKernel, + Kernel, + LaplaceKernel, + YukawaKernel, +) logger = logging.getLogger(__name__) @@ -92,9 +98,16 @@ (YukawaKernel(2), Y2DLocalExpansion, Y2DMultipoleExpansion, False), ]) -def test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, - order_varies_with_level, use_translation_classes, use_fft, - fft_backend, visualize=False): +def test_sumpy_fmm( + actx_factory: ArrayContextFactory, + knl: Kernel, + local_expn_class, + mpole_expn_class, + order_varies_with_level, + use_translation_classes, + use_fft, + fft_backend, + visualize=False): if fft_backend == "pyvkfft": pytest.importorskip("pyvkfft") @@ -120,9 +133,15 @@ def test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, fft_backend) -def _test_sumpy_fmm(actx_factory, knl, local_expn_class, mpole_expn_class, - order_varies_with_level, use_translation_classes, use_fft, - fft_backend): +def _test_sumpy_fmm( + actx_factory: ArrayContextFactory, + knl: Kernel, + local_expn_class, + mpole_expn_class, + order_varies_with_level, + use_translation_classes, + use_fft, + fft_backend): actx = actx_factory() @@ -264,7 +283,7 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): # {{{ test_coeff_magnitude_rscale @pytest.mark.parametrize("knl", [LaplaceKernel(2), BiharmonicKernel(2)]) -def test_coeff_magnitude_rscale(actx_factory, knl): +def test_coeff_magnitude_rscale(actx_factory: ArrayContextFactory, knl): """Checks that the rscale used keeps the coefficient magnitude difference small """ @@ -346,7 +365,7 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): # {{{ test_unified_single_and_double -def test_unified_single_and_double(actx_factory, visualize=False): +def test_unified_single_and_double(actx_factory: ArrayContextFactory, visualize=False): """ Test that running one FMM for single layer + double layer gives the same result as running one FMM for each and adding the results together @@ -505,7 +524,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) assert timing_data -def test_sumpy_fmm_exclude_self(actx_factory, visualize=False): +def test_sumpy_fmm_exclude_self(actx_factory: ArrayContextFactory, visualize=False): if visualize: logging.basicConfig(level=logging.INFO) @@ -573,7 +592,9 @@ def test_sumpy_fmm_exclude_self(actx_factory, visualize=False): # {{{ test_sumpy_axis_source_derivative -def test_sumpy_axis_source_derivative(actx_factory, visualize=False): +def test_sumpy_axis_source_derivative( + actx_factory: ArrayContextFactory, + visualize=False): if visualize: logging.basicConfig(level=logging.INFO) @@ -641,7 +662,10 @@ def test_sumpy_axis_source_derivative(actx_factory, visualize=False): # {{{ test_sumpy_target_point_multiplier @pytest.mark.parametrize("deriv_axes", [(), (0,), (1,)]) -def test_sumpy_target_point_multiplier(actx_factory, deriv_axes, visualize=False): +def test_sumpy_target_point_multiplier( + actx_factory: ArrayContextFactory, + deriv_axes, + visualize=False): if visualize: logging.basicConfig(level=logging.INFO) diff --git a/test/test_kernels.py b/test/test_kernels.py index 9c7b23cc0..e34924299 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -32,7 +32,7 @@ import pytest import pytools.obj_array as obj_array -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from pytools.convergence import PConvergenceVerifier import sumpy.symbolic as sym @@ -58,6 +58,7 @@ BiharmonicKernel, DirectionalSourceDerivative, HelmholtzKernel, + Kernel, LaplaceKernel, StokesletKernel, ) @@ -73,7 +74,7 @@ # {{{ test_p2p @pytest.mark.parametrize("exclude_self", (True, False)) -def test_p2p(actx_factory, exclude_self): +def test_p2p(actx_factory: ArrayContextFactory, exclude_self): actx = actx_factory() dimensions = 3 @@ -134,7 +135,10 @@ def test_p2p(actx_factory, exclude_self): (LaplaceKernel(2), LinearPDEConformingVolumeTaylorLocalExpansion), (LaplaceKernel(2), LinearPDEConformingVolumeTaylorMultipoleExpansion), ]) -def test_p2e_multiple(actx_factory, base_knl, expn_class): +def test_p2e_multiple( + actx_factory: ArrayContextFactory, + base_knl: Kernel, + expn_class): order = 4 actx = actx_factory() @@ -275,7 +279,12 @@ def test_p2e_multiple(actx_factory, base_knl, expn_class): False, True ]) -def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative): +def test_p2e2p( + actx_factory: ArrayContextFactory, + base_knl, + expn_class, + order, + with_source_derivative): actx = actx_factory() res = 100 @@ -508,8 +517,13 @@ def test_p2e2p(actx_factory, base_knl, expn_class, order, with_source_derivative (StokesletKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion, False), ]) -def test_translations(actx_factory, knl, local_expn_class, mpole_expn_class, - use_fft, visualize=False): +def test_translations( + actx_factory: ArrayContextFactory, + knl, + local_expn_class, + mpole_expn_class, + use_fft, + visualize=False): if visualize: logging.basicConfig(level=logging.INFO) @@ -763,7 +777,7 @@ def test_m2l_toeplitz(): @pytest.mark.parametrize("dim", [2, 3]) @pytest.mark.parametrize("order", [2, 4, 6]) -def test_m2m_compressed_error_helmholtz(actx_factory, dim, order): +def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, order): from sumpy import toys actx = actx_factory() diff --git a/test/test_matrixgen.py b/test/test_matrixgen.py index 87a085af0..2a9a1669b 100644 --- a/test/test_matrixgen.py +++ b/test/test_matrixgen.py @@ -31,7 +31,7 @@ import pytest import pytools.obj_array as obj_array -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 @@ -92,7 +92,11 @@ def _build_subset_indices(actx, ntargets, nsources, factor): @pytest.mark.parametrize("factor", [1.0, 0.6]) @pytest.mark.parametrize("lpot_id", [1, 2]) -def test_qbx_direct(actx_factory, factor, lpot_id, visualize=False): +def test_qbx_direct( + actx_factory: ArrayContextFactory, + factor, + lpot_id, + visualize=False): if visualize: logging.basicConfig(level=logging.INFO) @@ -186,7 +190,12 @@ def test_qbx_direct(actx_factory, factor, lpot_id, visualize=False): @pytest.mark.parametrize("exclude_self", [True, False]) @pytest.mark.parametrize("factor", [1.0, 0.6]) @pytest.mark.parametrize("lpot_id", [1, 2]) -def test_p2p_direct(actx_factory, exclude_self, factor, lpot_id, visualize=False): +def test_p2p_direct( + actx_factory: ArrayContextFactory, + exclude_self, + factor, + lpot_id, + visualize=False): if visualize: logging.basicConfig(level=logging.INFO) diff --git a/test/test_misc.py b/test/test_misc.py index 2d1b073bf..95b04b99d 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing_extensions import override - __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" @@ -25,6 +23,7 @@ THE SOFTWARE. """ + import logging import sys from dataclasses import dataclass @@ -33,8 +32,9 @@ import numpy as np import numpy.linalg as la import pytest +from typing_extensions import override -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts import sumpy.symbolic as sym import sumpy.toys as t @@ -128,7 +128,7 @@ def nderivs(self): KernelInfo(LineOfCompressionKernel(3, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 1), mu=5, nu=0.2), ]) -def test_pde_check_kernels(actx_factory, knl_info, order=5): +def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5): actx = actx_factory() dim = knl_info.kernel.dim @@ -309,7 +309,7 @@ def dim(self): @pytest.mark.parametrize("case", P2E2E2P_TEST_CASES) -def test_toy_p2e2e2p(actx_factory, case): +def test_toy_p2e2e2p(actx_factory: ArrayContextFactory, case): dim = case.dim src = case.source.reshape(dim, -1) diff --git a/test/test_qbx.py b/test/test_qbx.py index d48c1bdb7..4e9d8e715 100644 --- a/test/test_qbx.py +++ b/test/test_qbx.py @@ -29,7 +29,7 @@ import numpy as np import pytest -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion @@ -48,7 +48,10 @@ LineTaylorLocalExpansion, VolumeTaylorLocalExpansion, ]) -def test_direct_qbx_vs_eigval(actx_factory, expn_class, visualize=False): +def test_direct_qbx_vs_eigval( + actx_factory: ArrayContextFactory, + expn_class, + visualize=False): """This evaluates a single layer potential on a circle using a known eigenvalue/eigenvector combination. """ diff --git a/test/test_tools.py b/test/test_tools.py index ab4d5bf45..e68cff4cc 100644 --- a/test/test_tools.py +++ b/test/test_tools.py @@ -29,7 +29,7 @@ import numpy as np import pytest -from arraycontext import pytest_generate_tests_for_array_contexts +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts import sumpy.symbolic as sym from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 @@ -86,7 +86,7 @@ def test_matvec_fft_small_floats(): # {{{ test_fft @pytest.mark.parametrize("size", [1, 2, 7, 10, 30, 210]) -def test_fft(actx_factory, size): +def test_fft(actx_factory: ArrayContextFactory, size: int): actx = actx_factory() inp = np.arange(size, dtype=np.complex64) From 679a3ce462a12ac43580bf7e2b6f59a6821e09da Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 15:01:40 -0500 Subject: [PATCH 190/335] Update baseline --- .basedpyright/baseline.json | 232 ------------------------------------ 1 file changed, 232 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index e5c79fa2a..11a039761 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -9133,14 +9133,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9917,14 +9909,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -10141,14 +10125,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10717,14 +10693,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -11229,14 +11197,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -11701,14 +11661,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -12109,14 +12061,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -12485,14 +12429,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13167,14 +13103,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13447,14 +13375,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20617,14 +20537,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20737,14 +20649,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -23131,14 +23035,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -23699,14 +23595,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -23979,14 +23867,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -25931,14 +25811,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -26875,14 +26747,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 10, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -34771,14 +34635,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -35083,14 +34939,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -35845,14 +35693,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -36093,14 +35933,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -36333,14 +36165,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -36717,14 +36541,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -39217,14 +39033,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -39513,14 +39321,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -39801,14 +39601,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -44333,14 +44125,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 10, - "endColumn": 24, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -44453,22 +44237,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { From 7b42e4f728d03e9067092a94cc63f79190de7281 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 15:12:39 -0500 Subject: [PATCH 191/335] Move tests under project folder --- .github/workflows/ci.yml | 2 +- .gitlab-ci.yml | 2 +- .test-conda-env-py3.yml | 1 + examples/curve-pot.py | 2 +- sumpy/test/__init__.py | 0 {examples => sumpy/test}/curve.py | 0 {test => sumpy/test}/test_codegen.py | 0 {test => sumpy/test}/test_cse.py | 0 {test => sumpy/test}/test_distributed.py | 0 {test => sumpy/test}/test_fmm.py | 0 {test => sumpy/test}/test_kernels.py | 0 {test => sumpy/test}/test_matrixgen.py | 0 {test => sumpy/test}/test_misc.py | 0 {test => sumpy/test}/test_qbx.py | 0 {test => sumpy/test}/test_tools.py | 0 15 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 sumpy/test/__init__.py rename {examples => sumpy/test}/curve.py (100%) rename {test => sumpy/test}/test_codegen.py (100%) rename {test => sumpy/test}/test_cse.py (100%) rename {test => sumpy/test}/test_distributed.py (100%) rename {test => sumpy/test}/test_fmm.py (100%) rename {test => sumpy/test}/test_kernels.py (100%) rename {test => sumpy/test}/test_matrixgen.py (100%) rename {test => sumpy/test}/test_misc.py (100%) rename {test => sumpy/test}/test_qbx.py (100%) rename {test => sumpy/test}/test_tools.py (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00760c546..59fa30c82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ci-support-v0 build_py_project - run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py test/*.py + run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py docs: name: Documentation diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4fb558416..081fd5b46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,7 +134,7 @@ Pylint: - curl -L -O https://tiker.net/ci-support-v0 - . ci-support-v0 - build_py_project - - run_pylint "$(get_proj_name)" examples/*.py test/*.py + - run_pylint "$(get_proj_name)" examples/*.py tags: - python3 except: diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index f60204d36..2249501e3 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -6,6 +6,7 @@ channels: dependencies: - git - numpy +- scipy - sympy - pocl - pocl-cuda diff --git a/examples/curve-pot.py b/examples/curve-pot.py index e51380d3f..ae6613e99 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -131,7 +131,7 @@ def map_to_curve(t: NDArray[np.floating]): return x, y, w - from curve import CurveGrid + from sumpy.test.curve import CurveGrid native_t = np.linspace(0, 1, nsrc, endpoint=False) native_x, native_y, native_weights = map_to_curve(native_t) diff --git a/sumpy/test/__init__.py b/sumpy/test/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/curve.py b/sumpy/test/curve.py similarity index 100% rename from examples/curve.py rename to sumpy/test/curve.py diff --git a/test/test_codegen.py b/sumpy/test/test_codegen.py similarity index 100% rename from test/test_codegen.py rename to sumpy/test/test_codegen.py diff --git a/test/test_cse.py b/sumpy/test/test_cse.py similarity index 100% rename from test/test_cse.py rename to sumpy/test/test_cse.py diff --git a/test/test_distributed.py b/sumpy/test/test_distributed.py similarity index 100% rename from test/test_distributed.py rename to sumpy/test/test_distributed.py diff --git a/test/test_fmm.py b/sumpy/test/test_fmm.py similarity index 100% rename from test/test_fmm.py rename to sumpy/test/test_fmm.py diff --git a/test/test_kernels.py b/sumpy/test/test_kernels.py similarity index 100% rename from test/test_kernels.py rename to sumpy/test/test_kernels.py diff --git a/test/test_matrixgen.py b/sumpy/test/test_matrixgen.py similarity index 100% rename from test/test_matrixgen.py rename to sumpy/test/test_matrixgen.py diff --git a/test/test_misc.py b/sumpy/test/test_misc.py similarity index 100% rename from test/test_misc.py rename to sumpy/test/test_misc.py diff --git a/test/test_qbx.py b/sumpy/test/test_qbx.py similarity index 100% rename from test/test_qbx.py rename to sumpy/test/test_qbx.py diff --git a/test/test_tools.py b/sumpy/test/test_tools.py similarity index 100% rename from test/test_tools.py rename to sumpy/test/test_tools.py From 2cbec8f69b68e8b280e30bc32632200409f2f8b1 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 15:18:45 -0500 Subject: [PATCH 192/335] Slightly modernize sumpy.test.curve --- sumpy/test/curve.py | 48 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/sumpy/test/curve.py b/sumpy/test/curve.py index 2a7e53b88..c220711f4 100644 --- a/sumpy/test/curve.py +++ b/sumpy/test/curve.py @@ -1,18 +1,50 @@ -from typing import final +from __future__ import annotations + + +__copyright__ = "Copyright (C) 2012 Andreas Kloeckner" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from typing import TYPE_CHECKING, final import numpy as np -import scipy as sp -import scipy.fftpack +import scipy.fftpack as fftpack + + +if TYPE_CHECKING: + from numpy.typing import NDArray @final class CurveGrid: - def __init__(self, x, y): + pos: NDArray[np.floating] + mean_curvature: NDArray[np.floating] + normal: NDArray[np.floating] + + def __init__(self, x: NDArray[np.floating], y: NDArray[np.floating]): self.pos = np.vstack([x, y]).copy() - xp = self.xp = sp.fftpack.diff(x, period=1) - yp = self.yp = sp.fftpack.diff(y, period=1) - xpp = self.xpp = sp.fftpack.diff(xp, period=1) - ypp = self.ypp = sp.fftpack.diff(yp, period=1) + xp = self.xp = fftpack.diff(x, period=1) + yp = self.yp = fftpack.diff(y, period=1) + xpp = self.xpp = fftpack.diff(xp, period=1) + ypp = self.ypp = fftpack.diff(yp, period=1) self.mean_curvature = (xp*ypp-yp*xpp)/((xp**2+yp**2)**(3/2)) speed = self.speed = np.sqrt(xp**2+yp**2) From b07772a1182560841d2162575e202377e59527ca Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 15:19:53 -0500 Subject: [PATCH 193/335] Update baseline --- .basedpyright/baseline.json | 10564 +++++++++++++++++++++++++++++++++- 1 file changed, 10356 insertions(+), 208 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 11a039761..a2156a4c0 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -42124,6 +42124,10362 @@ } } ], + "./sumpy/test/curve.py": [ + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_codegen.py": [ + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 52, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_cse.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 0, + "endColumn": 1, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 3, + "endColumn": 4, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 6, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 9, + "endColumn": 10, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 0, + "endColumn": 2, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 10, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 20, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 45, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 56, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 9, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 9, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 42, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 37, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 37, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 47, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 25, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 29, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 62, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 41, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 58, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 41, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 49, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 46, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 51, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 29, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 25 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 9, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 41, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 9, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 15, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 20, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 14, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 11, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_distributed.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 25, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 25, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 71, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 77, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 32, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 21, + "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": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 49, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 35, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_fmm.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 61, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 18, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportRedeclaration", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 35, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 43, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 62, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 14, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 54, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 27, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 35, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 48, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 54, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 70, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 14, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 16, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 50, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 63, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 69, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 70, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 64, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 59, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 65, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 12, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 67, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 17, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 59, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 65, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 11, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 16, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 42, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 50, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 63, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 69, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 17, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 59, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 65, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 23, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 79, + "endColumn": 83, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_kernels.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 17, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 46, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 53, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 32, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 32, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 32, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 19, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 16, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 69, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 49, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 52, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 57, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 58, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 35, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "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, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 50, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 57, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 41, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 64, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 42, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 41, + "lineCount": 15 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 46, + "lineCount": 15 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 7, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 65, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 17, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 17, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 63, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 63, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 13, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 15, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 73, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 73, + "endColumn": 83, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 76, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 77, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 28, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 75, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 75, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 80, + "endColumn": 85, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 80, + "endColumn": 85, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 70, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 33, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_matrixgen.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 46, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 26, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 52, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 52, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 11, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 44, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 49, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 53, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 33, + "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": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 72, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 29, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 46, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 19, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 43, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 38, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 11, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 5, + "lineCount": 7 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 11, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 40, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 33, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 22, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 7, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 14, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 9, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 7, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 31, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 25, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 55, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 10, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 39, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 9, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 72, + "endColumn": 75, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 46, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_qbx.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 31, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 33, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 22, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 53, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 44, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 33, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 70, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_tools.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 37, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + } + ], "./sumpy/tools.py": [ { "code": "reportAny", @@ -49587,214 +59943,6 @@ "lineCount": 1 } } - ], - "./test/test_cse.py": [ - { - "code": "reportIndexIssue", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 27, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 34, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 15, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 22, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportConstantRedefinition", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 11, - "endColumn": 34, - "lineCount": 1 - } - } - ], - "./test/test_distributed.py": [ - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 31, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 26, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 32, - "endColumn": 53, - "lineCount": 1 - } - } - ], - "./test/test_fmm.py": [ - { - "code": "reportRedeclaration", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 70, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 12, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 11, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 23, - "endColumn": 54, - "lineCount": 1 - } - } - ], - "./test/test_kernels.py": [ - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - } ] } } \ No newline at end of file From 01f8f2d15879de14e57eceb511b7d2fe8b47dcdc Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 17 Mar 2025 11:30:25 -0500 Subject: [PATCH 194/335] Fix incorrect scaling of Yukawa kernel Noticed by Shawn Lin. Co-authored-by: Shawn Lin --- sumpy/kernel.py | 4 ++-- sumpy/version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 12d390ad9..9dfcf14fe 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -676,7 +676,7 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: expr = var("hankel_1")(0, var("I")*lam*r) scaling_for_K0 = var("pi")/2*var("I") # noqa: N806 - scaling = -1/(2*var("pi")) * scaling_for_K0 + scaling = 1/(2*var("pi")) * scaling_for_K0 elif dim == 3: # NOTE: to get the expression, we do the following and simplify # 1. express K(1/2, lam r) as a modified spherical Bessel function @@ -684,7 +684,7 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: # 2. or use (AS 10.2.17) directly expr = var("exp")(-lam*r) / r - scaling = -1/(4 * var("pi")**2) + scaling = 1/(4 * var("pi")) else: raise NotImplementedError(f"unsupported dimension: '{dim}'") diff --git a/sumpy/version.py b/sumpy/version.py index 81d1e3c72..8c4f151f9 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -41,4 +41,4 @@ def _parse_version(version: str) -> tuple[tuple[int, ...], str]: VERSION, VERSION_STATUS = _parse_version(VERSION_TEXT) _GIT_REVISION = find_module_git_revision(__file__, n_levels_up=1) -KERNEL_VERSION = (*VERSION, _GIT_REVISION, 0) +KERNEL_VERSION = (*VERSION, _GIT_REVISION, 1) From 745efbf6ec4a1be8a95530d3b5f1a2c24cd03b0a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 24 Mar 2025 16:33:29 -0500 Subject: [PATCH 195/335] Add get_pde_as_diff_op to doc --- sumpy/kernel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 9dfcf14fe..60e519d06 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -206,6 +206,7 @@ class Kernel(ABC): .. automethod:: get_global_scaling_const .. automethod:: get_args .. automethod:: get_source_args + .. automethod:: get_pde_as_diff_op """ dim: int From 1a5b5ef3412b90c0dc06ece5fa79c01b118476ae Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 17:27:45 -0500 Subject: [PATCH 196/335] Add a test for the jump relation to test kernel scaling https://github.com/inducer/sumpy/pull/224 --- sumpy/test/geometries.py | 125 +++++++++++++++++++++++++++++++++++++ sumpy/test/test_kernels.py | 75 +++++++++++++++++++++- 2 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 sumpy/test/geometries.py diff --git a/sumpy/test/geometries.py b/sumpy/test/geometries.py new file mode 100644 index 000000000..7cc829603 --- /dev/null +++ b/sumpy/test/geometries.py @@ -0,0 +1,125 @@ +from __future__ import annotations + + +__copyright__ = "Copyright (C) 2025 University of Illinois Board of Trustees" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from dataclasses import dataclass +from typing import TYPE_CHECKING + +import numpy as np +import numpy.linalg as la + + +if TYPE_CHECKING: + from numpy.typing import NDArray + + +@dataclass(frozen=True) +class Geometry: + nodes: NDArray[np.floating] + normals: NDArray[np.floating] + weights: NDArray[np.floating] + area_elements: NDArray[np.floating] + + +def make_ellipsoid(a: float = 1, b: float = 0.5, npoints: int = 100): + def map_to_curve(t: NDArray[np.floating]): + t = t*(2*np.pi) + + x = a*np.cos(t) + y = b*np.sin(t) + + w = (np.zeros_like(t)+1)/len(t) + + return x, y, w + + from sumpy.test.curve import CurveGrid + + t = np.linspace(0, 1, npoints, endpoint=False) + x, y, weights = map_to_curve(t) + curve = CurveGrid(x, y) + + return Geometry( + nodes=curve.pos, + normals=curve.normal, + weights=weights, + area_elements=curve.speed, + ) + + +def make_torus( + r_major: float = 1, + r_minor: float = 0.5, + n_major: int = 200, + n_minor: int = 200 + ): + u = np.linspace(0.0, 2.0 * np.pi, n_major, endpoint=False) + v = np.linspace(0.0, 2.0 * np.pi, n_minor, endpoint=False) + u, v = np.meshgrid(u, v, copy=False) + nodes = np.stack([ + np.cos(u) * (r_major + r_minor * np.cos(v)), + np.sin(u) * (r_major + r_minor * np.cos(v)), + r_minor * np.sin(v) + ]) + + def diff2d(ary: NDArray[np.floating]): + import scipy.fftpack as fftpack + return np.array([ + fftpack.diff(ary[idx]) + for idx in np.ndindex(ary.shape[:-1]) + ]) + dnodes_du = np.array( + [diff2d(nodes[i].T).T for i in range(3)]) + dnodes_dv = np.array( + [diff2d(nodes[i]) for i in range(3)]) + + normal = -np.cross(dnodes_du, dnodes_dv, axis=0) + area_el = la.norm(normal, axis=0) + normal /= area_el + + weights = np.zeros_like(area_el) + (2*np.pi)**2/n_major/n_minor + + if 0: + import matplotlib.pyplot as plt + plt.figure().add_subplot(projection="3d") + plt.gca().quiver( + nodes[0], nodes[1], nodes[2], + normal[0], normal[1], normal[2], + length=0.1 + ) + plt.show() + 1/0 # noqa: B018 + + geo = Geometry( + nodes=nodes.reshape(3, -1).copy(), + normals=normal.reshape(3, -1).copy(), + area_elements=area_el.reshape(-1).copy(), + weights=weights.reshape(-1).copy(), + ) + + surface_area_ref = 4*np.pi**2*r_major*r_minor + surface_area = geo.area_elements @ geo.weights + surface_area_err = abs(surface_area - surface_area_ref)/surface_area_ref + assert surface_area_err < 1e-14 + + return geo diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index e34924299..8584dcf6e 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -32,7 +32,11 @@ import pytest import pytools.obj_array as obj_array -from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts +from arraycontext import ( + ArrayContextFactory, + PyOpenCLArrayContext, + pytest_generate_tests_for_array_contexts, +) from pytools.convergence import PConvergenceVerifier import sumpy.symbolic as sym @@ -41,6 +45,7 @@ from sumpy.expansion.local import ( H2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion, + LineTaylorLocalExpansion, VolumeTaylorLocalExpansion, ) from sumpy.expansion.m2l import ( @@ -61,7 +66,9 @@ Kernel, LaplaceKernel, StokesletKernel, + YukawaKernel, ) +from sumpy.test.geometries import make_ellipsoid, make_torus logger = logging.getLogger(__name__) @@ -849,6 +856,72 @@ def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, # }}} +@pytest.mark.parametrize(("kernel_cls", "kernel_kwargs"), [ + (LaplaceKernel, {}), + (HelmholtzKernel, {"k": 1}), + (YukawaKernel, {"lam": 1}) + ]) +@pytest.mark.parametrize("dim", [2, 3]) +def test_jump( + actx_factory: ArrayContextFactory, + kernel_cls: type[Kernel], + kernel_kwargs: dict[str, float], + dim: int, + order: int = 3, + ): + # x-ref https://github.com/inducer/sumpy/pull/224 + # fails for Yukawa on then-main + + actx = actx_factory() + if not isinstance(actx, PyOpenCLArrayContext): + pytest.skip() + + if dim == 2: + geo = make_ellipsoid(npoints=1600) + qbx_radius = 0.02 + tol = 3e-7 + + elif dim == 3: + geo = make_torus() + qbx_radius = 0.25 + tol = 1e-3 + + else: + raise ValueError(f"unexpected dim: {dim}") + + center_dist = qbx_radius*np.ones(2) + center_sides = np.array([-1, 1], dtype=np.float64) + + targets = geo.nodes[:, 0][:, np.newaxis] + np.zeros(2) + centers = (geo.nodes[:, 0][:, np.newaxis] + + center_sides * center_dist*geo.normals[:, 0][:, np.newaxis]) + + from sumpy.kernel import DirectionalSourceDerivative + kernel = kernel_cls(dim) + dlp_knl = DirectionalSourceDerivative(kernel) + + from sumpy.qbx import LayerPotential + lpot = LayerPotential(actx.context, + expansion=LineTaylorLocalExpansion(kernel, order=order), + source_kernels=(dlp_knl,), + target_kernels=(kernel,), + value_dtypes=np.complex128,) + + _evt, (y,) = lpot(actx.queue, + actx.from_numpy(targets), + actx.from_numpy(geo.nodes), + actx.from_numpy(centers), + [actx.from_numpy(geo.weights * geo.area_elements)], + expansion_radii=actx.from_numpy(center_dist), + src_derivative_dir=actx.from_numpy(geo.normals), + **kernel_kwargs, + ) + + inside, outside = actx.to_numpy(y) + err = abs((inside-outside) - -1) + assert err < tol, err + + # You can test individual routines by typing # $ python test_kernels.py 'test_p2p(_acf, True)' From 1d9cc0949d7a13a8324941305c5937fd290c16e3 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 11 Sep 2025 17:27:51 -0500 Subject: [PATCH 197/335] Update baseline --- .basedpyright/baseline.json | 298 ++++++++++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index a2156a4c0..e8caca34f 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -42150,6 +42150,264 @@ } } ], + "./sumpy/test/geometries.py": [ + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 10, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 26, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 38, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnusedExpression", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 22, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + } + ], "./sumpy/test/test_codegen.py": [ { "code": "reportUnknownMemberType", @@ -49406,6 +49664,46 @@ "endColumn": 51, "lineCount": 1 } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 10, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } } ], "./sumpy/test/test_matrixgen.py": [ From 7f78bf5c9a6494450d4de3127a6fe26441e03af8 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 27 Jun 2025 16:50:35 -0500 Subject: [PATCH 198/335] Fix some typing issues in P2P, expansion toys --- doc/conf.py | 4 ++++ sumpy/p2p.py | 52 ++++++++++++++++++++++++++++++++++++++++++--------- sumpy/toys.py | 4 ++-- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index f54cc4146..cf885d0ef 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 d8a259ea4..683c30acf 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 ad7ee5517..0867ad378 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): From 8248effd52c44e066deef58d9f52d2af70a1d433 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 15 Sep 2025 14:19:48 -0500 Subject: [PATCH 199/335] Update baseline --- .basedpyright/baseline.json | 658 ++++-------------------------------- 1 file changed, 57 insertions(+), 601 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index e8caca34f..03a00c5e1 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": { From d67de0c702652985fea303b50b27066df3b1973a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 9 Apr 2025 13:16:29 -0500 Subject: [PATCH 200/335] Drop sumpy.kernel.DirectionalTargetDerivative Closes gh-228 --- examples/curve-pot.py | 4 -- sumpy/expansion/multipole.py | 7 ++- sumpy/kernel.py | 98 ------------------------------------ sumpy/qbx.py | 4 -- sumpy/tools.py | 2 +- 5 files changed, 4 insertions(+), 111 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index ae6613e99..101758517 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -37,10 +37,6 @@ def process_kernel(knl, what_operator): elif what_operator == "D": from sumpy.kernel import DirectionalSourceDerivative source_knl = DirectionalSourceDerivative(knl) - # DirectionalTargetDerivative (temporarily?) removed - # elif what_operator == "S'": - # from sumpy.kernel import DirectionalTargetDerivative - # knl = DirectionalTargetDerivative(knl) else: raise RuntimeError(f"unrecognized operator '{what_operator}'") diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index e230a2afa..45f3bced8 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -101,10 +101,9 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): rscale = 1 base_taker = kernel.get_derivative_taker(bvec, rscale, sac) - # Following is a no-op, but AxisTargetDerivative.postprocess_at_target and - # DirectionalTargetDerivative.postprocess_at_target only handles - # DifferentiatedExprDerivativeTaker and sympy expressions, so we need to - # make the taker a DifferentitatedExprDerivativeTaker instance. + # Following is a no-op, but AxisTargetDerivative.postprocess_at_target + # only handles DifferentiatedExprDerivativeTaker and sympy expressions, + # so we need to make the taker a DifferentitatedExprDerivativeTaker instance. base_taker = DifferentiatedExprDerivativeTaker(base_taker, {tuple([0]*self.dim): 1}) taker = kernel.postprocess_at_target(base_taker, bvec) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 60e519d06..9aadf248f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -130,10 +130,6 @@ .. autoclass:: DirectionalSourceDerivative :show-inheritance: :members: mapper_method,directional_kind -.. autoclass:: DirectionalTargetDerivative - :show-inheritance: - :undoc-members: - :members: mapper_method,directional_kind,target_array_name Transforming kernels -------------------- @@ -1351,86 +1347,6 @@ def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: return type(self)(new_inner_kernel, dir_vec_name=self.dir_vec_name) -class DirectionalTargetDerivative(DirectionalDerivative): - mapper_method: ClassVar[str] = "map_directional_target_derivative" - directional_kind: ClassVar[Literal["src", "tgt"]] = "tgt" - target_array_name: ClassVar[str] = "targets" - - @override - def get_code_transformer(self) -> Callable[[Expression], Expression]: - from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter(frozenset([self.dir_vec_name])) - via = _VectorIndexAdder(self.dir_vec_name, (prim.Variable("itgt"),)) - - inner_transform = self.inner_kernel.get_code_transformer() - - def transform(expr: Expression) -> Expression: - return via(vcr(inner_transform(expr))) - - return transform - - @overload - def postprocess_at_target( - self, expr: sym.Expr, bvec: sp.Matrix, - ) -> sym.Expr: ... - - @overload - def postprocess_at_target( - self, expr: ExprDerivativeTaker, bvec: sp.Matrix, - ) -> DifferentiatedExprDerivativeTaker: ... - - @override - def postprocess_at_target( - self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, - ) -> sym.Expr | DifferentiatedExprDerivativeTaker: - dir_vec = sym.make_sym_vector(self.dir_vec_name, self.dim) - target_vec = sym.make_sym_vector(self.target_array_name, self.dim) - - inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) - - # bvec = tgt - center - if not isinstance(inner_expr, DifferentiatedExprDerivativeTaker): - result = 0 - for axis in range(self.dim): - # Since `bvec` and `tgt` are two different symbolic variables - # need to differentiate by both to get the correct answer - result += ( - (inner_expr.diff(bvec[axis]) + inner_expr.diff(target_vec[axis])) - * dir_vec[axis]) - - assert isinstance(result, sym.Expr) - return result - - new_transformation: DerivativeCoeffDict = defaultdict(lambda: 0) - for axis in range(self.dim): - axis_transformation = diff_derivative_coeff_dict( - inner_expr.derivative_coeff_dict, axis, target_vec) - for mi, coeff in axis_transformation.items(): - new_transformation[mi] += coeff * dir_vec[axis] - - return DifferentiatedExprDerivativeTaker( - inner_expr.taker, dict(new_transformation)) - - @override - def get_args(self) -> Sequence[KernelArgument]: - return [ - KernelArgument( - loopy_arg=lp.GlobalArg( - self.dir_vec_name, - None, - shape=(self.dim, "ntargets"), - offset=lp.auto - ), - ), - *self.inner_kernel.get_args() - ] - - @override - def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) - return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - - class DirectionalSourceDerivative(DirectionalDerivative): mapper_method: ClassVar[str] = "map_directional_source_derivative" directional_kind: ClassVar[Literal["src", "tgt"]] = "src" @@ -1607,10 +1523,6 @@ def map_axis_source_derivative( self, kernel: AxisSourceDerivative) -> ResultT: return self.rec(kernel.inner_kernel) - def map_directional_target_derivative( - self, kernel: DirectionalTargetDerivative) -> ResultT: - return self.rec(kernel.inner_kernel) - def map_directional_source_derivative( self, kernel: DirectionalSourceDerivative) -> ResultT: return self.rec(kernel.inner_kernel) @@ -1641,11 +1553,6 @@ def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_directional_target_derivative( - self, kernel: DirectionalTargetDerivative) -> Kernel: - return type(kernel)(self.rec(kernel.inner_kernel), - dir_vec_name=kernel.dir_vec_name) - def map_directional_source_derivative( self, kernel: DirectionalSourceDerivative) -> Kernel: return type(kernel)(self.rec(kernel.inner_kernel), @@ -1671,11 +1578,6 @@ def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: class TargetDerivativeRemover(AxisTargetDerivativeRemover): """Removes all target derivatives from the kernel.""" - @override - def map_directional_target_derivative( - self, kernel: DirectionalTargetDerivative) -> Kernel: - return self.rec(kernel.inner_kernel) - class SourceDerivativeRemover(AxisSourceDerivativeRemover): """Removes all source derivatives from the kernel.""" diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 8d6092ebd..904d004a3 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -516,7 +516,6 @@ def find_jump_term(kernel, arg_provider): AxisTargetDerivative, DerivativeBase, DirectionalSourceDerivative, - DirectionalTargetDerivative, ) tgt_derivatives = [] @@ -526,9 +525,6 @@ def find_jump_term(kernel, arg_provider): if isinstance(kernel, AxisTargetDerivative): tgt_derivatives.append(kernel.axis) kernel = kernel.kernel - elif isinstance(kernel, DirectionalTargetDerivative): - tgt_derivatives.append(kernel.dir_vec_name) - kernel = kernel.kernel elif isinstance(kernel, AxisSourceDerivative): src_derivatives.append(kernel.axis) kernel = kernel.kernel diff --git a/sumpy/tools.py b/sumpy/tools.py index 35baf4055..2a178eb55 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -320,7 +320,7 @@ def __init__(self, ctx: cl.Context, device: Any | None = None) -> None: """ :arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances, - with :class:`sumpy.kernel.DirectionalTargetDerivative` as + with :class:`sumpy.kernel.AxisTargetDerivative` as the outermost kernel wrappers, if present. :arg source_kernels: list of :class:`~sumpy.kernel.Kernel` instances with :class:`~sumpy.kernel.DirectionalSourceDerivative` as the From 066d3489ed36ae8c149fe81b89a3686af242af78 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 9 Apr 2025 13:17:25 -0500 Subject: [PATCH 201/335] Fix derivative taking in line Taylor --- sumpy/expansion/local.py | 7 +++++-- sumpy/qbx.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 184e0cadd..ebd376f94 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -149,9 +149,12 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): # no point in heeding rscale here--just ignore it + + # NOTE: We can't meaningfully apply target derivatives here. + # Instead, this is handled in LayerPotentialBase._evaluate. return sym.Add(*( - coeffs[self.get_storage_index(i)] / math.factorial(i) - for i in self.get_coefficient_identifiers())) + coeffs[self.get_storage_index(i)] / math.factorial(i) + for i in self.get_coefficient_identifiers())) def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 904d004a3..2864dd692 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -107,12 +107,12 @@ def _expand(self, sac, avec, bvec, rscale, isrc): def _evaluate(self, sac, avec, bvec, rscale, expansion_nr, coefficients): from sumpy.expansion.local import LineTaylorLocalExpansion tgt_knl = self.target_kernels[expansion_nr] - if isinstance(tgt_knl, LineTaylorLocalExpansion): + if isinstance(self.expansion, LineTaylorLocalExpansion): # In LineTaylorLocalExpansion.evaluate, we can't run # postprocess_at_target because the coefficients are assigned # symbols and postprocess with a derivative will make them zero. # Instead run postprocess here before the coefficients are assigned. - coefficients = [tgt_knl.postprocess_at_target(coeff, bvec) for + coefficients = [tgt_knl.postprocess_at_target(coeff, avec) for coeff in coefficients] assigned_coeffs = [ From b34ac10337ccf372ccf107c7d3faf07ed7450d41 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 16 Sep 2025 12:39:23 -0500 Subject: [PATCH 202/335] Rework test geometry generation, add starfish Co-authored-by: Shawn Lin --- sumpy/test/geometries.py | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/sumpy/test/geometries.py b/sumpy/test/geometries.py index 7cc829603..65b243e15 100644 --- a/sumpy/test/geometries.py +++ b/sumpy/test/geometries.py @@ -42,21 +42,15 @@ class Geometry: area_elements: NDArray[np.floating] -def make_ellipsoid(a: float = 1, b: float = 0.5, npoints: int = 100): - def map_to_curve(t: NDArray[np.floating]): - t = t*(2*np.pi) - - x = a*np.cos(t) - y = b*np.sin(t) - - w = (np.zeros_like(t)+1)/len(t) - - return x, y, w +def _geometry_from_curve_nodes( + x: NDArray[np.floating], + y: NDArray[np.floating] + ): + npts: int + npts, = x.shape + weights = np.ones(npts, dtype=np.float64)/npts from sumpy.test.curve import CurveGrid - - t = np.linspace(0, 1, npoints, endpoint=False) - x, y, weights = map_to_curve(t) curve = CurveGrid(x, y) return Geometry( @@ -67,6 +61,25 @@ def map_to_curve(t: NDArray[np.floating]): ) +def make_ellipsoid(a: float = 1, b: float = 0.5, npoints: int = 100): + t = np.linspace(0, 1, npoints, endpoint=False) + x = a*np.cos(2*np.pi*t) + y = b*np.sin(2*np.pi*t) + + return _geometry_from_curve_nodes(x, y) + + +def make_starfish(n_arms: int = 5, amplitude: float = 0.25, npoints: int = 100): + t = np.linspace(0, 1, npoints, endpoint=False) + theta = 2 * np.pi * t + + r = 1 + amplitude * np.sin(n_arms * theta) + + x = r * np.cos(theta) + y = r * np.sin(theta) + return _geometry_from_curve_nodes(x, y) + + def make_torus( r_major: float = 1, r_minor: float = 0.5, From 7416633f89d0f8e00c0c578931bdbbf86ef7961e Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Tue, 16 Sep 2025 12:40:05 -0500 Subject: [PATCH 203/335] Add test_lpot_dx_jump_relation_convergence Co-authored-by: Andreas Kloeckner --- sumpy/test/test_target_deriv.py | 153 ++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 sumpy/test/test_target_deriv.py diff --git a/sumpy/test/test_target_deriv.py b/sumpy/test/test_target_deriv.py new file mode 100644 index 000000000..cff0b69d8 --- /dev/null +++ b/sumpy/test/test_target_deriv.py @@ -0,0 +1,153 @@ +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2025 Shawn Lin +Copyright (C) 2025 University of Illinois Board of Trustees +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +import sys +from typing import TYPE_CHECKING + +import numpy as np +import pytest + +from arraycontext import ( + PyOpenCLArrayContext, + pytest_generate_tests_for_array_contexts, +) +from pytools.convergence import EOCRecorder + +from sumpy.array_context import ( # noqa: F401 + PytestPyOpenCLArrayContextFactory, + _acf, # pyright: ignore[reportUnusedImport] +) +from sumpy.expansion.local import LineTaylorLocalExpansion +from sumpy.kernel import AxisTargetDerivative, Kernel, LaplaceKernel +from sumpy.test.geometries import make_starfish + + +if TYPE_CHECKING: + from arraycontext import ArrayContextFactory + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +@pytest.mark.parametrize("knl", [LaplaceKernel(2)]) +def test_lpot_dx_jump_relation_convergence( + actx_factory: ArrayContextFactory, + knl: Kernel): + """Test convergence of jump relations for single layer potential derivatives.""" + + actx = actx_factory() + if not isinstance(actx, PyOpenCLArrayContext): + pytest.skip() + + qbx_order = 5 + + ntargets = 20 + target_geo = make_starfish(npoints=ntargets) + targets_h = target_geo.nodes + targets = actx.from_numpy(targets_h) + + from sumpy.qbx import LayerPotential + expansion = LineTaylorLocalExpansion(knl, qbx_order) + lplot_dx = LayerPotential( + actx.context, + expansion=expansion, + target_kernels=(AxisTargetDerivative(0, knl),), + source_kernels=(knl,) + ) + lplot_dy = LayerPotential( + actx.context, + expansion=expansion, + target_kernels=(AxisTargetDerivative(1, knl),), + source_kernels=(knl,) + ) + eocrec = EOCRecorder() + + for nsources in [320, 640, 1280, 2560]: + source_geo = make_starfish(npoints=nsources) + sources = actx.from_numpy(source_geo.nodes) + + weights_nodes_h = source_geo.area_elements * source_geo.weights + weights_nodes = actx.from_numpy(weights_nodes_h) + + expansion_radii_h = 4 * target_geo.area_elements / nsources + centers_in = actx.from_numpy( + targets_h - target_geo.normals * expansion_radii_h) + centers_out = actx.from_numpy( + targets_h + target_geo.normals * expansion_radii_h) + + strengths = (weights_nodes,) + _, (eval_in_dx,) = lplot_dx( + actx.queue, + targets, sources, centers_in, strengths, + expansion_radii=expansion_radii_h + ) + + _, (eval_in_dy,) = lplot_dy( + actx.queue, + targets, sources, centers_in, strengths, + expansion_radii=expansion_radii_h + ) + + _, (eval_out_dx,) = lplot_dx( + actx.queue, + targets, sources, centers_out, strengths, + expansion_radii=expansion_radii_h + ) + + _, (eval_out_dy,) = lplot_dy( + actx.queue, + targets, sources, centers_out, strengths, + expansion_radii=expansion_radii_h + ) + + eval_in_dx = actx.to_numpy(eval_in_dx) + eval_in_dy = actx.to_numpy(eval_in_dy) + eval_out_dx = actx.to_numpy(eval_out_dx) + eval_out_dy = actx.to_numpy(eval_out_dy) + + eval_in = eval_in_dx * target_geo.normals[0] + \ + eval_in_dy * target_geo.normals[1] + eval_out = eval_out_dx * target_geo.normals[0] + \ + eval_out_dy * target_geo.normals[1] + + # check jump relation: S'_int - S'_ext = sigma (=1 for constant density) + jump_error = np.abs(eval_in - eval_out - 1) + + h_max = 1/nsources + eocrec.add_data_point(h_max, np.max(jump_error)) + + print(eocrec) + assert eocrec.order_estimate() > qbx_order - 1.5 + + +if __name__ == "__main__": + if len(sys.argv) > 1: + exec(sys.argv[1]) + else: + pytest.main([__file__]) From 2cd2f4f09d1fb77274751159ecaa3aff117a0647 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 16 Sep 2025 17:02:55 -0500 Subject: [PATCH 204/335] Update baseline --- .basedpyright/baseline.json | 216 +++++++++++++++++++----------------- 1 file changed, 117 insertions(+), 99 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 03a00c5e1..57caf3522 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -17747,15 +17747,15 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 24, - "endColumn": 60, + "endColumn": 64, "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 45, + "startColumn": 27, + "endColumn": 49, "lineCount": 1 } }, @@ -33793,46 +33793,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 42, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportOperatorIssue", "range": { @@ -34001,14 +33961,6 @@ "lineCount": 1 } }, - { - "code": "reportAssignmentType", - "range": { - "startColumn": 40, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -38081,14 +38033,6 @@ "lineCount": 1 } }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 29, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -38161,14 +38105,6 @@ "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -38185,14 +38121,6 @@ "lineCount": 3 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 68, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -38225,6 +38153,30 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 68, + "endColumn": 74, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -39569,30 +39521,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -41719,6 +41647,14 @@ } ], "./sumpy/test/geometries.py": [ + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -52176,6 +52112,88 @@ } } ], + "./sumpy/test/test_target_deriv.py": [ + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 35, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 37, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 54, + "lineCount": 1 + } + } + ], "./sumpy/test/test_tools.py": [ { "code": "reportUnusedImport", From f78281eb53d645622ffffa6579ba340fb9e9adc6 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 27 Sep 2025 15:00:13 +0300 Subject: [PATCH 205/335] feat: add custom __repr__ for Kernel --- sumpy/kernel.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 9aadf248f..29dfec562 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -219,6 +219,20 @@ class Kernel(ABC): def is_complex_valued(self) -> bool: """A boolean flag indicating whether this kernel is complex valued.""" + @override + def __repr__(self) -> str: + from dataclasses import fields + + args: list[str] = [] + for f in fields(self): + value = getattr(self, f.name) + if isinstance(value, prim.ExpressionNode): + args.append(f"{f.name}={value}") + else: + args.append(f"{f.name}={value!r}") + + return f"{type(self).__name__}({', '.join(args)})" + def get_base_kernel(self) -> Kernel: """ :returns: the kernel being wrapped by this one, or else *self*. @@ -381,7 +395,7 @@ def get_source_args(self) -> Sequence[KernelArgument]: # }}} -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class ExpressionKernel(Kernel, ABC): r""" .. autoattribute:: expression @@ -561,7 +575,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(laplacian(w)) -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class HelmholtzKernel(ExpressionKernel): """ .. autoattribute:: helmholtz_k_name @@ -642,7 +656,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(w) + k**2 * w -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class YukawaKernel(ExpressionKernel): """ .. autoattribute:: yukawa_lambda_name @@ -729,7 +743,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(w) - lam**2 * w -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class ElasticityKernel(ExpressionKernel): """ .. autoattribute:: icomp @@ -858,7 +872,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(laplacian(w)) -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class StokesletKernel(ElasticityKernel): """ .. autoattribute:: icomp @@ -898,7 +912,7 @@ def __str__(self) -> str: f"({self.viscosity_mu}, {self.poisson_ratio})") -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class StressletKernel(ExpressionKernel): """ .. autoattribute:: icomp @@ -981,7 +995,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(laplacian(w)) -@dataclass(frozen=True) +@dataclass(frozen=True, repr=False) class LineOfCompressionKernel(ExpressionKernel): """A kernel for the line of compression or dilatation of constant strength along the axis "axis" from zero to negative infinity. From de315ae7b7c235f19f07784a5a97b64fd6b031ad Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 27 Sep 2025 15:45:26 +0300 Subject: [PATCH 206/335] chore: update baseline --- .basedpyright/baseline.json | 72 +++++++++++++------------------------ 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 57caf3522..14cad9dad 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -33593,6 +33593,14 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -36485,38 +36493,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 27, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -36549,22 +36525,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -54381,6 +54341,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { From 40ae9a35782c05916ae0c4dbc516338df900dffc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 20:08:00 +0000 Subject: [PATCH 207/335] build(deps): bump astral-sh/setup-uv from 6 to 7 Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6 to 7. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v6...v7) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 59fa30c82..40418661e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: astral-sh/setup-uv@v6 + - uses: astral-sh/setup-uv@v7 - name: "Main Script" run: | uv run --only-group lint ruff check From c12fe17a695e3d406b45f69c4f40a75f51213c31 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 14 Oct 2025 07:37:34 -0500 Subject: [PATCH 208/335] Type point_calculus --- doc/conf.py | 8 +++++ pyproject.toml | 4 +++ sumpy/point_calculus.py | 69 +++++++++++++++++++++++++++++++---------- 3 files changed, 65 insertions(+), 16 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index cf885d0ef..b6f6d0ed6 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -29,6 +29,14 @@ ] sphinxconfig_missing_reference_aliases = { + # numpy + "Array1D": "class:numpy.ndarray", + "Array2D": "class:numpy.ndarray", + "np.floating": "class:numpy.floating", + "np.complexfloating": "class:numpy.complexfloating", + "np.inexact": "class:numpy.inexact", + # pytools + "obj_array.ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # sympy "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", # pytools diff --git a/pyproject.toml b/pyproject.toml index 7a1db248f..59045ea08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,10 +40,14 @@ dependencies = [ [dependency-groups] dev = [ + {include-group = "type"}, {include-group = "doc"}, {include-group = "test"}, {include-group = "lint"}, ] +type = [ + "optype" +] lint = [ "pylint", # https://github.com/astral-sh/ruff/issues/16943 diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index f2c3d1d29..144ddee22 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -22,6 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +from typing import TYPE_CHECKING, Literal, TypeAlias import numpy as np import numpy.linalg as la @@ -30,13 +31,27 @@ from pytools import memoize_method +if TYPE_CHECKING: + from collections.abc import Callable, Sequence + + from optype.numpy import Array1D, Array2D + + __doc__ = """ +.. autodata:: NodesKind + :noindex: + +.. class:: NodesKind + .. autoclass:: CalculusPatch .. autofunction:: frequency_domain_maxwell """ +NodesKind: TypeAlias = Literal["chebyshev", "equispaced", "legendre"] + + class CalculusPatch: """Sets up a grid of points on which derivatives can be calculated. Useful to verify that an evaluated potential actually solves a PDE. @@ -64,7 +79,16 @@ class CalculusPatch: .. automethod:: plot_nodes .. automethod:: plot """ - def __init__(self, center, h=1e-1, order=4, nodes="chebyshev"): + dim: int + center: Array1D[np.floating] + points: Array2D[np.floating] + npoints: int + + def __init__(self, + center: Array1D[np.floating], + h: float = 1e-1, + order: int = 4, + nodes: NodesKind = "chebyshev"): self.center = center npoints = order + 1 @@ -119,7 +143,7 @@ def _zero_eval_vec_1d(self): # The zeroth coefficient--all others involve x=0. return self._vandermonde_1d()[0] - def basis(self): + def basis(self) -> Sequence[Callable[[Array2D[np.floating]], Array1D[np.floating]]]: """ :returns: a :class:`list` containing functions that realize a high-order interpolation basis on the :py:attr:`points`. @@ -129,7 +153,7 @@ def basis(self): from pytools import indices_in_shape - def eval_basis(ind, x): + def eval_basis(ind: tuple[int, ...], x: Array2D[np.floating]): result = 1 for i in range(self.dim): coord = (x[i] - self.center[i])/(self.h/2) @@ -172,7 +196,11 @@ def _diff_mat_1d(self, nderivs): deriv_coeffs_mat = la.solve(vandermonde.T, n_diff_mat.T).T return vandermonde.dot(deriv_coeffs_mat) - def diff(self, axis, f_values, nderivs=1): + def diff(self, + axis: int, + f_values: Array1D[np.inexact], + nderivs: int = 1 + ) -> Array1D[np.inexact] | Literal[0]: """Return the derivative along *axis* of *f_values*. :arg f_values: an array of shape ``(npoints_total,)`` @@ -197,16 +225,16 @@ def diff(self, axis, f_values, nderivs=1): self._diff_mat_1d(nderivs), f_values.reshape(*self._pshape)).reshape(-1) - def dx(self, f_values): + def dx(self, f_values: Array1D[np.inexact]): return self.diff(0, f_values) - def dy(self, f_values): + def dy(self, f_values: Array1D[np.inexact]): return self.diff(1, f_values) - def dz(self, f_values): + def dz(self, f_values: Array1D[np.inexact]): return self.diff(2, f_values) - def laplace(self, f_values): + def laplace(self, f_values: Array1D[np.inexact]): """Return the Laplacian of *f_values*. :arg f_values: an array of shape ``(npoints_total,)`` @@ -215,18 +243,22 @@ def laplace(self, f_values): return sum(self.diff(iaxis, f_values, 2) for iaxis in range(self.dim)) - def div(self, arg): + def div(self, + arg: obj_array.ObjectArray1D[Array1D[np.inexact]] + ) -> Array1D[np.inexact] | int: r""" :arg arg: an object array containing :class:`numpy.ndarray`\ s with shape ``(npoints_total,)``. """ - result = 0 + result: Array1D[np.inexact] | int = 0 for i, arg_i in enumerate(arg): result = result + self.diff(i, arg_i) return result - def curl(self, arg): + def curl(self, + arg: obj_array.ObjectArray1D[Array1D[np.inexact]] + ) -> obj_array.ObjectArray1D[Array1D[np.inexact]]: r"""Take the curl of the vector quantity *arg*. :arg arg: an object array of shape ``(3,)`` containing @@ -254,15 +286,15 @@ def eval_at_center(self, f_values): return f_values @property - def x(self): + def x(self) -> Array1D[np.floating]: return self.points[0] @property - def y(self): + def y(self) -> Array1D[np.floating]: return self.points[1] @property - def z(self): + def z(self) -> Array1D[np.floating]: return self.points[2] def norm(self, arg, p): @@ -284,7 +316,7 @@ def plot_nodes(self): self._points_shaped[1].reshape(-1), "o") - def plot(self, f): + def plot(self, f: Array1D[np.floating]): f = f.reshape(*self._pshape) import matplotlib.pyplot as plt @@ -292,7 +324,12 @@ def plot(self, f): plt.contourf(self._points_1d, self._points_1d, f) -def frequency_domain_maxwell(cpatch, e, h, k): +def frequency_domain_maxwell( + cpatch: CalculusPatch, + e: obj_array.ObjectArray1D[Array1D[np.complexfloating]], + h: obj_array.ObjectArray1D[Array1D[np.complexfloating]], + k: complex + ): mu = 1 epsilon = 1 c = 1/np.sqrt(mu*epsilon) From 28b35682e578f3ef05a459de037254148c119318 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 14 Oct 2025 07:37:39 -0500 Subject: [PATCH 209/335] Update baseline --- .basedpyright/baseline.json | 554 +++--------------------------------- 1 file changed, 37 insertions(+), 517 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 14cad9dad..41d3b058e 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -10221,22 +10221,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -36535,54 +36519,6 @@ } ], "./sumpy/point_calculus.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -36599,14 +36535,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -36639,22 +36567,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -36671,14 +36583,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -36735,14 +36639,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -36752,51 +36648,27 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 + "startColumn": 15, + "endColumn": 70, + "lineCount": 3 } }, { @@ -36943,54 +36815,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -37024,211 +36848,27 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 22, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 54, - "endColumn": 60, - "lineCount": 1 + "startColumn": 15, + "endColumn": 31, + "lineCount": 5 } }, { @@ -37263,14 +36903,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 9, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -37279,14 +36911,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 9, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -37295,14 +36919,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 9, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -37424,26 +37040,26 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, @@ -37471,86 +37087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -37560,34 +37096,26 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 4, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } } @@ -50421,14 +49949,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { From 2fef58262c97a6682f3e9d14ace9f74636e1b226 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 14 Oct 2025 14:38:49 -0500 Subject: [PATCH 210/335] Drop pylint --- .github/workflows/ci.yml | 14 -------------- .gitlab-ci.yml | 12 ------------ .pylintrc-local.yml | 8 -------- pyproject.toml | 1 - sumpy/expansion/level_to_order.py | 2 +- sumpy/point_calculus.py | 2 +- sumpy/symbolic.py | 4 ++-- sumpy/test/test_cse.py | 6 +++--- sumpy/visualization.py | 4 ++-- 9 files changed, 9 insertions(+), 44 deletions(-) delete mode 100644 .pylintrc-local.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40418661e..ae476b178 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,20 +46,6 @@ jobs: cipip install basedpyright basedpyright - pylint: - name: Pylint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: "Main Script" - run: | - USE_CONDA_BUILD=1 - EXTRA_INSTALL="pyvisfile scipy matplotlib" - curl -L -O https://tiker.net/ci-support-v0 - . ci-support-v0 - build_py_project - run_pylint "$(basename $GITHUB_REPOSITORY)" examples/*.py - docs: name: Documentation runs-on: ubuntu-latest diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 081fd5b46..504ef7c8a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -128,18 +128,6 @@ Ruff: except: - tags -Pylint: - script: - - EXTRA_INSTALL="pybind11 numpy mako scipy matplotlib pyvisfile mpi4py" - - curl -L -O https://tiker.net/ci-support-v0 - - . ci-support-v0 - - build_py_project - - run_pylint "$(get_proj_name)" examples/*.py - tags: - - python3 - except: - - tags - Downstream: parallel: matrix: diff --git a/.pylintrc-local.yml b/.pylintrc-local.yml deleted file mode 100644 index 287e89ccd..000000000 --- a/.pylintrc-local.yml +++ /dev/null @@ -1,8 +0,0 @@ -- arg: py-version - val: '3.10' - -- arg: extension-pkg-whitelist - val: mayavi -- arg: ignored-modules - val: - - symengine diff --git a/pyproject.toml b/pyproject.toml index 59045ea08..f3cd75e6f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,6 @@ type = [ "optype" ] lint = [ - "pylint", # https://github.com/astral-sh/ruff/issues/16943 "ruff!=0.11.1,!=0.11.2", ] diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 55f0f1b10..76a3a05fe 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -51,7 +51,7 @@ def __init__(self, tol, extra_order=0): self.extra_order = extra_order def __call__(self, kernel, kernel_args, tree, level): - from pyfmmlib import ( # pylint: disable=no-name-in-module + from pyfmmlib import ( h2dterms, h3dterms, l2dterms, diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 144ddee22..6af274c6d 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -149,7 +149,7 @@ def basis(self) -> Sequence[Callable[[Array2D[np.floating]], Array1D[np.floating a high-order interpolation basis on the :py:attr:`points`. """ - from scipy.special import eval_chebyt # pylint: disable=no-name-in-module + from scipy.special import eval_chebyt from pytools import indices_in_shape diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index c3c7eaa2a..0a14a5ec8 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -394,10 +394,10 @@ class Hankel1(_BesselOrHankel): _SympyHankel1 = Hankel1 if not TYPE_CHECKING and USE_SYMENGINE: - def BesselJ(*args): # noqa: N802 # pylint: disable=function-redefined + def BesselJ(*args): # noqa: N802 return sym.sympify(_SympyBesselJ(*args)) - def Hankel1(*args): # noqa: N802 # pylint: disable=function-redefined + def Hankel1(*args): # noqa: N802 return sym.sympify(_SympyHankel1(*args)) # vim: fdm=marker diff --git a/sumpy/test/test_cse.py b/sumpy/test/test_cse.py index 6c0710c2f..843998839 100644 --- a/sumpy/test/test_cse.py +++ b/sumpy/test/test_cse.py @@ -151,7 +151,7 @@ def test_cse_not_possible(): assert reduced == [x + y] # issue 6329 eq = ( - meijerg((1, 2), (y, 4), (5,), [], x) # pylint: disable=possibly-used-before-assignment + meijerg((1, 2), (y, 4), (5,), [], x) + meijerg((1, 3), (y, 4), (5,), [], x)) assert cse(eq) == ([], [eq]) @@ -177,7 +177,7 @@ def test_subtraction_opt(): # Make sure subtraction is optimized. e = (x - y)*(z - y) + sym.exp((x - y)*(z - y)) substs, reduced = cse( - [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) # pylint: disable=possibly-used-before-assignment + [e], optimizations=[(cse_opts.sub_pre, cse_opts.sub_post)]) assert substs == [(x0, (x - y)*(y - z))] assert reduced == [-x0 + sym.exp(-x0)] e = -(x - y)*(z - y) + sym.exp(-(x - y)*(z - y)) @@ -341,7 +341,7 @@ def test_issue_6169(): assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism - assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y # pylint: disable=possibly-used-before-assignment + assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y # }}} diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 521ae8f63..9033f24dd 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -168,7 +168,7 @@ def set_matplotlib_limits(self): def show_vector_in_mayavi(self, fld, do_show=True, **kwargs): c = self.points - from mayavi import mlab # pylint: disable=import-error + from mayavi import mlab mlab.quiver3d(c[0], c[1], c[2], fld[0], fld[1], fld[2], **kwargs) @@ -193,7 +193,7 @@ def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): nd_points = self.nd_points.squeeze()[self._get_nontrivial_dims()] squeezed_fld = fld.squeeze() - from mayavi import mlab # pylint: disable=import-error + from mayavi import mlab mlab.surf(nd_points[0], nd_points[1], squeezed_fld, **kwargs) # vim: foldmethod=marker From 8e10c6d14d0b77268722e822eba3accebe41b158 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 19 Oct 2025 17:09:25 +0300 Subject: [PATCH 211/335] feat(typing): update SympyToPymbolic mapper --- sumpy/codegen.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index f903464e5..3215faced 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -30,6 +30,7 @@ import numpy as np from constantdict import constantdict +from typing_extensions import override import loopy as lp import pymbolic.primitives as prim @@ -38,7 +39,7 @@ from pymbolic.typing import Expression from pytools import memoize_method -from sumpy.symbolic import SympyToPymbolicMapper as SympyToPymbolicMapperBase +import sumpy.symbolic as sym logger = logging.getLogger(__name__) @@ -63,23 +64,20 @@ def wrap_in_cse(expr: Expression, prefix: str | None = None) -> Expression: # {{{ sympy -> pymbolic mapper -import sumpy.symbolic as sym - - _SPECIAL_FUNCTION_NAMES = frozenset(dir(sym.functions)) -class SympyToPymbolicMapper(SympyToPymbolicMapperBase): - - def not_supported(self, expr): +class SympyToPymbolicMapper(sym.SympyToPymbolicMapper): + @override + def not_supported(self, expr: object) -> Expression: if isinstance(expr, int): return expr elif getattr(expr, "is_Function", False): - func_name = SympyToPymbolicMapperBase.function_name(self, expr) + func_name = sym.SympyToPymbolicMapper.function_name(self, expr) return prim.Variable(func_name)( *tuple(self.rec(arg) for arg in expr.args)) else: - return SympyToPymbolicMapperBase.not_supported(self, expr) + return sym.SympyToPymbolicMapper.not_supported(self, expr) # }}} From 8a96847c68daba84f9e7bd4e0620dd48765d37e8 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 19 Oct 2025 17:10:43 +0300 Subject: [PATCH 212/335] feat(typing): improve symbolic typing --- sumpy/symbolic.py | 174 ++++++++++++++++++++++++++-------------------- 1 file changed, 99 insertions(+), 75 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 0a14a5ec8..57d2e88b0 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -39,15 +39,19 @@ import logging import math -from typing import TYPE_CHECKING, ClassVar +from typing import TYPE_CHECKING, ClassVar, TypeAlias -import numpy as np -import sympy as sp +from typing_extensions import override import pymbolic.primitives as prim from pymbolic.mapper import IdentityMapper as IdentityMapperBase +if TYPE_CHECKING: + from pymbolic.typing import ArithmeticExpression, Expression + from pytools import T + from pytools.obj_array import ObjectArray1D + logger = logging.getLogger(__name__) USE_SYMENGINE = False @@ -82,9 +86,9 @@ def _find_symbolic_backend(): if backend == "symengine" and not symengine_found: raise RuntimeError(f"could not find SymEngine: {symengine_error}") - USE_SYMENGINE = (backend == "symengine") + USE_SYMENGINE = (backend == "symengine") # pyright: ignore[reportConstantRedefinition] else: - USE_SYMENGINE = symengine_found + USE_SYMENGINE = symengine_found # pyright: ignore[reportConstantRedefinition] _find_symbolic_backend() @@ -134,15 +138,18 @@ def _find_symbolic_backend(): Number = sym.Number Float = sym.Float +ArithmeticExpr: TypeAlias = int | float | complex | Expr + -def _coeff_isneg(a): +def _coeff_isneg(a: Basic) -> bool: if a.is_Mul: a = a.args[0] - return a.is_Number and a.is_negative + + return a.is_Number and bool(a.is_negative) if TYPE_CHECKING or USE_SYMENGINE: - def UnevaluatedExpr(x): # noqa: N802 + def UnevaluatedExpr(x: T) -> T: # noqa: N802 return x else: try: @@ -153,48 +160,51 @@ def UnevaluatedExpr(x): # noqa: N802 if USE_SYMENGINE: - def doit(expr): + def doit(expr: Expr) -> Expr: return expr - def unevaluated_pow(a, b): - return sym.Pow(a, b) + def unevaluated_pow(a: Expr, b: complex | Expr) -> ArithmeticExpr: + return Pow(a, b) else: - def doit(expr): + def doit(expr: Expr) -> Expr: return expr.doit() - def unevaluated_pow(a, b): - return sym.Pow(a, b, evaluate=False) + def unevaluated_pow(a: Expr, b: complex | Expr) -> ArithmeticExpr: + return Pow(a, b, evaluate=False) # {{{ debugging of sympy CSE via Maxima -class _DerivativeKiller(IdentityMapperBase): - def map_derivative(self, expr): - from pymbolic import var - return var("d_{}".format("_".join(expr.variables)))(expr.child) +class _DerivativeKiller(IdentityMapperBase[[]]): + @override + def map_derivative(self, expr: prim.Derivative) -> Expression: + return prim.Variable("d_{}".format("_".join(expr.variables)))(expr.child) - def map_substitution(self, expr): + @override + def map_substitution(self, expr: prim.Substitution) -> Expression: return self.rec(expr.child) -def _get_assignments_in_maxima(assignments, prefix=""): - my_variable_names = set(assignments.keys()) - written_assignments = set() +def _get_assignments_in_maxima( + assignments: dict[str, Basic], + prefix: str = "", + ) -> str: + variable_names = set(assignments.keys()) + written_assignments: set[str] = set() + prefix_subst_dict = {vn: f"{prefix}{vn}" for vn in variable_names} - prefix_subst_dict = { - vn: prefix+vn for vn in my_variable_names} + from pymbolic.interop.maxima import MaximaStringifyMapper - from pymbolic.maxima import MaximaStringifyMapper mstr = MaximaStringifyMapper() s2p = SympyToPymbolicMapper() dkill = _DerivativeKiller() - result = [] + result: list[str] = [] - def write_assignment(name): + def write_assignment(name: str) -> None: symbols = [atm for atm in assignments[name].atoms() - if isinstance(atm, sym.Symbol) - and atm.name in my_variable_names] + if isinstance(atm, Symbol) + and atm.name in variable_names] for symb in symbols: if symb.name not in written_assignments: @@ -222,12 +232,12 @@ def checked_cse(exprs, symbols=None): max_old = _get_assignments_in_maxima({ f"old_expr{i}": expr for i, expr in enumerate(exprs)}) - new_ass_dict = { + new_assign_dict = { f"new_expr{i}": expr for i, expr in enumerate(new_exprs)} for name, val in new_assignments: - new_ass_dict[name.name] = val - max_new = _get_assignments_in_maxima(new_ass_dict) + new_assign_dict[name.name] = val + max_new = _get_assignments_in_maxima(new_assign_dict) with open("check.mac", "w") as outf: outf.write("ratprint:false;\n") @@ -245,20 +255,20 @@ def checked_cse(exprs, symbols=None): # }}} -def sym_real_norm_2(x): - return sym.sqrt((x.T*x)[0, 0]) +def sym_real_norm_2(x: Matrix) -> Expr: + return sqrt((x.T*x)[0, 0]) -def pymbolic_real_norm_2(x): - from pymbolic import var - return var("sqrt")(np.dot(x, x)) +def pymbolic_real_norm_2( + x: ObjectArray1D[ArithmeticExpression]) -> ArithmeticExpression: + return prim.Variable("sqrt")(x @ x) def make_sym_vector(name: str, components: int) -> Matrix: - return sym.Matrix([sym.Symbol(f"{name}{i}") for i in range(components)]) + return Matrix([Symbol(f"{name}{i}") for i in range(components)]) -def vector_xreplace(expr, from_vec, to_vec): +def vector_xreplace(expr: Expr, from_vec: Matrix, to_vec: Matrix) -> Expr: substs = {} assert (from_vec.rows, from_vec.cols) == (to_vec.rows, to_vec.cols) for irow in range(from_vec.rows): @@ -268,12 +278,15 @@ def vector_xreplace(expr, from_vec, to_vec): return expr.xreplace(substs) -def find_power_of(base, prod): +def find_power_of(base: Basic, prod: Basic) -> int | Basic: + # FIXME: this does not actually work with symengine (Wild is not implemented) remdr = sym.Wild("remdr") power = sym.Wild("power") + result = prod.match(remdr*base**power) if result is None: return 0 + return result[power] @@ -294,92 +307,103 @@ class SpatialConstant(prim.Variable): prefix: ClassVar[str] = "_spatial_constant_" """Prefix used in code generation for variables of this type.""" - def as_sympy(self) -> sp.Symbol: + def as_sympy(self) -> Symbol: """Convert variable to a :mod:`sympy` expression.""" - return sym.Symbol(f"{self.prefix}{self.name}") + return Symbol(f"{self.prefix}{self.name}") @classmethod - def from_sympy(cls, expr: sp.Symbol) -> SpatialConstant: + def from_sympy(cls, expr: Symbol) -> SpatialConstant: """Convert :mod:`sympy` expression to a constant.""" return cls(expr.name[len(cls.prefix):]) class PymbolicToSympyMapper(PymbolicToSympyMapperBase): - def map_spatial_constant(self, expr): + def map_spatial_constant(self, expr: SpatialConstant) -> Basic: return expr.as_sympy() class SympyToPymbolicMapper(SympyToPymbolicMapperBase): - def map_Symbol(self, expr): # noqa: N802 + @override + def map_Symbol(self, expr: Symbol) -> Expression: if expr.name.startswith(SpatialConstant.prefix): return SpatialConstant.from_sympy(expr) + return SympyToPymbolicMapperBase.map_Symbol(self, expr) - def map_Pow(self, expr): # noqa: N802 + @override + def map_Pow(self, expr: Pow) -> Expression: if expr.exp == -1: - return 1/self.rec(expr.base) + return 1 / self.rec_arith(expr.base) else: return SympyToPymbolicMapperBase.map_Pow(self, expr) - def map_Mul(self, expr): # noqa: N802 - num_args = [] - den_args = [] + @override + def map_Mul(self, expr: Mul) -> Expression: + num_args: list[ArithmeticExpression] = [] + den_args: list[ArithmeticExpression] = [] for child in expr.args: if (isinstance(child, Pow) and isinstance(child.exp, Integer) and child.exp < 0): - den_args.append(self.rec(child.base)**(-self.rec(child.exp))) + den_args.append(self.rec_arith(child.base)**(-self.rec_arith(child.exp))) else: - num_args.append(self.rec(child)) + num_args.append(self.rec_arith(child)) return math.prod(num_args) / math.prod(den_args) class PymbolicToSympyMapperWithSymbols(PymbolicToSympyMapper): - def map_variable(self, expr): + @override + def map_variable(self, expr: prim.Variable) -> Basic: if expr.name == "I": - return sym.I + return I elif expr.name == "pi": - return sym.pi + return pi else: return PymbolicToSympyMapper.map_variable(self, expr) - def map_subscript(self, expr): + @override + def map_subscript(self, expr: prim.Subscript) -> Basic: if isinstance(expr.aggregate, prim.Variable) and isinstance(expr.index, int): - return sym.Symbol(f"{expr.aggregate.name}{expr.index}") + return Symbol(f"{expr.aggregate.name}{expr.index}") else: self.raise_conversion_error(expr) + raise - def map_call(self, expr): - if expr.function.name == "hankel_1": - args = [self.rec(param) for param in expr.parameters] - args.append(0) - return Hankel1(*args) - elif expr.function.name == "bessel_j": - args = [self.rec(param) for param in expr.parameters] - args.append(0) - return BesselJ(*args) - else: - return PymbolicToSympyMapper.map_call(self, expr) + @override + def map_call(self, expr: prim.Call) -> Basic: + function = expr.function + if isinstance(function, prim.Variable): + if function.name == "hankel_1": + args = [self.rec(param) for param in expr.parameters] + args.append(sympify(0)) + return Hankel1(*args) + elif function.name == "bessel_j": + args = [self.rec(param) for param in expr.parameters] + args.append(sympify(0)) + return BesselJ(*args) + + return PymbolicToSympyMapper.map_call(self, expr) -import sympy +from sympy import Function as SympyFunction -class _BesselOrHankel(sympy.Function): +class _BesselOrHankel(SympyFunction): """A symbolic function for BesselJ or Hankel1 functions that keeps track of the derivatives taken of the function. Arguments are ``(order, z, nderivs)``. """ - nargs = (3,) + nargs: ClassVar[tuple[int, ...]] = (3,) - def fdiff(self, argindex=1): + @override + def fdiff(self, argindex: int = 1) -> Basic: if argindex in (1, 3): # we are not differentiating w.r.t order or nderivs raise ValueError(f"invalid argindex: {argindex}") order, z, nderivs = self.args - return self.func(order, z, nderivs+1) + return self.func(order, z, nderivs + 1) class BesselJ(_BesselOrHankel): @@ -395,9 +419,9 @@ class Hankel1(_BesselOrHankel): if not TYPE_CHECKING and USE_SYMENGINE: def BesselJ(*args): # noqa: N802 - return sym.sympify(_SympyBesselJ(*args)) + return sympify(_SympyBesselJ(*args)) def Hankel1(*args): # noqa: N802 - return sym.sympify(_SympyHankel1(*args)) + return sympify(_SympyHankel1(*args)) # vim: fdm=marker From fafed5388e772ee063b2a4022b2c22856c567a11 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 20 Oct 2025 21:43:00 +0300 Subject: [PATCH 213/335] feat: remove find_power_of and vector_xreplace --- sumpy/symbolic.py | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 57d2e88b0..5d7526e3b 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -268,28 +268,6 @@ def make_sym_vector(name: str, components: int) -> Matrix: return Matrix([Symbol(f"{name}{i}") for i in range(components)]) -def vector_xreplace(expr: Expr, from_vec: Matrix, to_vec: Matrix) -> Expr: - substs = {} - assert (from_vec.rows, from_vec.cols) == (to_vec.rows, to_vec.cols) - for irow in range(from_vec.rows): - for icol in range(from_vec.cols): - substs[from_vec[irow, icol]] = to_vec[irow, icol] - - return expr.xreplace(substs) - - -def find_power_of(base: Basic, prod: Basic) -> int | Basic: - # FIXME: this does not actually work with symengine (Wild is not implemented) - remdr = sym.Wild("remdr") - power = sym.Wild("power") - - result = prod.match(remdr*base**power) - if result is None: - return 0 - - return result[power] - - @prim.expr_dataclass() class SpatialConstant(prim.Variable): """A symbolic constant to represent a symbolic variable that is spatially constant. From 61a68e18a758336afa6630072069ad2c8f411d4c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 19 Oct 2025 19:44:49 +0300 Subject: [PATCH 214/335] chore: update baseline --- .basedpyright/baseline.json | 1772 ++++------------------------------- 1 file changed, 186 insertions(+), 1586 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 41d3b058e..b58a62509 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -1213,78 +1213,6 @@ } ], "./sumpy/codegen.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 21, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 70, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -1302,18 +1230,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, @@ -12999,14 +12919,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 73, - "lineCount": 2 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -18848,10 +18760,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 46, + "startColumn": 47, + "endColumn": 68, "lineCount": 1 } }, @@ -26973,14 +26885,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -27446,10 +27350,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 47, + "startColumn": 48, + "endColumn": 69, "lineCount": 1 } }, @@ -27501,14 +27405,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -27565,14 +27461,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -27582,10 +27470,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 45, + "startColumn": 46, + "endColumn": 67, "lineCount": 1 } }, @@ -39571,14 +39459,6 @@ } ], "./sumpy/symbolic.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 7, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -39595,22 +39475,6 @@ "lineCount": 1 } }, - { - "code": "reportConstantRedefinition", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportConstantRedefinition", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportMissingTypeStubs", "range": { @@ -39651,14 +39515,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportUnusedFunction", "range": { @@ -39668,1683 +39524,483 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 7, - "endColumn": 15, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 39, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 22, + "startColumn": 4, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 40, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 27, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 41, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 32, + "endColumn": 88, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { "startColumn": 23, - "endColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 26, - "endColumn": 27, + "startColumn": 5, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportOperatorIssue", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/test/curve.py": [ { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 19, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 22, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 56, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } - }, + } + ], + "./sumpy/test/geometries.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 56, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 44, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 46, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 29, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 29, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 58, - "lineCount": 2 + "startColumn": 38, + "endColumn": 47, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 38, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedExpression", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 14, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 15, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 59, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 56, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 7, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - } - ], - "./sumpy/test/curve.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - } - ], - "./sumpy/test/geometries.py": [ - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnusedExpression", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportAny", "range": { "startColumn": 16, "endColumn": 44, @@ -41489,14 +40145,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -47889,14 +46537,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -47953,14 +46593,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51781,14 +50413,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -52245,14 +50869,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportMissingTypeArgument", "range": { @@ -53861,22 +52477,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { From 1f169be91f2d5699a337c9829c05a38a563de75c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 22 Oct 2025 13:38:34 -0500 Subject: [PATCH 215/335] Type more of Kernel and tools --- doc/conf.py | 3 + sumpy/assignment_collection.py | 37 ++++-- sumpy/codegen.py | 17 +-- sumpy/derivative_taker.py | 212 ++++++++++++++++++++------------- sumpy/kernel.py | 81 ++++++------- sumpy/qbx.py | 31 +++-- sumpy/symbolic.py | 12 +- sumpy/tools.py | 55 ++++----- 8 files changed, 254 insertions(+), 194 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index b6f6d0ed6..cace734a4 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -39,6 +39,9 @@ "obj_array.ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # sympy "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", + "sym.Expr": "class:sympy.core.expr.Expr", + "sym.Symbol": "class:sympy.core.symbol.Symbol", + "sym.Matrix": "class:sympy.matrices.dense.DenseMatrix", # pytools "ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # pymbolic diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index fc7790f81..749be0359 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -23,12 +23,18 @@ THE SOFTWARE. """ - import logging +from typing import TYPE_CHECKING + +from typing_extensions import override import sumpy.symbolic as sym +if TYPE_CHECKING: + from collections.abc import Sequence + + logger = logging.getLogger(__name__) __doc__ = """ @@ -100,7 +106,12 @@ class SymbolicAssignmentCollection: by this class, but not expressions using names defined in this collection. """ - def __init__(self, assignments=None): + assignments: dict[str, sym.Expr] + reversed_assignments: dict[sym.Expr, 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 """ @@ -114,12 +125,13 @@ def __init__(self, assignments=None): self.symbol_generator = _SymbolGenerator(self.assignments) self.all_dependencies_cache = {} + @override def __str__(self): return "\n".join( f"{name} <- {expr}" for name, expr in self.assignments.items()) - def get_all_dependencies(self, var_name): + def get_all_dependencies(self, var_name: str): """Including recursive dependencies.""" try: return self.all_dependencies_cache[var_name] @@ -129,7 +141,7 @@ def get_all_dependencies(self, var_name): if var_name not in self.assignments: return set() - result = set() + result: set[sym.Symbol] = set() for dep in self.assignments[var_name].atoms(): if not isinstance(dep, sym.Symbol): continue @@ -143,13 +155,14 @@ def get_all_dependencies(self, var_name): self.all_dependencies_cache[var_name] = result return result - def add_assignment(self, name, expr, root_name=None, wrt_set=None, - retain_name=True): + def add_assignment(self, + name: str, + expr: sym.Expr, + root_name: str | None = None, + retain_name: bool = True): assert isinstance(name, str) assert name not in self.assignments - if wrt_set is None: - wrt_set = frozenset() if root_name is None: root_name = name @@ -163,7 +176,7 @@ def add_assignment(self, name, expr, root_name=None, wrt_set=None, return name - def assign_unique(self, name_base, expr): + def assign_unique(self, name_base: str, expr: sym.Expr): """Assign *expr* to a new variable whose name is based on *name_base*. Return the new variable name. """ @@ -171,7 +184,7 @@ def assign_unique(self, name_base, expr): return self.add_assignment(new_name, expr) - def assign_temp(self, name_base, expr): + def assign_temp(self, name_base: str, expr: sym.Expr): """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. @@ -179,7 +192,7 @@ def assign_temp(self, name_base, 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=None): + def run_global_cse(self, extra_exprs: Sequence[sym.Expr] | None = None): if extra_exprs is None: extra_exprs = [] @@ -199,7 +212,7 @@ def run_global_cse(self, extra_exprs=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)] diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 3215faced..f731440ed 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -510,16 +510,17 @@ def map_constant(self, expr, *args): # {{{ convert complex to np.complex -class ComplexRewriter(CSECachingIdentityMapper, CallExternalRecMapper): +class ComplexRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): + complex_dtype: np.dtype[np.complexfloating] | None - def __init__(self, complex_dtype=None): + def __init__(self, complex_dtype: np.dtype[np.complexfloating] | None = None): super().__init__() self.complex_dtype = complex_dtype - def map_constant(self, expr, rec_self=None): + def map_constant(self, expr: object, rec_self=None): """Convert complex values to numpy types """ - if not isinstance(expr, complex | np.complex64 | np.complex128): + if not isinstance(expr, (complex, np.complex64, np.complex128)): return IdentityMapper.map_constant(rec_self or self, expr, rec_self=rec_self) @@ -544,7 +545,7 @@ def map_constant(self, expr, rec_self=None): INDEXED_VAR_RE = re.compile(r"^([a-zA-Z_]+)([0-9]+)$") -class VectorComponentRewriter(CSECachingIdentityMapper, CallExternalRecMapper): +class VectorComponentRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): """For names in name_whitelist, turn ``a3`` into ``a[3]``.""" name_whitelist: frozenset[str] @@ -574,7 +575,7 @@ def map_variable(self, expr, *args): # {{{ sum sign grouper -class SumSignGrouper(CSECachingIdentityMapper, CallExternalRecMapper): +class SumSignGrouper(CSECachingIdentityMapper[[]], CallExternalRecMapper): """Anti-cancellation cargo-cultism.""" def map_sum(self, expr, *args): @@ -613,7 +614,7 @@ def map_sum(self, expr, *args): # }}} -class MathConstantRewriter(CSECachingIdentityMapper, CallExternalRecMapper): +class MathConstantRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): def map_variable(self, expr, *args): if expr.name == "pi": return prim.Variable("M_PI") @@ -625,7 +626,7 @@ def map_variable(self, expr, *args): # {{{ combine mappers -def combine_mappers(*mappers): +def combine_mappers(*mappers: CallExternalRecMapper): """Returns a mapper that combines the work of several other mappers. For this to work, the mappers need to be instances of :class:`sumpy.codegen.CallExternalRecMapper`. When calling parent class diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index e7181c1e0..5f0ebd5ad 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -39,94 +39,119 @@ """ import logging +from dataclasses import dataclass, field from typing import TYPE_CHECKING import numpy as np +from typing_extensions import override -from pytools.tag import tag_dataclass +from pytools import memoize_method import sumpy.symbolic as sym -from sumpy.tools import add_mi, add_to_sac +from sumpy.tools import add_mi, add_to_sac, sub_mi if TYPE_CHECKING: + from collections.abc import Iterable, Sequence + import sympy as sp + from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.diff_op import MultiIndex + + logger = logging.getLogger(__name__) # {{{ ExprDerivativeTaker +@dataclass(frozen=True) class ExprDerivativeTaker: - """Facilitates the efficient computation of (potentially) high-order + r"""Facilitates the efficient computation of (potentially) high-order derivatives of a given :mod:`sympy` expression *expr* while attempting to maximize the number of common subexpressions generated. This class defines the interface and realizes a baseline implementation. More specialized implementations may offer better efficiency for special cases. + + A class to take scaled derivatives of the symbolic expression + expr w.r.t. variables var_list and the scaling parameter rscale. + + Consider a Taylor multipole expansion: + + .. math:: + f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i f) (x - y) \big|_{y = c} + \frac{(y - c)^i}{i!} . + + Now suppose we would like to use a scaled version :math:`g` of the + kernel :math:`f`: + .. math:: + + \begin{eqnarray*} + f (x) & = & g (x / \alpha),\\ + f^{(i)} (x) & = & \frac{1}{\alpha^i} g^{(i)} (x / \alpha) . + \end{eqnarray*} + + where :math:`\alpha` is chosen to be on a length scale similar to + :math:`x` (for example by choosing :math:`\alpha` proporitional to the + size of the box for which the expansion is intended) so that :math:`x / + \alpha` is roughly of unit magnitude, to avoid arithmetic issues with + small arguments. This yields + .. math:: + + f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i g) + \left( \frac{x - y}{\alpha} \right) \Bigg|_{y = c} + \cdot + \frac{(y - c)^i}{\alpha^i \cdot i!}. + + Observe that the :math:`(y - c)` term is now scaled to unit magnitude, + as is the argument of :math:`g`. + With :math:`\xi = x / \alpha`, we find + .. math:: + + \begin{eqnarray*} + g (\xi) & = & f (\alpha \xi),\\ + g^{(i)} (\xi) & = & \alpha^i f^{(i)} (\alpha \xi) . + \end{eqnarray*} + + Generically for all kernels, :math:`f^{(i)} (\alpha \xi)` is computable + by taking a sufficient number of symbolic derivatives of :math:`f` and + providing :math:`\alpha \xi = x` as the argument. + Now, for some kernels, like :math:`f (x) = C \log x`, the powers of + :math:`\alpha^i` from the chain rule cancel with the ones from the + argument substituted into the kernel derivatives: + .. math:: + + g^{(i)} (\xi) = \alpha^i f^{(i)} (\alpha \xi) = C' \cdot \alpha^i \cdot + \frac{1}{(\alpha x)^i} \quad (i > 0), + + making them what you might call *scale-invariant*. + This derivative taker returns :math:`g^{(i)}(\xi) = \alpha^i f^{(i)}` + given :math:`f^{(0)}` as *expr* and :math:`\alpha` as :attr:`rscale`. + + .. autoattribute:: orig_expr + .. autoattribute:: var_list + .. autoattribute:: rscale + .. autoattribute:: sac + .. automethod:: diff """ + orig_expr: sym.Expr + var_list: Sequence[sym.Symbol] + rscale: sym.Expr = field(default_factory=lambda: sym.sympify(1)) + sac: SymbolicAssignmentCollection | None = None - def __init__(self, expr, var_list, rscale=1, sac=None): - r""" - A class to take scaled derivatives of the symbolic expression - expr w.r.t. variables var_list and the scaling parameter rscale. - Consider a Taylor multipole expansion: - .. math:: - f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i f) (x - y) \big|_{y = c} - \frac{(y - c)^i}{i!} . - Now suppose we would like to use a scaled version :math:`g` of the - kernel :math:`f`: - .. math:: - \begin{eqnarray*} - f (x) & = & g (x / \alpha),\\ - f^{(i)} (x) & = & \frac{1}{\alpha^i} g^{(i)} (x / \alpha) . - \end{eqnarray*} - where :math:`\alpha` is chosen to be on a length scale similar to - :math:`x` (for example by choosing :math:`\alpha` proporitional to the - size of the box for which the expansion is intended) so that :math:`x / - \alpha` is roughly of unit magnitude, to avoid arithmetic issues with - small arguments. This yields - .. math:: - f (x - y) = \sum_{i = 0}^{\infty} (\partial_y^i g) - \left( \frac{x - y}{\alpha} \right) \Bigg|_{y = c} - \cdot - \frac{(y - c)^i}{\alpha^i \cdot i!}. - Observe that the :math:`(y - c)` term is now scaled to unit magnitude, - as is the argument of :math:`g`. - With :math:`\xi = x / \alpha`, we find - .. math:: - \begin{eqnarray*} - g (\xi) & = & f (\alpha \xi),\\ - g^{(i)} (\xi) & = & \alpha^i f^{(i)} (\alpha \xi) . - \end{eqnarray*} - Generically for all kernels, :math:`f^{(i)} (\alpha \xi)` is computable - by taking a sufficient number of symbolic derivatives of :math:`f` and - providing :math:`\alpha \xi = x` as the argument. - Now, for some kernels, like :math:`f (x) = C \log x`, the powers of - :math:`\alpha^i` from the chain rule cancel with the ones from the - argument substituted into the kernel derivatives: - .. math:: - g^{(i)} (\xi) = \alpha^i f^{(i)} (\alpha \xi) = C' \cdot \alpha^i \cdot - \frac{1}{(\alpha x)^i} \quad (i > 0), - making them what you might call *scale-invariant*. - This derivative taker returns :math:`g^{(i)}(\xi) = \alpha^i f^{(i)}` - given :math:`f^{(0)}` as *expr* and :math:`\alpha` as :attr:`rscale`. - """ + cache_by_mi: dict[MultiIndex, sym.Expr] = field(init=False) - assert isinstance(expr, sym.Basic) - self.var_list = var_list - zero_mi = (0,) * len(var_list) - self.cache_by_mi = {zero_mi: expr} - self.rscale = rscale - self.sac = sac - self.dim = len(self.var_list) - self.orig_expr = expr + def __post_init__(self): + zero_mi = (0,) * self.dim + object.__setattr__(self, "cache_by_mi", {zero_mi: self.orig_expr}) - def mi_dist(self, a, b): - return np.array(a, dtype=int) - np.array(b, dtype=int) + @property + def dim(self): + return len(self.var_list) - def diff(self, mi): + def diff(self, mi: MultiIndex) -> sym.Expr: """Take the derivative of the expression represented by :class:`ExprDerivativeTaker`. :param mi: multi-index representing the derivative @@ -146,19 +171,21 @@ def diff(self, mi): return expr - def get_derivative_taking_sequence(self, start_mi, end_mi): + def get_derivative_taking_sequence(self, + start_mi: MultiIndex, + end_mi: MultiIndex) -> Iterable[tuple[sym.Symbol, MultiIndex]]: current_mi = np.array(start_mi, dtype=int) for idx, (mi_i, vec_i) in enumerate( - zip(self.mi_dist(end_mi, start_mi), self.var_list, strict=True)): + zip(sub_mi(end_mi, start_mi), self.var_list, strict=True)): for _ in range(1, 1 + mi_i): current_mi[idx] += 1 yield vec_i, tuple(current_mi) - def get_closest_cached_mi(self, mi): + def get_closest_cached_mi(self, mi: MultiIndex): return min((other_mi for other_mi in self.cache_by_mi if (np.array(mi) >= np.array(other_mi)).all()), - key=lambda other_mi: sum(self.mi_dist(mi, other_mi))) + key=lambda other_mi: sum(sub_mi(mi, other_mi))) # }}} @@ -169,13 +196,19 @@ class LaplaceDerivativeTaker(ExprDerivativeTaker): """Specialized derivative taker for Laplace potential. """ - def __init__(self, expr, var_list, rscale=1, sac=None): - super().__init__(expr, var_list, rscale, sac) - self.scaled_var_list = [add_to_sac(self.sac, v/rscale) for v in var_list] - self.scaled_r = add_to_sac(self.sac, + @property + @memoize_method + def scaled_var_list(self): + return [add_to_sac(self.sac, v/self.rscale) for v in self.var_list] + + @property + @memoize_method + def scaled_r(self): + return add_to_sac(self.sac, sym.sqrt(sum(v**2 for v in self.scaled_var_list))) - def diff(self, mi): + @override + def diff(self, mi: MultiIndex) -> sym.Expr: """ Implements the algorithm described in [Fernando2021] to take cartesian derivatives of Laplace potential using recurrences. Cost of each derivative @@ -186,7 +219,7 @@ def diff(self, mi): """ # Return zero for negative values. Makes the algorithm readable. if min(mi) < 0: - return 0 + return sym.sympify(0) try: return self.cache_by_mi[mi] except KeyError: @@ -233,25 +266,34 @@ def diff(self, mi): # {{{ RadialDerivativeTaker +@dataclass(frozen=True) class RadialDerivativeTaker(ExprDerivativeTaker): """Specialized derivative taker for radial expressions. """ - def __init__(self, expr, var_list, rscale=1, sac=None): - """ - Takes the derivatives of a radial function. - """ - import sumpy.symbolic as sym - super().__init__(expr, var_list, rscale, sac) - empty_mi = (0,) * len(var_list) - self.cache_by_mi_q = {(empty_mi, 0): expr} - self.r = sym.sqrt(sum(v**2 for v in var_list)) + cache_by_mi_q: dict[tuple[MultiIndex, int], sym.Expr] = field(init=False) + + def __post_init__(self): + empty_mi = (0,) * len(self.var_list) + object.__setattr__(self, "cache_by_mi_q", {(empty_mi, 0): self.orig_expr}) + + @property + @memoize_method + def r(self): + return sym.sqrt(sum(v**2 for v in self.var_list)) + + @property + def is_radial(self): rsym = sym.Symbol("_r") - r_expr = expr.xreplace({self.r**2: rsym**2}) - self.is_radial = not any(r_expr.has(v) for v in var_list) - self.var_list_multiplied = [add_to_sac(sac, v * rscale) for v in var_list] + r_expr = self.orig_expr.xreplace({self.r**2: rsym**2}) + return not any(r_expr.has(v) for v in self.var_list) - def diff(self, mi, q=0): + @property + @memoize_method + def var_list_multiplied(self): + return [add_to_sac(self.sac, v * self.rscale) for v in self.var_list] + + def diff(self, mi: MultiIndex, q: int = 0) -> sym.Expr: """ Implements the algorithm described in [Tausch2003] to take cartesian derivatives of radial functions using recurrences. Cost of each derivative @@ -347,7 +389,7 @@ def diff(self, mi, q=0): DerivativeCoeffDict = dict[tuple[int, ...], int | float | complex | sym.Expr] -@tag_dataclass +@dataclass(frozen=True) class DifferentiatedExprDerivativeTaker: """Implements the :class:`ExprDerivativeTaker` interface for an expression that is itself a linear combination of @@ -366,7 +408,7 @@ class DifferentiatedExprDerivativeTaker: taker: ExprDerivativeTaker derivative_coeff_dict: DerivativeCoeffDict - def diff(self, mi, save_intermediate=lambda x: x): + def diff(self, mi: MultiIndex, save_intermediate=lambda x: x) -> sym.Expr: # By passing `rscale` to the derivative taker we are taking a scaled # version of the derivative which is `expr.diff(mi)*rscale**sum(mi)` # which might be implemented efficiently for kernels like Laplace. diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 29dfec562..e393fd9c6 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -31,7 +31,6 @@ ClassVar, Generic, Literal, - TypeAlias, TypeVar, cast, overload, @@ -69,8 +68,6 @@ Kernel interface ---------------- -.. autoclass:: ArithmeticExpr - .. autoclass:: KernelArgument .. autoclass:: Kernel :show-inheritance: @@ -160,8 +157,6 @@ :show-inheritance: """ -ArithmeticExpr: TypeAlias = int | float | complex | sym.Basic - @dataclass(frozen=True) class KernelArgument: @@ -262,7 +257,7 @@ def get_code_transformer(self) -> Callable[[Expression], Expression]: return lambda expr: expr @abstractmethod - def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + def get_expression(self, dist_vec: sp.Matrix) -> sym.Expr: """ :returns: a :mod:`sympy` expression for the kernel. """ @@ -291,8 +286,8 @@ def _diff(self, def get_derivative_taker( self, dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: """ :returns: an :class:`~sumpy.derivative_taker.ExprDerivativeTaker` instance @@ -302,16 +297,16 @@ def get_derivative_taker( @overload def postprocess_at_source( - self, expr: sym.Expr, avec: sp.Matrix + self, expr: sym.Expr, avec: sym.Matrix ) -> sym.Expr: ... @overload def postprocess_at_source( - self, expr: ExprDerivativeTaker, avec: sp.Matrix + self, expr: ExprDerivativeTaker, avec: sym.Matrix ) -> DifferentiatedExprDerivativeTaker: ... def postprocess_at_source( - self, expr: sym.Expr | ExprDerivativeTaker, avec: sp.Matrix, + self, expr: sym.Expr | ExprDerivativeTaker, avec: sym.Matrix, ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place where the vector :math:`a` (something - source) is known. ("something" may be @@ -334,17 +329,20 @@ def postprocess_at_source( @overload def postprocess_at_target( - self, expr: sym.Expr, bvec: sp.Matrix, + self, expr: sym.Expr, bvec: sym.Matrix, ) -> sym.Expr: ... @overload def postprocess_at_target( - self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + self, expr: ExprDerivativeTaker | DifferentiatedExprDerivativeTaker, + bvec: sym.Matrix, ) -> DifferentiatedExprDerivativeTaker: ... - def postprocess_at_target( - self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, - ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + def postprocess_at_target(self, + expr: + sym.Expr | ExprDerivativeTaker | DifferentiatedExprDerivativeTaker, + bvec: sym.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place where the vector :math:`b` (target - something) is known. ("something" may be an expansion center or a target.) @@ -368,7 +366,7 @@ def get_derivative_coeff_dict_at_source( return expr_dict @abstractmethod - def get_global_scaling_const(self) -> ArithmeticExpr: + def get_global_scaling_const(self) -> sym.Expr: r"""A global scaling constant of the kernel. Typically, this ensures that the kernel is scaled so that @@ -426,9 +424,9 @@ def __str__(self) -> str: return f"ExprKnl{self.dim}D" @override - def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + def get_expression(self, dist_vec: sym.Matrix) -> sym.Expr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - expr = PymbolicToSympyMapperWithSymbols()(self.expression) + expr = PymbolicToSympyMapperWithSymbols().to_expr(self.expression) if self.dim != len(dist_vec): raise ValueError( @@ -444,16 +442,16 @@ def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: return expr @override - def get_global_scaling_const(self) -> ArithmeticExpr: + def get_global_scaling_const(self) -> sym.Expr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - return PymbolicToSympyMapperWithSymbols()(self.global_scaling_const) + return PymbolicToSympyMapperWithSymbols().to_expr(self.global_scaling_const) @override def get_derivative_taker( self, - dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + dvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: return ExprDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -512,9 +510,9 @@ def __str__(self) -> str: @override def get_derivative_taker( self, - dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + dvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: from sumpy.derivative_taker import LaplaceDerivativeTaker return LaplaceDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -562,8 +560,8 @@ def __str__(self) -> str: def get_derivative_taker( self, dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: from sumpy.derivative_taker import RadialDerivativeTaker return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -640,9 +638,9 @@ def get_args(self) -> Sequence[KernelArgument]: @override def get_derivative_taker( self, - dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + dvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -727,9 +725,9 @@ def get_args(self) -> Sequence[KernelArgument]: @override def get_derivative_taker( self, - dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + dvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) @@ -1114,7 +1112,7 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU return self.inner_kernel.prepare_loopy_kernel(loopy_knl) @override - def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + def get_expression(self, dist_vec: sym.Matrix) -> sym.Expr: return self.inner_kernel.get_expression(dist_vec) @override @@ -1140,7 +1138,7 @@ def postprocess_at_target( return self.inner_kernel.postprocess_at_target(expr, bvec) @override - def get_global_scaling_const(self) -> ArithmeticExpr: + def get_global_scaling_const(self) -> sym.Expr: return self.inner_kernel.get_global_scaling_const() @override @@ -1161,11 +1159,10 @@ def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: f"'replace_base_kernel' is not implemented for '{type(self).__name__}'") @override - def get_derivative_taker( - self, - dvec: sp.Matrix, - rscale: ArithmeticExpr, - sac: SymbolicAssignmentCollection, + def get_derivative_taker(self, + dvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None, ) -> ExprDerivativeTaker: return self.inner_kernel.get_derivative_taker(dvec, rscale, sac) diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 2864dd692..dabf1bf0d 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -26,8 +26,9 @@ THE SOFTWARE. """ - import logging +from abc import ABC +from typing import TYPE_CHECKING import numpy as np from typing_extensions import override @@ -42,6 +43,11 @@ from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like +if TYPE_CHECKING: + import pyopencl as cl + + from sumpy.expansion.local import LineTaylorLocalExpansion + logger = logging.getLogger(__name__) @@ -73,11 +79,18 @@ def stringify_expn_index(i): # {{{ base class -class LayerPotentialBase(KernelCacheMixin, KernelComputation): - def __init__(self, ctx, expansion, strength_usage=None, - value_dtypes=None, name=None, device=None, - source_kernels=None, target_kernels=None): - +class LayerPotentialBase(KernelCacheMixin, KernelComputation, ABC): + expansion: LineTaylorLocalExpansion + + def __init__(self, + ctx: cl.Context, + expansion: LineTaylorLocalExpansion, + strength_usage=None, + value_dtypes=None, + name=None, + device=None, + source_kernels=None, + target_kernels=None): from pytools import single_valued KernelComputation.__init__(self, ctx=ctx, target_kernels=target_kernels, @@ -96,7 +109,7 @@ def get_cache_key(self): def _expand(self, sac, avec, bvec, rscale, isrc): from sumpy.symbolic import PymbolicToSympyMapper conv = PymbolicToSympyMapper() - strengths = [conv(self.get_strength_or_not(isrc, idx)) + strengths = [conv.to_expr(self.get_strength_or_not(isrc, idx)) for idx in range(len(self.source_kernels))] coefficients = self.expansion.coefficients_from_source_vec( self.source_kernels, avec, bvec, rscale=rscale, weights=strengths, @@ -189,9 +202,7 @@ def get_default_src_tgt_arguments(self): *gather_loopy_source_arguments(self.source_kernels) ] - def get_kernel(self): - raise NotImplementedError - + @override def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array, centers_is_obj_array, # Used by pytential to override the name of the loop to be diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 5d7526e3b..288ff9e4a 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -39,7 +39,7 @@ import logging import math -from typing import TYPE_CHECKING, ClassVar, TypeAlias +from typing import TYPE_CHECKING, ClassVar from typing_extensions import override @@ -138,8 +138,6 @@ def _find_symbolic_backend(): Number = sym.Number Float = sym.Float -ArithmeticExpr: TypeAlias = int | float | complex | Expr - def _coeff_isneg(a: Basic) -> bool: if a.is_Mul: @@ -163,13 +161,13 @@ def UnevaluatedExpr(x): # noqa: N802 def doit(expr: Expr) -> Expr: return expr - def unevaluated_pow(a: Expr, b: complex | Expr) -> ArithmeticExpr: + def unevaluated_pow(a: Expr, b: complex | Expr) -> Expr: return Pow(a, b) else: def doit(expr: Expr) -> Expr: return expr.doit() - def unevaluated_pow(a: Expr, b: complex | Expr) -> ArithmeticExpr: + def unevaluated_pow(a: Expr, b: complex | Expr) -> Expr: return Pow(a, b, evaluate=False) @@ -341,7 +339,7 @@ def map_variable(self, expr: prim.Variable) -> Basic: return PymbolicToSympyMapper.map_variable(self, expr) @override - def map_subscript(self, expr: prim.Subscript) -> Basic: + def map_subscript(self, expr: prim.Subscript) -> sym.Basic: if isinstance(expr.aggregate, prim.Variable) and isinstance(expr.index, int): return Symbol(f"{expr.aggregate.name}{expr.index}") else: @@ -349,7 +347,7 @@ def map_subscript(self, expr: prim.Subscript) -> Basic: raise @override - def map_call(self, expr: prim.Call) -> Basic: + def map_call(self, expr: prim.Call) -> sym.Basic: function = expr.function if isinstance(function, prim.Variable): if function.name == "hankel_1": diff --git a/sumpy/tools.py b/sumpy/tools.py index 2a178eb55..ef9bde387 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -27,20 +27,19 @@ THE SOFTWARE. """ - import enum import logging import warnings from abc import ABC, abstractmethod -from collections.abc import Hashable, Sequence +from collections.abc import Hashable, Sequence, Set from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, TypeAlias +from typing import TYPE_CHECKING, Any, TypeAlias, cast import numpy as np import loopy as lp import pytools.obj_array as obj_array -from pymbolic.mapper import WalkMapper +from pymbolic.mapper.dependency import DependencyMapper from pyopencl import MemoryObjectHolder from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -51,12 +50,14 @@ if TYPE_CHECKING: import numpy from numpy.typing import DTypeLike + from optype.numpy import Array2D import pyopencl import pyopencl as cl from pymbolic.primitives import Variable from pymbolic.typing import Expression + from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion import ExpansionBase from sumpy.kernel import Kernel, KernelArgument @@ -144,6 +145,11 @@ def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) # noqa: C409 +def sub_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: + # NOTE: these are used a lot and `tuple([])` is faster + return tuple([mi1i - mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) # noqa: C409 + + def mi_factorial(mi: Sequence[int]) -> int: import math result = 1 @@ -167,9 +173,9 @@ def mi_set_axis(mi: Sequence[int], axis: int, value: int) -> tuple[int, ...]: def mi_power( - vector: Sequence[Any], mi: Sequence[int], - evaluate: bool = True) -> Any: - result = 1 + vector: Sequence[sym.Expr], mi: Sequence[int], + evaluate: bool = True) -> sym.Expr: + result = sym.sympify(1) for mi_i, vec_i in zip(mi, vector, strict=True): if mi_i == 1: result *= vec_i @@ -180,7 +186,7 @@ def mi_power( return result -def add_to_sac(sac, expr): +def add_to_sac(sac: SymbolicAssignmentCollection | None, expr: sym.Expr): if sac is None: return expr @@ -191,24 +197,13 @@ def add_to_sac(sac, expr): name = sac.assign_temp("temp", expr) return sym.Symbol(name) - # }}} # {{{ get variables -class GatherAllVariables(WalkMapper): - def __init__(self): - self.vars = set() - - def map_variable(self, expr): - self.vars.add(expr) - - -def get_all_variables(expr: Expression) -> set[Variable]: - mapper = GatherAllVariables() - mapper(expr) - return mapper.vars +def get_all_variables(expr: Expression) -> Set[Variable]: + return cast("Set[Variable]", DependencyMapper()(expr)) # }}} @@ -374,7 +369,7 @@ def __init__(self, ctx: cl.Context, @property @abstractmethod - def default_name(self): + def default_name(self) -> str: pass def get_kernel_scaling_assignments(self): @@ -392,7 +387,7 @@ def get_kernel_scaling_assignments(self): zip(self.target_kernels, self.value_dtypes, strict=True))] @abstractmethod - def get_kernel(self): + def get_kernel(self) -> lp.TranslationUnit: pass # }}} @@ -477,11 +472,11 @@ def get_cache_key(self) -> tuple[Hashable, ...]: ... @abstractmethod - def get_kernel(self, **kwargs: Any) -> lp.TranslationUnit: + def get_kernel(self) -> lp.TranslationUnit: ... @abstractmethod - def get_optimized_kernel(self, **kwargs: Any) -> lp.TranslationUnit: + def get_optimized_kernel(self) -> lp.TranslationUnit: ... @memoize_method @@ -546,7 +541,7 @@ def is_obj_array_like(ary): # {{{ matrices -def reduced_row_echelon_form(m, atol=0): +def reduced_row_echelon_form(m: Array2D[Any], atol: float = 0): """Calculates a reduced row echelon form of a matrix `m`. @@ -609,7 +604,7 @@ def reduced_row_echelon_form(m, atol=0): return mat, pivot_cols -def nullspace(m, atol=0): +def nullspace(m: Array2D[Any], atol: float = 0): """Calculates the nullspace of a matrix `m`. :arg m: a 2D :class:`numpy.ndarray` or a list of lists or a sympy Matrix @@ -693,7 +688,7 @@ def matvec_toeplitz_upper_triangular(first_row, vector): return output -to_complex_type_dict = { +to_complex_type_dict: dict[type[Any], type[np.complexfloating]] = { np.complex64: np.complex64, np.complex128: np.complex128, np.float32: np.complex64, @@ -701,10 +696,10 @@ def matvec_toeplitz_upper_triangular(first_row, vector): } -def to_complex_dtype(dtype): +def to_complex_dtype(dtype: DTypeLike) -> np.dtype[np.complexfloating]: np_type = np.dtype(dtype).type try: - return to_complex_type_dict[np_type] + return np.dtype(to_complex_type_dict[np_type]) except KeyError as err: raise RuntimeError(f"Unknown dtype: {dtype}") from err From 6498089fa060d47c0aff28f500d11dc054d73a3a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 22 Oct 2025 13:38:45 -0500 Subject: [PATCH 216/335] Type more of the expansion functionality --- sumpy/expansion/__init__.py | 363 ++++++++++++++++++----------------- sumpy/expansion/diff_op.py | 14 +- sumpy/expansion/local.py | 331 +++++++++++++++++++------------- sumpy/expansion/m2l.py | 116 ++++++++--- sumpy/expansion/multipole.py | 143 +++++++------- sumpy/fmm.py | 58 +++--- sumpy/qbx.py | 9 +- sumpy/test/test_fmm.py | 11 +- sumpy/test/test_kernels.py | 5 +- sumpy/test/test_misc.py | 14 +- sumpy/toys.py | 2 +- 11 files changed, 608 insertions(+), 458 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index fe96602d0..eb7139554 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -22,10 +22,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - import logging from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Any, ClassVar +from dataclasses import dataclass, field, replace +from typing import TYPE_CHECKING, Any, ClassVar, Protocol +from warnings import warn + +from typing_extensions import Self, override import pymbolic.primitives as prim from pytools import memoize_method @@ -35,10 +38,12 @@ if TYPE_CHECKING: - from collections.abc import Hashable, Sequence + from collections.abc import Callable, Hashable, Sequence import loopy as lp + from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.diff_op import MultiIndex from sumpy.expansion.local import LocalExpansionBase from sumpy.expansion.multipole import MultipoleExpansionBase from sumpy.kernel import Kernel @@ -60,6 +65,8 @@ Expansion Factories ^^^^^^^^^^^^^^^^^^^ +.. autoclass:: LocalExpansionFactory +.. autoclass:: MultipoleExpansionFactory .. autoclass:: ExpansionFactoryBase .. autoclass:: DefaultExpansionFactory .. autoclass:: VolumeTaylorExpansionFactory @@ -68,6 +75,7 @@ # {{{ expansion base +@dataclass(frozen=True) class ExpansionBase(ABC): """ .. attribute:: kernel @@ -88,23 +96,18 @@ class ExpansionBase(ABC): .. automethod:: __eq__ .. automethod:: __ne__ """ - init_arg_names: tuple[str, ...] = ("kernel", "order", "use_rscale") - - def __init__(self, - kernel: Kernel, - order: int, - use_rscale: bool | None = None) -> None: - # Don't be tempted to remove target derivatives here. - # Line Taylor QBX can't do without them, because it can't - # apply those derivatives to the expanded quantity. - self.kernel = kernel - self.order = order + kernel: Kernel + order: int + use_rscale: bool = field(kw_only=True, default=True) - if use_rscale is None: - use_rscale = True + def __post_init__(self): + if self.use_rscale is None: + warn("use_rscale is None in ExpansionBase. " + "This is deprecated and will stop working in 2026.", + DeprecationWarning, stacklevel=1) - self.use_rscale = use_rscale + object.__setattr__(self, "use_rscale", True) # {{{ propagate kernel interface @@ -136,13 +139,23 @@ def get_source_args(self): # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self) -> list[Hashable]: + def get_storage_index(self, mi: MultiIndex) -> int: + ... + + @abstractmethod + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: """ :returns: the identifiers of the coefficients that actually get stored. """ @abstractmethod - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): + def coefficients_from_source(self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: """Form an expansion from a source point. :arg avec: vector from source to center. @@ -156,8 +169,15 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): """ def coefficients_from_source_vec(self, - kernels, avec, bvec, rscale, weights, sac=None): + kernels: Sequence[Kernel], + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + weights: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: """Form an expansion with a linear combination of kernels and weights. + *kernels* and *weights* must have the same length. :arg avec: vector from source to center. :arg bvec: vector from center to target. Not usually necessary, @@ -168,16 +188,18 @@ def coefficients_from_source_vec(self, :returns: a list of :mod:`sympy` expressions representing the coefficients of the expansion. """ - result = [0]*len(self) + result: list[sym.Expr] = [sym.sympify(0)]*len(self) for knl, weight in zip(kernels, weights, strict=True): coeffs = self.coefficients_from_source(knl, avec, bvec, rscale, sac=sac) for i in range(len(result)): result[i] += weight * coeffs[i] return result - def loopy_expansion_formation( - self, kernels: Sequence[Kernel], - strength_usage: Sequence[int], nstrengths: int) -> lp.TranslationUnit: + def loopy_expansion_formation(self, + kernels: Sequence[Kernel], + strength_usage: Sequence[int], + nstrengths: int + ) -> lp.TranslationUnit: """ :returns: a :mod:`loopy` kernel that returns the coefficients for the expansion given by *kernels* with each kernel using @@ -187,7 +209,13 @@ def loopy_expansion_formation( return make_p2e_loopy_kernel(self, kernels, strength_usage, nstrengths) @abstractmethod - def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> sym.Expr: """ :returns: a :mod:`sympy` expression corresponding to the evaluated expansion with the coefficients @@ -207,48 +235,22 @@ def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: # {{{ copy def with_kernel(self, kernel: Kernel) -> ExpansionBase: - return type(self)(kernel, self.order, self.use_rscale) + return replace(self, kernel=kernel) - def copy(self, **kwargs) -> ExpansionBase: - new_kwargs = { - name: getattr(self, name) - for name in self.init_arg_names} - - for name in self.init_arg_names: - new_kwargs[name] = kwargs.pop(name, getattr(self, name)) - - if kwargs: - raise TypeError( - "unexpected keyword arguments '{}'".format(", ".join(kwargs))) - - return type(self)(**new_kwargs) + def copy(self, **kwargs) -> Self: + return replace(self, **kwargs) # }}} - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.kernel) - key_builder.rec(key_hash, self.order) - key_builder.rec(key_hash, self.use_rscale) - def __len__(self): return len(self.get_coefficient_identifiers()) - def __eq__(self, other): - return ( - type(self) is type(other) - and self.kernel == other.kernel - and self.order == other.order - and self.use_rscale == other.use_rscale) - - def __ne__(self, other): - return not self.__eq__(other) - # }}} # {{{ expansion terms wrangler +@dataclass(frozen=True) class ExpansionTermsWrangler(ABC): """ .. attribute:: order @@ -261,15 +263,9 @@ class ExpansionTermsWrangler(ABC): .. automethod:: get_full_coefficient_identifiers """ - init_arg_names: tuple[str, ...] = ("order", "dim", "max_mi") - - def __init__(self, - order: int, - dim: int, - max_mi: tuple[int, ...] | None = None) -> None: - self.order = order - self.dim = dim - self.max_mi = max_mi + order: int + dim: int + max_mi: MultiIndex | None # {{{ abstract interface @@ -279,18 +275,24 @@ def get_coefficient_identifiers(self) -> list[tuple[int, ...]]: @abstractmethod def get_full_kernel_derivatives_from_stored(self, - stored_kernel_derivatives, rscale, sac=None): + stored_kernel_derivatives: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: pass @abstractmethod def get_stored_mpole_coefficients_from_full(self, - full_mpole_coefficients, rscale, sac=None): + full_mpole_coefficients: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: pass # }}} @memoize_method - def get_full_coefficient_identifiers(self) -> Sequence[Hashable]: + def get_full_coefficient_identifiers(self) -> Sequence[MultiIndex]: """ Returns identifiers for every coefficient in the complete expansion. """ @@ -307,18 +309,7 @@ def get_full_coefficient_identifiers(self) -> Sequence[Hashable]: all(mi[i] <= self.max_mi[i] for i in range(self.dim))] def copy(self, **kwargs): - new_kwargs = { - name: getattr(self, name) - for name in self.init_arg_names} - - for name in self.init_arg_names: - new_kwargs[name] = kwargs.pop(name, getattr(self, name)) - - if kwargs: - raise TypeError( - "unexpected keyword arguments '{}'".format(", ".join(kwargs))) - - return type(self)(**new_kwargs) + return replace(self, **kwargs) # {{{ hyperplane helpers @@ -389,8 +380,7 @@ def _split_coeffs_into_hyperplanes( class FullExpansionTermsWrangler(ExpansionTermsWrangler): - - def get_storage_index(self, mi, order=None): + def get_storage_index(self, mi: MultiIndex, order: int | None = None): if not order: order = sum(mi) if self.dim == 3: @@ -408,8 +398,12 @@ def get_full_kernel_derivatives_from_stored(self, stored_kernel_derivatives, rscale, sac=None): return stored_kernel_derivatives + @override def get_stored_mpole_coefficients_from_full(self, - full_mpole_coefficients, rscale, sac=None): + full_mpole_coefficients: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: return self.get_full_kernel_derivatives_from_stored( full_mpole_coefficients, rscale, sac=sac) @@ -448,36 +442,44 @@ class CSEMatVecOperator: of values from input vector and a linear combination of values from the output vector. - .. attribute:: from_input_coeffs_by_row - - An object of type ``List[List[Tuple[int, Any]]]``. Each element - in the list represents a row of the matrix using a linear combination - of values from the input vector. Each element has the form - ``(index of input vector, coeff)``. - - Number of rows in the matrix represented is equal to the - length of the `from_input_coeffs_by_row` list. + .. autoattribute:: from_input_coeffs_by_row + .. autoattribute:: from_output_coeffs_by_row + .. autoattribute:: shape + """ - .. attribute:: from_output_coeffs_by_row + shape: tuple[int, int] - An object of type ``List[List[Tuple[int, Any]]]``. Each element - in the list represents a row of the matrix using a linear combination - of values from the output vector. Each element has the form - ``(index of output vector, coeff)``. + from_input_coeffs_by_row: Sequence[Sequence[tuple[int, sym.Expr]]] + """Each element in the list represents a row of the matrix using a + linear combination of values from the input vector. Each element has the form + ``(index of input vector, coeff)``. - .. attribute:: shape + Number of rows in the matrix represented is equal to the + length of the `from_input_coeffs_by_row` list.""" - Shape of the matrix as a tuple. - """ + from_output_coeffs_by_row: Sequence[Sequence[tuple[int, sym.Expr]]] + """Each element in the list represents a row of the matrix using a linear + combination of values from the output vector. Each element has the form + ``(index of output vector, coeff)``.""" - def __init__(self, from_input_coeffs_by_row, from_output_coeffs_by_row, shape): + def __init__(self, + from_input_coeffs_by_row: + Sequence[Sequence[tuple[int, sym.Expr]]], + from_output_coeffs_by_row: + Sequence[Sequence[tuple[int, sym.Expr]]], + shape: tuple[int, int]): self.from_input_coeffs_by_row = from_input_coeffs_by_row self.from_output_coeffs_by_row = from_output_coeffs_by_row self.shape = shape assert len(self.from_input_coeffs_by_row) == shape[0] assert len(self.from_output_coeffs_by_row) == shape[0] - def matvec(self, inp, wrap_intermediate=lambda x: x): + def matvec(self, + inp: Sequence[sym.Expr], + wrap_intermediate: + Callable[[sym.Expr], sym.Expr] + = lambda x: x + ): """ :arg inp: vector for the matrix vector multiplication @@ -486,9 +488,9 @@ def matvec(self, inp, wrap_intermediate=lambda x: x): final expressions in the vector resulting in an expensive matvec. """ assert len(inp) == self.shape[1] - out = [] + out: list[sym.Expr] = [] for i in range(self.shape[0]): - value = 0 + value = sym.sympify(0) for input_index, coeff in self.from_input_coeffs_by_row[i]: value += inp[input_index] * coeff for output_index, coeff in self.from_output_coeffs_by_row[i]: @@ -496,9 +498,14 @@ def matvec(self, inp, wrap_intermediate=lambda x: x): out.append(wrap_intermediate(value)) return out - def transpose_matvec(self, inp, wrap_intermediate=lambda x: x): + def transpose_matvec(self, + inp: Sequence[sym.Expr], + wrap_intermediate: + Callable[[sym.Expr], sym.Expr] + = lambda x: x + ): assert len(inp) == self.shape[0] - res = [0]*self.shape[1] + res: list[sym.Expr] = [sym.sympify(0)]*self.shape[1] expr_all = list(inp) for i in reversed(range(self.shape[0])): for output_index, coeff in self.from_output_coeffs_by_row[i]: @@ -513,37 +520,36 @@ def transpose_matvec(self, inp, wrap_intermediate=lambda x: x): # {{{ LinearPDEBasedExpansionTermsWrangler +@dataclass(frozen=True) class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): """ .. automethod:: __init__ """ - init_arg_names = ("order", "dim", "knl", "max_mi") - - def __init__(self, - order: int, dim: int, knl: Kernel, - max_mi: tuple[int, ...] | None = None) -> None: - r""" - :param order: order of the expansion - :param dim: number of dimensions - :param knl: kernel for the PDE - """ - super().__init__(order, dim, max_mi) - self.knl = knl + knl: Kernel + @override def get_coefficient_identifiers(self): return self.stored_identifiers + @override def get_full_kernel_derivatives_from_stored(self, - stored_kernel_derivatives, rscale, sac=None): + stored_kernel_derivatives: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: from sumpy.tools import add_to_sac projection_matrix = self.get_projection_matrix(rscale) return projection_matrix.matvec(stored_kernel_derivatives, lambda x: add_to_sac(sac, x)) + @override def get_stored_mpole_coefficients_from_full(self, - full_mpole_coefficients, rscale, sac=None): + full_mpole_coefficients: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: from sumpy.tools import add_to_sac projection_matrix = self.get_projection_matrix(rscale) @@ -603,6 +609,7 @@ def mi_key(ident): return mi_key, axis_permutation + @override def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: mis = self.get_full_coefficient_identifiers() mi_to_index = {mi: i for i, mi in enumerate(mis)} @@ -693,7 +700,8 @@ def get_stored_ids_and_unscaled_projection_matrix(self): # Order of the expansion is less than the order of the PDE. # In that case, the compression matrix is the identity matrix # and there's nothing to project - from_input_coeffs_by_row = [[(i, 1)] for i in range(len(mis))] + from_input_coeffs_by_row = [ + [(i, sym.sympify(1))] for i in range(len(mis))] from_output_coeffs_by_row = [[] for _ in range(len(mis))] shape = (len(mis), len(mis)) op = CSEMatVecOperator(from_input_coeffs_by_row, @@ -755,7 +763,7 @@ def is_stored(mi): return stored_identifiers, op @memoize_method - def get_projection_matrix(self, rscale): + def get_projection_matrix(self, rscale: sym.Expr): r""" Return a :class:`CSEMatVecOperator` object which exposes a matrix vector multiplication operator for the projection matrix that expresses @@ -812,9 +820,7 @@ def get_projection_matrix(self, rscale): # {{{ volume taylor expansion -# FIXME: This is called an expansion but doesn't inherit from ExpansionBase? - -class VolumeTaylorExpansionMixin: +class VolumeTaylorExpansionMixin(ExpansionBase, ABC): expansion_terms_wrangler_class: ClassVar[type[ExpansionTermsWrangler]] expansion_terms_wrangler_cache: ClassVar[dict[Hashable, Any]] = {} @@ -838,6 +844,7 @@ def expansion_terms_wrangler(self): return self.get_or_make_expansion_terms_wrangler( *self.expansion_terms_wrangler_key) + @override def get_coefficient_identifiers(self): """ Returns the identifiers of the coefficients that actually get stored. @@ -853,62 +860,61 @@ def _storage_loc_dict(self): return {i: idx for idx, i in enumerate(self.get_coefficient_identifiers())} - def get_storage_index(self, i): - return self._storage_loc_dict[i] - + @override + def get_storage_index(self, mi: MultiIndex): + return self._storage_loc_dict[mi] -class VolumeTaylorExpansion(VolumeTaylorExpansionMixin): - expansion_terms_wrangler_class = FullExpansionTermsWrangler - # not user-facing, be strict about having to pass use_rscale - def __init__(self, kernel: Kernel, order: int, use_rscale: bool) -> None: - self.expansion_terms_wrangler_key = (order, kernel.dim) +class VolumeTaylorExpansion(VolumeTaylorExpansionMixin, ABC): + expansion_terms_wrangler_class: ClassVar[type[ExpansionTermsWrangler]] \ + = FullExpansionTermsWrangler - -class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionMixin): - expansion_terms_wrangler_class = LinearPDEBasedExpansionTermsWrangler - - # not user-facing, be strict about having to pass use_rscale - def __init__(self, kernel: Kernel, order: int, use_rscale: bool) -> None: - self.expansion_terms_wrangler_key = (order, kernel.dim, kernel) + @property + def expansion_terms_wrangler_key(self): + return (self.order, self.kernel.dim, None) -class LaplaceConformingVolumeTaylorExpansion( - LinearPDEConformingVolumeTaylorExpansion): +class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionMixin, ABC): + expansion_terms_wrangler_class: ClassVar[type[ExpansionTermsWrangler]] = \ + LinearPDEBasedExpansionTermsWrangler - def __init__(self, *args, **kwargs): - from warnings import warn - warn("LaplaceConformingVolumeTaylorExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) + @property + def expansion_terms_wrangler_key(self): + return (self.order, self.kernel.dim, None, self.kernel) +# }}} -class HelmholtzConformingVolumeTaylorExpansion( - LinearPDEConformingVolumeTaylorExpansion): - def __init__(self, *args, **kwargs): - from warnings import warn - warn("HelmholtzConformingVolumeTaylorExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) +# {{{ expansion factory +class MultipoleExpansionFactory(Protocol): + """ + A protocol, matches :class:`~sumpy.expansion.multipole.MultipoleExpansionBase` + constructors. -class BiharmonicConformingVolumeTaylorExpansion( - LinearPDEConformingVolumeTaylorExpansion): + .. automethod:: __call__ + """ + def __call__(self, + kernel: Kernel, + order: int, + *, use_rscale: bool = True + ) -> MultipoleExpansionBase: + ... - def __init__(self, *args, **kwargs): - from warnings import warn - warn("BiharmonicConformingVolumeTaylorExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) -# }}} +class LocalExpansionFactory(Protocol): + """ + A protocol, matches :class:`~sumpy.expansion.local.LocalExpansionBase` constructors. + .. automethod:: __call__ + """ + def __call__(self, + kernel: Kernel, + order: int, + *, use_rscale: bool = True + ) -> LocalExpansionBase: + ... -# {{{ expansion factory class ExpansionFactoryBase(ABC): """ @@ -918,16 +924,16 @@ class ExpansionFactoryBase(ABC): @abstractmethod def get_local_expansion_class(self, - base_kernel: Kernel - ) -> type[LocalExpansionBase]: + base_kernel: Kernel, / + ) -> LocalExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @abstractmethod def get_multipole_expansion_class(self, - base_kernel: Kernel - ) -> type[MultipoleExpansionBase]: + base_kernel: Kernel, / + ) -> MultipoleExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -938,14 +944,16 @@ class VolumeTaylorExpansionFactory(ExpansionFactoryBase): expansions for each kernel. """ - def get_local_expansion_class(self, base_kernel): + @override + def get_local_expansion_class(self, base_kernel: Kernel, /): """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ from sumpy.expansion.local import VolumeTaylorLocalExpansion return VolumeTaylorLocalExpansion - def get_multipole_expansion_class(self, base_kernel): + @override + def get_multipole_expansion_class(self, base_kernel: Kernel, /): """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -958,7 +966,10 @@ class DefaultExpansionFactory(ExpansionFactoryBase): expansion for each kernel. """ - def get_local_expansion_class(self, base_kernel): + @override + def get_local_expansion_class(self, + base_kernel: Kernel, /, + ) -> LocalExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -972,7 +983,10 @@ def get_local_expansion_class(self, base_kernel): except NotImplementedError: return VolumeTaylorLocalExpansion - def get_multipole_expansion_class(self, base_kernel): + @override + def get_multipole_expansion_class(self, + base_kernel: Kernel, /, + ) -> MultipoleExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -990,15 +1004,12 @@ def get_multipole_expansion_class(self, base_kernel): __all__ = [ - "BiharmonicConformingVolumeTaylorExpansion", "CSEMatVecOperator", "DefaultExpansionFactory", "ExpansionBase", "ExpansionFactoryBase", "ExpansionTermsWrangler", "FullExpansionTermsWrangler", - "HelmholtzConformingVolumeTaylorExpansion", - "LaplaceConformingVolumeTaylorExpansion", "LinearPDEBasedExpansionTermsWrangler", "LinearPDEConformingVolumeTaylorExpansion", "VolumeTaylorExpansion", diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index f2127a446..fc67fb48d 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -28,7 +28,7 @@ import logging from dataclasses import dataclass from itertools import accumulate -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, TypeAlias import numpy as np import sympy as sp @@ -48,6 +48,13 @@ logger = logging.getLogger(__name__) __doc__ = """ +.. autodata:: MultiIndex + :no-index: + +.. class:: MultiIndex + + See above. + Differential operator interface ------------------------------- @@ -58,6 +65,9 @@ """ +MultiIndex: TypeAlias = tuple[int, ...] + + @dataclass(frozen=True) class DerivativeIdentifier: """ @@ -65,7 +75,7 @@ class DerivativeIdentifier: .. autoattribute: vec_idx """ - mi: tuple[int, ...] + mi: MultiIndex """ Multi-index of the derivative being taken, a tuple with a number of entries corresponding to the dimension. diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index ebd376f94..bc3bf7b50 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -25,7 +25,11 @@ import logging import math -from abc import abstractmethod +from abc import ABC, abstractmethod +from dataclasses import dataclass, field +from typing import TYPE_CHECKING + +from typing_extensions import override from pytools import single_valued @@ -36,9 +40,22 @@ VolumeTaylorExpansion, VolumeTaylorExpansionMixin, ) +from sumpy.expansion.multipole import H2DMultipoleExpansion, Y2DMultipoleExpansion from sumpy.tools import add_to_sac, mi_increment_axis +if TYPE_CHECKING: + from collections.abc import Sequence + + from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.m2l import M2LTranslationBase + from sumpy.expansion.multipole import ( + HankelBased2DMultipoleExpansion, + MultipoleExpansionBase, + ) + from sumpy.kernel import Kernel + + logger = logging.getLogger(__name__) __doc__ = """ @@ -52,39 +69,28 @@ """ -class LocalExpansionBase(ExpansionBase): +@dataclass(frozen=True) +class LocalExpansionBase(ExpansionBase, ABC): """Base class for local expansions. .. automethod:: translate_from """ - init_arg_names = ("kernel", "order", "use_rscale", "m2l_translation") - - def __init__(self, kernel, order, use_rscale=None, - m2l_translation=None): - super().__init__(kernel, order, use_rscale) - self.m2l_translation = m2l_translation - - def with_kernel(self, kernel): - return type(self)(kernel, self.order, self.use_rscale, - self.m2l_translation) - - def update_persistent_hash(self, key_hash, key_builder): - super().update_persistent_hash(key_hash, key_builder) - key_builder.rec(key_hash, self.m2l_translation) - - def __eq__(self, other): - return ( - type(self) is type(other) - and self.kernel == other.kernel - and self.order == other.order - and self.use_rscale == other.use_rscale - and self.m2l_translation == other.m2l_translation - ) + @property + @abstractmethod + def m2l_translation(self) -> M2LTranslationBase: + ... @abstractmethod - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): + def translate_from(self, + src_expansion: LocalExpansionBase | MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + m2l_translation_classes_dependent_data=None + ) -> Sequence[sym.Expr]: """Translate from a multipole or local expansion to a local expansion :arg src_expansion: The source expansion to translate from. @@ -106,13 +112,27 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # {{{ line taylor class LineTaylorLocalExpansion(LocalExpansionBase): + @property + @override + def m2l_translation(self): + # FIXME: Um... + raise NotImplementedError() + def get_storage_index(self, k): return k + def get_coefficient_identifiers(self): return list(range(self.order+1)) - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): + @override + def coefficients_from_source(self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ): # no point in heeding rscale here--just ignore it if bvec is None: raise RuntimeError("cannot use line-Taylor expansions in a setting " @@ -121,7 +141,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): tau = sym.Symbol("tau") - avec_line = avec + tau*bvec + avec_line: sym.Matrix = avec + tau*bvec line_kernel = kernel.get_expression(avec_line) @@ -156,8 +176,16 @@ def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): coeffs[self.get_storage_index(i)] / math.factorial(i) for i in self.get_coefficient_identifiers())) - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): + @override + def translate_from(self, + src_expansion: LocalExpansionBase | MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + m2l_translation_classes_dependent_data=None + ) -> Sequence[sym.Expr]: raise NotImplementedError # }}} @@ -165,22 +193,35 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # {{{ volume taylor +@dataclass(frozen=True) class VolumeTaylorLocalExpansionBase(VolumeTaylorExpansionMixin, LocalExpansionBase): """ Coefficients represent derivative values of the kernel. """ - def __init__(self, kernel, order, use_rscale=None, - m2l_translation=None): - if not m2l_translation: + m2l_translation_override: M2LTranslationBase | None = \ + field(kw_only=True, default=None) + + @property + @override + def m2l_translation(self) -> M2LTranslationBase: + if self.m2l_translation_override is not None: + return self.m2l_translation_override + else: from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory factory = DefaultM2LTranslationClassFactory() - m2l_translation = factory.get_m2l_translation_class(kernel, + return factory.get_m2l_translation_class(self.kernel, self.__class__)() - super().__init__(kernel, order, use_rscale, m2l_translation) - def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, - sac=None): + @override + def coefficients_from_source_vec(self, + kernels: Sequence[Kernel], + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + weights: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: """Form an expansion with a linear combination of kernels and weights. Since all of the kernels share a base kernel, this method uses one derivative taker with one SymbolicAssignmentCollection object @@ -196,11 +237,11 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, the coefficients of the expansion. """ if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) base_kernel = single_valued(knl.get_base_kernel() for knl in kernels) base_taker = base_kernel.get_derivative_taker(avec, rscale, sac) - result = [0]*len(self) + result: list[sym.Expr] = [sym.sympify(0)]*len(self) for knl, weight in zip(kernels, weights, strict=True): taker = knl.postprocess_at_source(base_taker, avec) @@ -220,13 +261,26 @@ def save_temp(x): return result - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): + @override + def coefficients_from_source(self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: return self.coefficients_from_source_vec((kernel,), avec, bvec, - rscale=rscale, weights=(1,), sac=sac) - - def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): - if not self.use_rscale: - rscale = 1 + rscale=rscale, weights=(sym.sympify(1),), sac=sac) + + @override + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> sym.Expr: + rscale = sym.sympify(1 if not self.use_rscale else rscale) evaluated_coeffs = ( self.expansion_terms_wrangler.get_full_kernel_derivatives_from_stored( @@ -235,19 +289,27 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): bvec_scaled = [b*rscale**-1 for b in bvec] from sumpy.tools import mi_factorial, mi_power - result = sum( + result = sym.sympify(sum( coeff * mi_power(bvec_scaled, mi, evaluate=False) / mi_factorial(mi) for coeff, mi in zip( evaluated_coeffs, self.get_full_coefficient_identifiers(), - strict=True)) + strict=True))) return kernel.postprocess_at_target(result, bvec) - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, _fast_version=True, - m2l_translation_classes_dependent_data=None): + @override + def translate_from(self, + src_expansion: LocalExpansionBase | MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + m2l_translation_classes_dependent_data=None, + _fast_version: bool = True, + ) -> Sequence[sym.Expr]: logger.info("building translation operator for %s: %s(%d) -> %s(%d): start", src_expansion.kernel, type(src_expansion).__name__, @@ -256,8 +318,8 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, self.order) if not self.use_rscale: - src_rscale = 1 - tgt_rscale = 1 + src_rscale = sym.sympify(1) + tgt_rscale = sym.sympify(1) from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansionBase @@ -273,10 +335,12 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # }}} + assert isinstance(src_expansion, VolumeTaylorLocalExpansionBase) + # {{{ L2L # not coming from a Taylor multipole: expand via derivatives - rscale_ratio = add_to_sac(sac, tgt_rscale/src_rscale) + rscale_ratio = add_to_sac(sac, sym.sympify(tgt_rscale/src_rscale)) src_wrangler = src_expansion.expansion_terms_wrangler src_coeffs = ( @@ -354,7 +418,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, cur_dim_input_coeffs = src_coeffs # O(1) iterations for d in dims: - cur_dim_output_coeffs = [0] * len(src_mis) + cur_dim_output_coeffs: list[sym.Expr] = [sym.sympify(0)] * len(src_mis) # Only O(p^{d-1}) operations are used in compressed # O(p^d) operations are used in full for out_i, out_mi in enumerate(src_mis): @@ -417,73 +481,44 @@ def loopy_translate_from(self, src_expansion): class VolumeTaylorLocalExpansion( VolumeTaylorExpansion, VolumeTaylorLocalExpansionBase): - - def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): - VolumeTaylorLocalExpansionBase.__init__(self, kernel, order, use_rscale, - m2l_translation=m2l_translation) - VolumeTaylorExpansion.__init__(self, kernel, order, use_rscale) + pass class LinearPDEConformingVolumeTaylorLocalExpansion( LinearPDEConformingVolumeTaylorExpansion, VolumeTaylorLocalExpansionBase): - - def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): - VolumeTaylorLocalExpansionBase.__init__(self, kernel, order, use_rscale, - m2l_translation=m2l_translation) - LinearPDEConformingVolumeTaylorExpansion.__init__( - self, kernel, order, use_rscale) - - -class LaplaceConformingVolumeTaylorLocalExpansion( - LinearPDEConformingVolumeTaylorLocalExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("LaplaceConformingVolumeTaylorLocalExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorLocalExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) - - -class HelmholtzConformingVolumeTaylorLocalExpansion( - LinearPDEConformingVolumeTaylorLocalExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("HelmholtzConformingVolumeTaylorLocalExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorLocalExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) - - -class BiharmonicConformingVolumeTaylorLocalExpansion( - LinearPDEConformingVolumeTaylorLocalExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("BiharmonicConformingVolumeTaylorLocalExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorLocalExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) + pass # }}} # {{{ 2D Bessel-based-expansion -class _FourierBesselLocalExpansion(LocalExpansionBase): - def __init__(self, - kernel, order, mpole_expn_class, - use_rscale=None, m2l_translation=None): - if not m2l_translation: +@dataclass(frozen=True) +class FourierBesselLocalExpansionMixin(LocalExpansionBase, ABC): + + m2l_translation_override: M2LTranslationBase | None = field( + kw_only=True, default=None) + + @property + @abstractmethod + def mpole_expn_class(self) -> type[HankelBased2DMultipoleExpansion]: + ... + + @property + @override + def m2l_translation(self) -> M2LTranslationBase: + if self.m2l_translation_override is not None: + return self.m2l_translation_override + else: from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory factory = DefaultM2LTranslationClassFactory() - m2l_translation = ( - factory.get_m2l_translation_class(kernel, self.__class__)()) - - super().__init__(kernel, order, use_rscale, m2l_translation) - self.mpole_expn_class = mpole_expn_class + return ( + factory.get_m2l_translation_class(self.kernel, self.__class__)()) + from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory + factory = DefaultM2LTranslationClassFactory() + return factory.get_m2l_translation_class(self.kernel, + self.__class__)() @abstractmethod def get_bessel_arg_scaling(self): @@ -495,9 +530,16 @@ def get_storage_index(self, k): def get_coefficient_identifiers(self): return list(range(-self.order, self.order+1)) - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): + @override + def coefficients_from_source(self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) from sumpy.symbolic import Hankel1, sym_real_norm_2 @@ -512,9 +554,16 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): * sym.exp(sym.I * c * source_angle_rel_center), avec) for c in self.get_coefficient_identifiers()] - def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): + @override + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> sym.Expr: if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) from sumpy.symbolic import BesselJ, sym_real_norm_2 bvec_len = sym_real_norm_2(bvec) @@ -522,20 +571,28 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): arg_scale = self.get_bessel_arg_scaling() - return sum(coeffs[self.get_storage_index(c)] + return sym.sympify(sum(coeffs[self.get_storage_index(c)] * kernel.postprocess_at_target( BesselJ(c, arg_scale * bvec_len, 0) / rscale ** abs(c) * sym.exp(sym.I * c * -target_angle_rel_center), bvec) - for c in self.get_coefficient_identifiers()) - - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, m2l_translation_classes_dependent_data=None): + for c in self.get_coefficient_identifiers())) + + @override + def translate_from(self, + src_expansion: LocalExpansionBase | MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + m2l_translation_classes_dependent_data=None + ) -> Sequence[sym.Expr]: from sumpy.symbolic import BesselJ, sym_real_norm_2 if not self.use_rscale: - src_rscale = 1 - tgt_rscale = 1 + src_rscale = sym.sympify(1) + tgt_rscale = sym.sympify(1) arg_scale = self.get_bessel_arg_scaling() @@ -572,32 +629,34 @@ def loopy_translate_from(self, src_expansion): f"{src_expansion} to {self} is not implemented.") -class H2DLocalExpansion(_FourierBesselLocalExpansion): - def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): +class H2DLocalExpansion(FourierBesselLocalExpansionMixin): + def __post_init__(self): from sumpy.kernel import HelmholtzKernel - assert (isinstance(kernel.get_base_kernel(), HelmholtzKernel) - and kernel.dim == 2) + assert (isinstance(self.kernel.get_base_kernel(), HelmholtzKernel) + and self.kernel.dim == 2) - from sumpy.expansion.multipole import H2DMultipoleExpansion - super().__init__(kernel, order, H2DMultipoleExpansion, - use_rscale=use_rscale, - m2l_translation=m2l_translation) + @property + @override + def mpole_expn_class(self) -> type[HankelBased2DMultipoleExpansion]: + return H2DMultipoleExpansion + @override def get_bessel_arg_scaling(self): return sym.Symbol(self.kernel.get_base_kernel().helmholtz_k_name) -class Y2DLocalExpansion(_FourierBesselLocalExpansion): - def __init__(self, kernel, order, use_rscale=None, m2l_translation=None): +class Y2DLocalExpansion(FourierBesselLocalExpansionMixin): + def __post_init__(self): from sumpy.kernel import YukawaKernel - assert (isinstance(kernel.get_base_kernel(), YukawaKernel) - and kernel.dim == 2) + assert (isinstance(self.kernel.get_base_kernel(), YukawaKernel) + and self.kernel.dim == 2) - from sumpy.expansion.multipole import Y2DMultipoleExpansion - super().__init__(kernel, order, Y2DMultipoleExpansion, - use_rscale=use_rscale, - m2l_translation=m2l_translation) + @property + @override + def mpole_expn_class(self) -> type[HankelBased2DMultipoleExpansion]: + return Y2DMultipoleExpansion + @override def get_bessel_arg_scaling(self): return sym.I * sym.Symbol(self.kernel.get_base_kernel().yukawa_lambda_name) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index a64c0937e..59685dd63 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -23,23 +23,48 @@ THE SOFTWARE. """ + import logging from abc import ABC, abstractmethod -from typing import Any, ClassVar, cast +from typing import TYPE_CHECKING, Any, ClassVar, TypeAlias, cast import numpy as np +from typing_extensions import override import loopy as lp import pymbolic import pymbolic.primitives as p import sumpy.symbolic as sym +from sumpy.expansion.local import ( + FourierBesselLocalExpansionMixin, + VolumeTaylorLocalExpansionBase, +) +from sumpy.expansion.multipole import ( + HankelBased2DMultipoleExpansion, + VolumeTaylorMultipoleExpansionBase, +) from sumpy.tools import add_to_sac, matvec_toeplitz_upper_triangular +if TYPE_CHECKING: + from collections.abc import Sequence + + from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.local import ( + LocalExpansionBase, + VolumeTaylorLocalExpansion, + ) + from sumpy.expansion.multipole import ( + MultipoleExpansionBase, + VolumeTaylorMultipoleExpansion, + ) + + logger = logging.getLogger(__name__) __doc__ = """ +.. class:: TranslationClassesDepData .. autoclass:: M2LTranslationClassFactoryBase .. autoclass:: NonFFTM2LTranslationClassFactory .. autoclass:: FFTM2LTranslationClassFactory @@ -76,12 +101,12 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): *base_kernel* and *local_expansion_class*. """ from sumpy.expansion.local import ( + FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion, ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LTranslation - elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + elif issubclass(local_expansion_class, FourierBesselLocalExpansionMixin): return FourierBesselM2LTranslation else: raise RuntimeError( @@ -98,12 +123,12 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): *base_kernel* and *local_expansion_class*. """ from sumpy.expansion.local import ( + FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion, ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LWithFFT - elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + elif issubclass(local_expansion_class, FourierBesselLocalExpansionMixin): return FourierBesselM2LWithFFT else: raise RuntimeError( @@ -115,12 +140,12 @@ class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): 'best known' translation type for each kernel and local expansion class""" def get_m2l_translation_class(self, base_kernel, local_expansion_class): from sumpy.expansion.local import ( + FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, - _FourierBesselLocalExpansion, ) if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): return VolumeTaylorM2LWithFFT - elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): + elif issubclass(local_expansion_class, FourierBesselLocalExpansionMixin): return FourierBesselM2LTranslation else: raise RuntimeError( @@ -131,6 +156,9 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): # {{{ M2LTranslationBase +TranslationClassesDepData: TypeAlias = tuple[Any, ...] + + class M2LTranslationBase(ABC): """Base class for Multipole to Local Translation @@ -158,17 +186,34 @@ def __eq__(self, other): return type(self) is type(other) @abstractmethod - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - pass - - def loopy_translate(self, tgt_expansion, src_expansion): + def translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data: + TranslationClassesDepData | None = None + ) -> Sequence[sym.Expr]: + ... + + def loopy_translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> lp.TranslationUnit: raise NotImplementedError( f"A direct loopy kernel for translation from " f"{src_expansion} to {tgt_expansion} using {self} is not implemented.") - def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac) -> tuple[Any, ...]: + def translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_rscale: sym.Expr, + dvec: sym.Matrix, + sac: SymbolicAssignmentCollection | None = None, + ) -> TranslationClassesDepData: """Return an iterable of expressions that needs to be precomputed for multipole-to-local translations that depend only on the distance between the multipole center and the local center which @@ -184,7 +229,10 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, """ return () - def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + def translation_classes_dependent_ndata(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> int: """Return the number of expressions returned by :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. This method exists because calculating the number of expressions using @@ -359,6 +407,9 @@ def _translation_classes_dependent_data_mis(self, tgt_expansion, def translation_classes_dependent_data(self, tgt_expansion, src_expansion, src_rscale, dvec, sac): + assert isinstance(tgt_expansion, VolumeTaylorLocalExpansionBase) + assert isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase) + # We know the general form of the multipole expansion is: # # coeff0 * diff(kernel(src - c1), mi0) + @@ -375,7 +426,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, # m2l. if not tgt_expansion.use_rscale: - src_rscale = 1 + src_rscale = sym.sympify(1) circulant_matrix_mis, needed_vector_terms, max_mi = \ self._translation_classes_dependent_data_mis(tgt_expansion, @@ -756,8 +807,15 @@ def loopy_translate(self, tgt_expansion, src_expansion): class VolumeTaylorM2LWithFFT(VolumeTaylorM2LWithPreprocessedMultipoles): use_fft: ClassVar[bool] = True - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): + def translate(self, + tgt_expansion: VolumeTaylorLocalExpansion, + src_expansion: VolumeTaylorMultipoleExpansion, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data=None): assert translation_classes_dependent_data derivatives = translation_classes_dependent_data @@ -848,8 +906,16 @@ def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): nexpr = 2 * tgt_expansion.order + 2 * src_expansion.order + 1 return nexpr - def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac): + @override + def translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_rscale: sym.Expr, + dvec: sym.Matrix, + sac: SymbolicAssignmentCollection | None = None): + + assert isinstance(tgt_expansion, FourierBesselLocalExpansionMixin) + assert isinstance(src_expansion, HankelBased2DMultipoleExpansion) from sumpy.symbolic import Hankel1, sym_real_norm_2 @@ -857,8 +923,8 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) arg_scale = tgt_expansion.get_bessel_arg_scaling() # [-(src_order+tgt_order), ..., 0, ..., (src_order + tgt_order)] - translation_classes_dependent_data = \ - [0] * (2*tgt_expansion.order + 2 * src_expansion.order + 1) + translation_classes_dependent_data: list[sym.Expr] = \ + [sym.sympify(0)] * (2*tgt_expansion.order + 2 * src_expansion.order + 1) # The M2L is a mirror image of a Toeplitz matvec with Hankel function # evaluations. https://dlmf.nist.gov/10.23.F1 @@ -872,7 +938,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, Hankel1(m + j, arg_scale * dvec_len, 0) * sym.exp(sym.I * (m + j) * new_center_angle_rel_old_center)) - return translation_classes_dependent_data + return tuple(translation_classes_dependent_data) def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): @@ -989,7 +1055,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): raise NotImplementedError def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac): + src_rscale, dvec, sac=None): translation_classes_dependent_data = \ super().translation_classes_dependent_data(tgt_expansion, @@ -1012,7 +1078,7 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, first_column_circulant = list(first_column_toeplitz) + \ list(reversed(first_row_toeplitz)) - return first_column_circulant + return tuple(first_column_circulant) def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 45f3bced8..429510522 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -25,7 +25,10 @@ import logging import math -from abc import abstractmethod +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING + +from typing_extensions import override import sumpy.symbolic as sym from sumpy.expansion import ( @@ -37,6 +40,13 @@ from sumpy.tools import add_to_sac, mi_factorial, mi_power, mi_set_axis +if TYPE_CHECKING: + from collections.abc import Sequence + + from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.kernel import Kernel + + logger = logging.getLogger(__name__) @@ -50,7 +60,7 @@ """ -class MultipoleExpansionBase(ExpansionBase): +class MultipoleExpansionBase(ExpansionBase, ABC): pass @@ -62,8 +72,15 @@ class VolumeTaylorMultipoleExpansionBase( Coefficients represent the terms in front of the kernel derivatives. """ - def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, - sac=None): + @override + def coefficients_from_source_vec(self, + kernels: Sequence[Kernel], + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + weights: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: """This method calculates the full coefficients, sums them up and compresses them. This is more efficient that calculating full coefficients, compressing and then summing. @@ -71,9 +88,10 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, from sumpy.kernel import KernelWrapper if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) - result = [0]*len(self.get_full_coefficient_identifiers()) + result: list[sym.Expr] = \ + [sym.sympify(0)]*len(self.get_full_coefficient_identifiers()) for kernel, weight in zip(kernels, weights, strict=True): if isinstance(kernel, KernelWrapper): coeffs = [ @@ -93,12 +111,19 @@ def coefficients_from_source_vec(self, kernels, avec, bvec, rscale, weights, def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): return self.coefficients_from_source_vec((kernel,), avec, bvec, - rscale, (1,), sac=sac) - - def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): + rscale, (sym.sympify(1),), sac=sac) + + @override + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> sym.Expr: from sumpy.derivative_taker import DifferentiatedExprDerivativeTaker if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) base_taker = kernel.get_derivative_taker(bvec, rscale, sac) # Following is a no-op, but AxisTargetDerivative.postprocess_at_target @@ -115,16 +140,25 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): result = sym.Add(*tuple(result)) return result - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, _fast_version=True): + def translate_from(self, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + _fast_version: bool = True + ) -> Sequence[sym.Expr]: if not isinstance(src_expansion, type(self)): raise RuntimeError( f"do not know how to translate {type(src_expansion).__name__} to " "a Taylor multipole expansion") + src_coeff_exprs = list(src_coeff_exprs) + if not self.use_rscale: - src_rscale = 1 - tgt_rscale = 1 + src_rscale = sym.sympify(1) + tgt_rscale = sym.sympify(1) logger.info("building translation operator for %s: %s(%d) -> %s(%d): start", src_expansion.kernel, @@ -236,7 +270,8 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, tgt_hyperplanes = \ self.expansion_terms_wrangler._split_coeffs_into_hyperplanes() - result = [0] * len(self.get_full_coefficient_identifiers()) + result: list[sym.Expr] = \ + [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) # axis morally iterates over 'hyperplane directions' for axis in range(self.dim): @@ -245,8 +280,8 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, # First, let's write source coefficients in target coefficient # indices. If target order is lower than source order, then # we will discard higher order terms from source coefficients. - cur_dim_input_coeffs = \ - [0] * len(self.get_full_coefficient_identifiers()) + cur_dim_input_coeffs: list[sym.Expr] = \ + [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) for d, mis in tgt_hyperplanes: # Only consider hyperplanes perpendicular to *axis*. if d != axis: @@ -278,8 +313,8 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, for d in dims: # We build the full target multipole and then compress it # at the very end. - cur_dim_output_coeffs = \ - [0] * len(self.get_full_coefficient_identifiers()) + cur_dim_output_coeffs: list[sym.Expr] = \ + [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) for i, tgt_mi in enumerate( self.get_full_coefficient_identifiers()): @@ -308,7 +343,7 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, if not _fast_version: src_mi_to_index = {mi: i for i, mi in enumerate( src_expansion.get_coefficient_identifiers())} - result = [0] * len(self.get_full_coefficient_identifiers()) + result = [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) for i, mi in enumerate(src_expansion.get_coefficient_identifiers()): src_coeff_exprs[i] *= mi_factorial(mi) @@ -352,60 +387,20 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, class VolumeTaylorMultipoleExpansion( VolumeTaylorExpansion, VolumeTaylorMultipoleExpansionBase): - - def __init__(self, kernel, order, use_rscale=None): - VolumeTaylorMultipoleExpansionBase.__init__(self, kernel, order, use_rscale) - VolumeTaylorExpansion.__init__(self, kernel, order, use_rscale) + pass class LinearPDEConformingVolumeTaylorMultipoleExpansion( LinearPDEConformingVolumeTaylorExpansion, VolumeTaylorMultipoleExpansionBase): - - def __init__(self, kernel, order, use_rscale=None): - VolumeTaylorMultipoleExpansionBase.__init__(self, kernel, order, use_rscale) - LinearPDEConformingVolumeTaylorExpansion.__init__( - self, kernel, order, use_rscale) - - -class LaplaceConformingVolumeTaylorMultipoleExpansion( - LinearPDEConformingVolumeTaylorMultipoleExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("LaplaceConformingVolumeTaylorMultipoleExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorMultipoleExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) - - -class HelmholtzConformingVolumeTaylorMultipoleExpansion( - LinearPDEConformingVolumeTaylorMultipoleExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("HelmholtzConformingVolumeTaylorMultipoleExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorMultipoleExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) - - -class BiharmonicConformingVolumeTaylorMultipoleExpansion( - LinearPDEConformingVolumeTaylorMultipoleExpansion): - - def __init__(self, *args, **kwargs): - from warnings import warn - warn("BiharmonicConformingVolumeTaylorMultipoleExpansion is deprecated. " - "Use LinearPDEConformingVolumeTaylorMultipoleExpansion instead.", - DeprecationWarning, stacklevel=2) - super().__init__(*args, **kwargs) + pass # }}} # {{{ 2D Hankel-based expansions -class _HankelBased2DMultipoleExpansion(MultipoleExpansionBase): +class HankelBased2DMultipoleExpansion(MultipoleExpansionBase, ABC): @abstractmethod def get_bessel_arg_scaling(self): return @@ -484,27 +479,21 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, return translated_coeffs -class H2DMultipoleExpansion(_HankelBased2DMultipoleExpansion): - def __init__(self, kernel, order, use_rscale=None): +class H2DMultipoleExpansion(HankelBased2DMultipoleExpansion): + def __post_init__(self): from sumpy.kernel import HelmholtzKernel - assert (isinstance(kernel.get_base_kernel(), HelmholtzKernel) - and kernel.dim == 2) - - super().__init__( - kernel, order, use_rscale=use_rscale) + assert (isinstance(self.kernel.get_base_kernel(), HelmholtzKernel) + and self.kernel.dim == 2) def get_bessel_arg_scaling(self): return sym.Symbol(self.kernel.get_base_kernel().helmholtz_k_name) -class Y2DMultipoleExpansion(_HankelBased2DMultipoleExpansion): - def __init__(self, kernel, order, use_rscale=None): +class Y2DMultipoleExpansion(HankelBased2DMultipoleExpansion): + def __post_init__(self): from sumpy.kernel import YukawaKernel - assert (isinstance(kernel.get_base_kernel(), YukawaKernel) - and kernel.dim == 2) - - super().__init__( - kernel, order, use_rscale=use_rscale) + assert (isinstance(self.kernel.get_base_kernel(), YukawaKernel) + and self.kernel.dim == 2) def get_bessel_arg_scaling(self): return sym.I * sym.Symbol(self.kernel.get_base_kernel().yukawa_lambda_name) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 7c9587e77..002197188 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -28,20 +28,11 @@ .. autoclass:: SumpyTreeIndependentDataForWrangler .. autoclass:: SumpyExpansionWrangler -.. autodata:: MultipoleExpansionFactory - :noindex: -.. class:: MultipoleExpansionFactory - - See above. -.. autodata:: LocalExpansionFactory - :noindex: -.. class:: LocalExpansionFactory - - See above. +.. autoclass:: MultipoleExpansionFromOrderFactory +.. autoclass:: LocalExpansionFromOrderFactory """ -from collections.abc import Callable, Sequence -from typing import TYPE_CHECKING, Protocol, TypeAlias, cast +from typing import TYPE_CHECKING, Protocol, cast from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler @@ -64,8 +55,6 @@ P2EFromSingleBox, P2PFromCSR, ) -from sumpy.expansion.local import LocalExpansionBase -from sumpy.expansion.multipole import MultipoleExpansionBase from sumpy.tools import ( AggregateProfilingEvent, get_native_event, @@ -76,14 +65,23 @@ if TYPE_CHECKING: + from collections.abc import Sequence + + from sumpy.expansion.local import LocalExpansionBase + from sumpy.expansion.multipole import MultipoleExpansionBase from sumpy.kernel import Kernel -# parameters here are order, use_rscale -MultipoleExpansionFactory: TypeAlias = Callable[ - [int, bool | None], MultipoleExpansionBase] -LocalExpansionFactory: TypeAlias = Callable[ - [int, bool | None], LocalExpansionBase] +class MultipoleExpansionFromOrderFactory(Protocol): + def __call__(self, + order: int, + *, use_rscale: bool = True) -> MultipoleExpansionBase: + ... + + +class LocalExpansionFromOrderFactory(Protocol): + def __call__(self, order: int, *, use_rscale: bool = True) -> LocalExpansionBase: + ... # {{{ tree-independent data for wrangler @@ -101,8 +99,8 @@ class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): """ cl_context: cl.Context - multipole_expansion_factory: MultipoleExpansionFactory - local_expansion_factory: LocalExpansionFactory + multipole_expansion_factory: MultipoleExpansionFromOrderFactory + local_expansion_factory: LocalExpansionFromOrderFactory source_kernels: Sequence[Kernel] | None target_kernels: Sequence[Kernel] exclude_self: bool @@ -111,8 +109,8 @@ class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): def __init__(self, cl_context: cl.Context, - multipole_expansion_factory: MultipoleExpansionFactory, - local_expansion_factory: LocalExpansionFactory, + multipole_expansion_factory: MultipoleExpansionFromOrderFactory, + local_expansion_factory: LocalExpansionFromOrderFactory, target_kernels: Sequence[Kernel], exclude_self: bool = False, use_rscale: bool | None = None, @@ -146,12 +144,18 @@ def get_base_kernel(self): return single_valued(k.get_base_kernel() for k in self.target_kernels) @memoize_method - def multipole_expansion(self, order): - return self.multipole_expansion_factory(order, self.use_rscale) + def multipole_expansion(self, order: int): + if self.use_rscale is None: + return self.multipole_expansion_factory(order) + else: + return self.multipole_expansion_factory(order, use_rscale=self.use_rscale) @memoize_method - def local_expansion(self, order): - return self.local_expansion_factory(order, self.use_rscale) + def local_expansion(self, order: int): + if self.use_rscale is None: + return self.local_expansion_factory(order) + else: + return self.local_expansion_factory(order, use_rscale=self.use_rscale) @property def m2l_translation(self): diff --git a/sumpy/qbx.py b/sumpy/qbx.py index dabf1bf0d..d38fe6aad 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -46,7 +46,10 @@ if TYPE_CHECKING: import pyopencl as cl - from sumpy.expansion.local import LineTaylorLocalExpansion + from sumpy.expansion.local import ( + LineTaylorLocalExpansion, + LocalExpansionBase, + ) logger = logging.getLogger(__name__) @@ -80,11 +83,11 @@ def stringify_expn_index(i): # {{{ base class class LayerPotentialBase(KernelCacheMixin, KernelComputation, ABC): - expansion: LineTaylorLocalExpansion + expansion: LineTaylorLocalExpansion | LocalExpansionBase def __init__(self, ctx: cl.Context, - expansion: LineTaylorLocalExpansion, + expansion: LineTaylorLocalExpansion | LocalExpansionBase, strength_usage=None, value_dtypes=None, name=None, diff --git a/sumpy/test/test_fmm.py b/sumpy/test/test_fmm.py index 35210c82d..0ddae297b 100644 --- a/sumpy/test/test_fmm.py +++ b/sumpy/test/test_fmm.py @@ -26,6 +26,7 @@ import logging import os import sys +from dataclasses import fields from functools import partial import numpy as np @@ -239,10 +240,16 @@ def _test_sumpy_fmm( m2l_translation = m2l_translation_factory.get_m2l_translation_class( knl, local_expn_class)() + if any(f.name == "m2l_translation_override" for f in fields(local_expn_class)): + local_expansion_factory = partial(local_expn_class, knl, + m2l_translation_override=m2l_translation) + else: + local_expansion_factory = partial(local_expn_class, knl) + tree_indep = SumpyTreeIndependentDataForWrangler( actx.context, partial(mpole_expn_class, knl), - partial(local_expn_class, knl, m2l_translation=m2l_translation), + local_expansion_factory, target_kernels) if order_varies_with_level: @@ -510,7 +517,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) tree_indep = SumpyTreeIndependentDataForWrangler( actx.context, partial(mpole_expn_class, knl), - partial(local_expn_class, knl, m2l_translation=m2l_translation), + partial(local_expn_class, knl, m2l_translation_override=m2l_translation), target_kernels) wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 8584dcf6e..b05538075 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -597,7 +597,7 @@ def test_translations( actx.context, kernel=knl, local_expn_class=partial(local_expn_class, - m2l_translation=m2l_translation), + m2l_translation_override=m2l_translation), mpole_expn_class=mpole_expn_class, extra_kernel_kwargs=extra_kwargs, ) @@ -753,7 +753,8 @@ def test_m2l_toeplitz(): m2l_factory = NonFFTM2LTranslationClassFactory() m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() - local_expn = local_expn_class(knl, order=5, m2l_translation=m2l_translation) + local_expn = local_expn_class(knl, order=5, + m2l_translation_override=m2l_translation) mpole_expn = mpole_expn_class(knl, order=5) dvec = sym.make_sym_vector("d", dim) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 95b04b99d..76ab911c5 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -1,5 +1,7 @@ from __future__ import annotations +from sumpy.expansion.local import LinearPDEConformingVolumeTaylorLocalExpansion + __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" @@ -378,12 +380,12 @@ def test_cse_matvec(): rng = np.random.default_rng(42) vec = rng.random(2) expected_result = m @ vec - actual_result = op.matvec(vec) + actual_result = [float(x) for x in op.matvec(vec)] assert np.allclose(expected_result, actual_result) vec = rng.random(4) expected_result = m.T @ vec - actual_result = op.transpose_matvec(vec) + actual_result = [float(x) for x in op.transpose_matvec(vec)] assert np.allclose(expected_result, actual_result) # }}} @@ -542,11 +544,9 @@ def get_pde_as_diff_op(self): from functools import reduce from operator import mul - from sumpy.expansion import LinearPDEConformingVolumeTaylorExpansion - knl = MyKernel() order = 10 - expn = LinearPDEConformingVolumeTaylorExpansion(kernel=knl, + expn = LinearPDEConformingVolumeTaylorLocalExpansion(kernel=knl, order=order, use_rscale=False) coeffs = expn.get_coefficient_identifiers() @@ -592,9 +592,9 @@ def get_pde_as_diff_op(self): def test_get_storage_index(order, knl, compressed): dim = knl.dim if compressed: - wrangler = LinearPDEBasedExpansionTermsWrangler(order, dim, knl=knl) + wrangler = LinearPDEBasedExpansionTermsWrangler(order, dim, None, knl=knl) else: - wrangler = FullExpansionTermsWrangler(order, dim) + wrangler = FullExpansionTermsWrangler(order, dim, max_mi=None) for i, mi in enumerate(wrangler.get_coefficient_identifiers()): assert i == wrangler.get_storage_index(mi) diff --git a/sumpy/toys.py b/sumpy/toys.py index 0867ad378..0024fceaa 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -142,7 +142,7 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, m2l_translation_class_factory.get_m2l_translation_class( kernel, local_expn_class) local_expn_class = partial(local_expn_class, - m2l_translation=m2l_translation_class()) + m2l_translation_override=m2l_translation_class()) elif m2l_use_fft is not None: raise ValueError("local_expn_class and m2l_use_fft are both supplied. " "Use only one of these arguments") From 65b292f228fc538775404bcc899f4807642b8bbf Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 22 Oct 2025 17:15:49 -0500 Subject: [PATCH 217/335] Fourier/Hankel/LineTaylor: Use tuples as coeff identifiers --- sumpy/expansion/local.py | 36 +++++++++++++++++++++--------------- sumpy/expansion/m2l.py | 22 +++++++++++----------- sumpy/expansion/multipole.py | 22 +++++++++++++--------- 3 files changed, 45 insertions(+), 35 deletions(-) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index bc3bf7b50..9f3dc2e28 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -48,6 +48,7 @@ from collections.abc import Sequence from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.diff_op import MultiIndex from sumpy.expansion.m2l import M2LTranslationBase from sumpy.expansion.multipole import ( HankelBased2DMultipoleExpansion, @@ -118,12 +119,14 @@ def m2l_translation(self): # FIXME: Um... raise NotImplementedError() - def get_storage_index(self, k): - return k - + @override + def get_storage_index(self, mi: MultiIndex): + ind, = mi + return ind + @override def get_coefficient_identifiers(self): - return list(range(self.order+1)) + return [(i,) for i in range(self.order+1)] @override def coefficients_from_source(self, @@ -165,7 +168,7 @@ def coefficients_from_source(self, return [kernel.postprocess_at_source( line_kernel.diff(tau, i), avec) .subs(tau, 0) - for i in self.get_coefficient_identifiers()] + for i, in self.get_coefficient_identifiers()] def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): # no point in heeding rscale here--just ignore it @@ -173,7 +176,7 @@ def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): # NOTE: We can't meaningfully apply target derivatives here. # Instead, this is handled in LayerPotentialBase._evaluate. return sym.Add(*( - coeffs[self.get_storage_index(i)] / math.factorial(i) + coeffs[self.get_storage_index(i)] / math.factorial(i[0]) for i in self.get_coefficient_identifiers())) @override @@ -524,11 +527,14 @@ def m2l_translation(self) -> M2LTranslationBase: def get_bessel_arg_scaling(self): pass - def get_storage_index(self, k): - return self.order+k + @override + def get_storage_index(self, mi: MultiIndex): + ind, = mi + return self.order+ind + @override def get_coefficient_identifiers(self): - return list(range(-self.order, self.order+1)) + return [(i,) for i in range(-self.order, self.order+1)] @override def coefficients_from_source(self, @@ -552,7 +558,7 @@ def coefficients_from_source(self, Hankel1(c, arg_scale * avec_len, 0) * rscale ** abs(c) * sym.exp(sym.I * c * source_angle_rel_center), avec) - for c in self.get_coefficient_identifiers()] + for c, in self.get_coefficient_identifiers()] @override def evaluate(self, @@ -571,12 +577,12 @@ def evaluate(self, arg_scale = self.get_bessel_arg_scaling() - return sym.sympify(sum(coeffs[self.get_storage_index(c)] + return sym.sympify(sum(coeffs[self.get_storage_index((c,))] * kernel.postprocess_at_target( BesselJ(c, arg_scale * bvec_len, 0) / rscale ** abs(c) * sym.exp(sym.I * c * -target_angle_rel_center), bvec) - for c in self.get_coefficient_identifiers())) + for c, in self.get_coefficient_identifiers())) @override def translate_from(self, @@ -601,14 +607,14 @@ def translate_from(self, new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) translated_coeffs = [] - for j in self.get_coefficient_identifiers(): + for j, in self.get_coefficient_identifiers(): translated_coeffs.append( - sum(src_coeff_exprs[src_expansion.get_storage_index(m)] + sum(src_coeff_exprs[src_expansion.get_storage_index((m,))] * BesselJ(m - j, arg_scale * dvec_len, 0) / src_rscale ** abs(m) * tgt_rscale ** abs(j) * sym.exp(sym.I * (m - j) * -new_center_angle_rel_old_center) - for m in src_expansion.get_coefficient_identifiers())) + for m, in src_expansion.get_coefficient_identifiers())) return translated_coeffs if isinstance(src_expansion, self.mpole_expn_class): diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 59685dd63..4f4ade6ae 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -892,9 +892,9 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, translated_coeffs = [ sum(derivatives[m + j + tgt_expansion.order + src_expansion.order] - * src_coeff_exprs[src_expansion.get_storage_index(m)] - for m in src_expansion.get_coefficient_identifiers()) - for j in tgt_expansion.get_coefficient_identifiers()] + * src_coeff_exprs[src_expansion.get_storage_index((m,))] + for m, in src_expansion.get_coefficient_identifiers()) + for j, in tgt_expansion.get_coefficient_identifiers()] translated_coeffs = self.postprocess_local_exprs(tgt_expansion, src_expansion, translated_coeffs, src_rscale, tgt_rscale, @@ -930,10 +930,10 @@ def translation_classes_dependent_data(self, # evaluations. https://dlmf.nist.gov/10.23.F1 # This loop computes the first row and the last column vector sufficient # to specify the matrix entries. - for j in tgt_expansion.get_coefficient_identifiers(): - idx_j = tgt_expansion.get_storage_index(j) - for m in src_expansion.get_coefficient_identifiers(): - idx_m = src_expansion.get_storage_index(m) + for j, in tgt_expansion.get_coefficient_identifiers(): + idx_j = tgt_expansion.get_storage_index((j,)) + for m, in src_expansion.get_coefficient_identifiers(): + idx_m = src_expansion.get_storage_index((m,)) translation_classes_dependent_data[idx_j + idx_m] = ( Hankel1(m + j, arg_scale * dvec_len, 0) * sym.exp(sym.I * (m + j) * new_center_angle_rel_old_center)) @@ -944,8 +944,8 @@ def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale): src_coeff_exprs = list(src_coeff_exprs) - for m in src_expansion.get_coefficient_identifiers(): - src_coeff_exprs[src_expansion.get_storage_index(m)] *= src_rscale**abs(m) + for m, in src_expansion.get_coefficient_identifiers(): + src_coeff_exprs[src_expansion.get_storage_index((m,))] *= src_rscale**abs(m) return src_coeff_exprs def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): @@ -956,8 +956,8 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, # Filter out the dummy rows and scale them for target result = [] - for j in tgt_expansion.get_coefficient_identifiers(): - result.append(m2l_result[tgt_expansion.get_storage_index(j)] + for j, in tgt_expansion.get_coefficient_identifiers(): + result.append(m2l_result[tgt_expansion.get_storage_index((j,))] * tgt_rscale**(abs(j)) * sym.Integer(-1)**j) return result diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 429510522..e2761c2fd 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -44,6 +44,7 @@ from collections.abc import Sequence from sumpy.assignment_collection import SymbolicAssignmentCollection + from sumpy.expansion.diff_op import MultiIndex from sumpy.kernel import Kernel @@ -405,11 +406,14 @@ class HankelBased2DMultipoleExpansion(MultipoleExpansionBase, ABC): def get_bessel_arg_scaling(self): return - def get_storage_index(self, k): - return self.order+k + @override + def get_storage_index(self, mi: MultiIndex): + ind, = mi + return self.order+ind + @override def get_coefficient_identifiers(self): - return list(range(-self.order, self.order+1)) + return [(i,) for i in range(-self.order, self.order+1)] def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): if not self.use_rscale: @@ -431,7 +435,7 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): / rscale ** abs(c) * sym.exp(sym.I * c * -source_angle_rel_center), avec) - for c in self.get_coefficient_identifiers()] + for c, in self.get_coefficient_identifiers()] def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): if not self.use_rscale: @@ -443,12 +447,12 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): arg_scale = self.get_bessel_arg_scaling() - return sum(coeffs[self.get_storage_index(c)] + return sum(coeffs[self.get_storage_index((c,))] * kernel.postprocess_at_target( Hankel1(c, arg_scale * bvec_len, 0) * rscale ** abs(c) * sym.exp(sym.I * c * target_angle_rel_center), bvec) - for c in self.get_coefficient_identifiers()) + for c, in self.get_coefficient_identifiers()) def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac=None): @@ -468,14 +472,14 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, arg_scale = self.get_bessel_arg_scaling() translated_coeffs = [] - for j in self.get_coefficient_identifiers(): + for j, in self.get_coefficient_identifiers(): translated_coeffs.append( - sum(src_coeff_exprs[src_expansion.get_storage_index(m)] + sum(src_coeff_exprs[src_expansion.get_storage_index((m,))] * BesselJ(m - j, arg_scale * dvec_len, 0) * src_rscale ** abs(m) / tgt_rscale ** abs(j) * sym.exp(sym.I * (m - j) * new_center_angle_rel_old_center) - for m in src_expansion.get_coefficient_identifiers())) + for m, in src_expansion.get_coefficient_identifiers())) return translated_coeffs From e25b26c259e742673b4f493628b3939984fc4175 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 23 Oct 2025 18:05:58 -0500 Subject: [PATCH 218/335] Fix hyperpplanes typo --- sumpy/expansion/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index eb7139554..6e6262bf8 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -313,7 +313,7 @@ def copy(self, **kwargs): # {{{ hyperplane helpers - def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: + def _get_mi_hyperplanes(self) -> list[tuple[int, int]]: r""" Coefficient storage is organized into "hyperplanes" in multi-index space. Potentially only a subset of these hyperplanes contain @@ -359,7 +359,7 @@ def _split_coeffs_into_hyperplanes( (2, [(0, 0, 1), (1, 0, 1), (2, 0, 1), (0, 1, 1), (1, 1, 1), (0, 2, 1)]), ] """ - hyperplanes = self._get_mi_hyperpplanes() + hyperplanes = self._get_mi_hyperplanes() res = [] seen_mis = set() for d, const in hyperplanes: @@ -610,7 +610,7 @@ def mi_key(ident): return mi_key, axis_permutation @override - def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: + def _get_mi_hyperplanes(self) -> list[tuple[int, int]]: mis = self.get_full_coefficient_identifiers() mi_to_index = {mi: i for i, mi in enumerate(mis)} @@ -620,7 +620,7 @@ def _get_mi_hyperpplanes(self) -> list[tuple[int, int]]: if not all(ident.mi in mi_to_index for ident in deriv_id_to_coeff): # The order of the expansion is less than the order of the PDE. # Treat as if full expansion. - hyperplanes = super()._get_mi_hyperpplanes() + hyperplanes = super()._get_mi_hyperplanes() else: # Calculate the multi-index that appears last in in the PDE in # the degree lexicographic order given by From 829520e37dead733466868dda3dd75c80c9a1568 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 29 Oct 2025 17:06:49 -0500 Subject: [PATCH 219/335] Type more of fmm and toys --- doc/conf.py | 3 ++ sumpy/fmm.py | 80 +++++++++++++++++++++++++++++++++++++-------------- sumpy/toys.py | 68 ++++++++++++++++++++++++++++--------------- 3 files changed, 107 insertions(+), 44 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index cace734a4..5f713edf8 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -35,6 +35,7 @@ "np.floating": "class:numpy.floating", "np.complexfloating": "class:numpy.complexfloating", "np.inexact": "class:numpy.inexact", + "np.dtype": "class:numpy.dtype", # pytools "obj_array.ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # sympy @@ -49,6 +50,8 @@ "Expression": "obj:pymbolic.typing.Expression", # arraycontext "Array": "obj:arraycontext.Array", + # boxtree + "FMMTraversalInfo": "class:boxtree.traversal.FMMTraversalInfo", # sumpy "ArithmeticExpr": "obj:sumpy.kernel.ArithmeticExpr", } diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 002197188..647758a67 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -26,15 +26,24 @@ __doc__ = """Integrates :mod:`boxtree` with :mod:`sumpy`. .. autoclass:: SumpyTreeIndependentDataForWrangler +.. autodata:: FMMLevelToOrder + :no-index: +.. class:: FMMLevelToOrder + + See above. + .. autoclass:: SumpyExpansionWrangler .. autoclass:: MultipoleExpansionFromOrderFactory .. autoclass:: LocalExpansionFromOrderFactory """ -from typing import TYPE_CHECKING, Protocol, cast +from collections.abc import Callable, Mapping +from typing import TYPE_CHECKING, Any, Protocol, TypeAlias, cast +import numpy as np from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler +from boxtree.tree import Tree import pyopencl as cl import pyopencl.array as cl_array @@ -55,6 +64,7 @@ P2EFromSingleBox, P2PFromCSR, ) +from sumpy.kernel import Kernel from sumpy.tools import ( AggregateProfilingEvent, get_native_event, @@ -67,9 +77,11 @@ if TYPE_CHECKING: from collections.abc import Sequence + from boxtree.traversal import FMMTraversalInfo + from numpy.typing import DTypeLike + from sumpy.expansion.local import LocalExpansionBase from sumpy.expansion.multipole import MultipoleExpansionBase - from sumpy.kernel import Kernel class MultipoleExpansionFromOrderFactory(Protocol): @@ -306,6 +318,11 @@ def done(self): # {{{ expansion wrangler +FMMLevelToOrder: TypeAlias = Callable[ + [Kernel, frozenset[tuple[str, object]], Tree, int], + int] + + class SumpyExpansionWrangler(ExpansionWranglerInterface): """Implements the :class:`boxtree.fmm.ExpansionWranglerInterface` by using :mod:`sumpy` expansions/translations. @@ -331,23 +348,44 @@ class SumpyExpansionWrangler(ExpansionWranglerInterface): Type for the preprocessed multipole expansion if used for M2L. """ - def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, - source_extra_kwargs=None, - kernel_extra_kwargs=None, - self_extra_kwargs=None, - translation_classes_data=None, - preprocessed_mpole_dtype=None, - *, _disable_translation_classes=False): + tree_indep: SumpyTreeIndependentDataForWrangler + traversal: FMMTraversalInfo + + source_extra_kwargs: Mapping[str, object] + kernel_extra_kwargs: Mapping[str, object] + self_extra_kwargs: Mapping[str, object] + extra_kwargs: Mapping[str, object] + + dtype: np.dtype[Any] + preprocessed_mpole_dtype: np.dtype[Any] + + level_order: Sequence[int] + + issued_timing_data_warning: bool + + def __init__(self, + tree_indep: SumpyTreeIndependentDataForWrangler, + traversal: FMMTraversalInfo, + dtype: DTypeLike, + fmm_level_to_order: FMMLevelToOrder, + source_extra_kwargs: Mapping[str, object] | None = None, + kernel_extra_kwargs: Mapping[str, object] | None = None, + self_extra_kwargs: Mapping[str, object] | None = None, + translation_classes_data=None, + preprocessed_mpole_dtype: DTypeLike | None = None, + *, + _disable_translation_classes=False + ): super().__init__(tree_indep, traversal) self.issued_timing_data_warning = False - self.dtype = dtype + self.dtype = np.dtype(dtype) if not self.tree_indep.m2l_translation.use_fft: # If not FFT, we don't need complex dtypes - self.preprocessed_mpole_dtype = dtype + self.preprocessed_mpole_dtype = self.dtype elif preprocessed_mpole_dtype is not None: - self.preprocessed_mpole_dtype = preprocessed_mpole_dtype + self.preprocessed_mpole_dtype = np.dtype(preprocessed_mpole_dtype) else: # FIXME: It is weird that the wrangler has to compute this. self.preprocessed_mpole_dtype = to_complex_dtype(dtype) @@ -372,7 +410,7 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, self.kernel_extra_kwargs = kernel_extra_kwargs self.self_extra_kwargs = self_extra_kwargs - self.extra_kwargs = source_extra_kwargs.copy() + self.extra_kwargs = dict(source_extra_kwargs) self.extra_kwargs.update(self.kernel_extra_kwargs) if _disable_translation_classes or not base_kernel.is_translation_invariant: @@ -390,7 +428,7 @@ def __init__(self, tree_indep, traversal, dtype, fmm_level_to_order, self.translation_classes_data = translation_classes_data - def level_to_rscale(self, level): + def level_to_rscale(self, level: int) -> float: tree = self.tree order = self.level_orders[level] r = tree.root_extent * (2**-level) @@ -411,7 +449,7 @@ def level_to_rscale(self, level): # {{{ data vector utilities - def _expansions_level_starts(self, order_to_size): + def _expansions_level_starts(self, order_to_size: Callable[[int], int]): return build_csr_level_starts(self.level_orders, order_to_size, self.tree.level_start_box_nrs) @@ -433,7 +471,7 @@ def m2l_translation_class_level_start_box_nrs(self): @memoize_method def m2l_translation_classes_dependent_data_level_starts(self): - def order_to_size(order): + def order_to_size(order: int): mpole_expn = self.tree_indep.multipole_expansion(order) local_expn = self.tree_indep.local_expansion(order) m2l_translation = local_expn.m2l_translation @@ -623,7 +661,7 @@ def form_multipoles(self, src_weight_vecs): mpoles = self.multipole_expansion_zeros(src_weight_vecs[0]) - kwargs = self.extra_kwargs.copy() + kwargs = dict(self.extra_kwargs) kwargs.update(self.box_source_list_kwargs()) events = [] @@ -716,7 +754,7 @@ def eval_direct(self, target_boxes, source_box_starts, source_box_lists, src_weight_vecs): pot = self.output_zeros(src_weight_vecs[0]) - kwargs = self.extra_kwargs.copy() + kwargs = dict(self.extra_kwargs) kwargs.update(self.self_extra_kwargs) kwargs.update(self.box_source_list_kwargs()) kwargs.update(self.box_target_list_kwargs()) @@ -963,7 +1001,7 @@ def eval_multipoles(self, target_boxes_by_source_level, source_boxes_by_level, mpole_exps): pot = self.output_zeros(mpole_exps) - kwargs = self.kernel_extra_kwargs.copy() + kwargs = dict(self.kernel_extra_kwargs) kwargs.update(self.box_target_list_kwargs()) events = [] @@ -1015,7 +1053,7 @@ def form_locals(self, target_or_target_parent_boxes, starts, lists, src_weight_vecs): local_exps = self.local_expansion_zeros(src_weight_vecs[0]) - kwargs = self.extra_kwargs.copy() + kwargs = dict(self.extra_kwargs) kwargs.update(self.box_source_list_kwargs()) events = [] @@ -1102,7 +1140,7 @@ def refine_locals(self, def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): pot = self.output_zeros(local_exps) - kwargs = self.kernel_extra_kwargs.copy() + kwargs = dict(self.kernel_extra_kwargs) kwargs.update(self.box_target_list_kwargs()) events = [] diff --git a/sumpy/toys.py b/sumpy/toys.py index 0024fceaa..18460f986 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -37,10 +37,15 @@ if TYPE_CHECKING: - from collections.abc import Sequence + from collections.abc import Mapping, Sequence import pyopencl + from sumpy.expansion import ( + ExpansionFactoryBase, + LocalExpansionFactory, + MultipoleExpansionFactory, + ) from sumpy.expansion.m2l import M2LTranslationClassFactoryBase from sumpy.kernel import Kernel from sumpy.visualization import FieldPlotter @@ -107,13 +112,27 @@ class ToyContext: .. automethod:: __init__ """ + cl_context: pyopencl.Context + queue: pyopencl.CommandQueue + kernel: Kernel + no_target_deriv_kernel: Kernel - def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, - mpole_expn_class=None, - local_expn_class=None, - expansion_factory=None, - extra_source_kwargs=None, - extra_kernel_kwargs=None, m2l_use_fft=None): + mpole_expn_class: MultipoleExpansionFactory + local_expn_class: LocalExpansionFactory + + extra_source_kwargs: Mapping[str, object] + extra_kernel_kwargs: Mapping[str, object] + extra_source_and_kernel_kwargs: Mapping[str, object] + + def __init__(self, + cl_context: pyopencl.Context, + kernel: Kernel, + mpole_expn_class: MultipoleExpansionFactory | None = None, + local_expn_class: LocalExpansionFactory | None = None, + expansion_factory: ExpansionFactoryBase | None = None, + extra_source_kwargs: Mapping[str, object] | None = None, + extra_kernel_kwargs: Mapping[str, object] | None = None, + m2l_use_fft: bool | None = None): self.cl_context = cl_context self.queue = cl.CommandQueue(self.cl_context) self.kernel = kernel @@ -143,6 +162,7 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, kernel, local_expn_class) local_expn_class = partial(local_expn_class, m2l_translation_override=m2l_translation_class()) + assert local_expn_class is not None elif m2l_use_fft is not None: raise ValueError("local_expn_class and m2l_use_fft are both supplied. " "Use only one of these arguments") @@ -158,7 +178,7 @@ def __init__(self, cl_context: pyopencl.Context, kernel: Kernel, self.extra_source_kwargs = extra_source_kwargs self.extra_kernel_kwargs = extra_kernel_kwargs - extra_source_and_kernel_kwargs = extra_source_kwargs.copy() + extra_source_and_kernel_kwargs = dict(extra_source_kwargs) extra_source_and_kernel_kwargs.update(extra_kernel_kwargs) self.extra_source_and_kernel_kwargs = extra_source_and_kernel_kwargs @@ -168,35 +188,35 @@ def get_p2p(self): return P2P(self.cl_context, (self.kernel,), exclude_self=False) @memoize_method - def get_p2m(self, order): + def get_p2m(self, order: int): from sumpy import P2EFromSingleBox return P2EFromSingleBox(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, order), kernels=(self.kernel,)) @memoize_method - def get_p2l(self, order): + def get_p2l(self, order: int): from sumpy import P2EFromSingleBox return P2EFromSingleBox(self.cl_context, self.local_expn_class(self.no_target_deriv_kernel, order), kernels=(self.kernel,)) @memoize_method - def get_m2p(self, order): + def get_m2p(self, order: int): from sumpy import E2PFromSingleBox return E2PFromSingleBox(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, order), (self.kernel,)) @memoize_method - def get_l2p(self, order): + def get_l2p(self, order: int): from sumpy import E2PFromSingleBox return E2PFromSingleBox(self.cl_context, self.local_expn_class(self.no_target_deriv_kernel, order), (self.kernel,)) @memoize_method - def get_m2m(self, from_order, to_order): + def get_m2m(self, from_order: int, to_order: int): from sumpy import E2EFromCSR return E2EFromCSR(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, from_order), @@ -213,7 +233,7 @@ def use_fft(self): return l_expn.m2l_translation.use_fft @memoize_method - def get_m2l(self, from_order, to_order): + def get_m2l(self, from_order: int, to_order: int): from sumpy import E2EFromCSR, M2LUsingTranslationClassesDependentData if self.use_translation_classes_dependent_data(): m2l_class = M2LUsingTranslationClassesDependentData @@ -224,34 +244,36 @@ def get_m2l(self, from_order, to_order): self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method - def get_m2l_translation_class_dependent_data_kernel(self, from_order, to_order): + def get_m2l_translation_class_dependent_data_kernel(self, + from_order: int, + to_order: int): from sumpy import M2LGenerateTranslationClassesDependentData return M2LGenerateTranslationClassesDependentData(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method - def get_m2l_expansion_size(self, from_order, to_order): + def get_m2l_expansion_size(self, from_order: int, to_order: int): m_expn = self.mpole_expn_class(self.no_target_deriv_kernel, from_order) l_expn = self.local_expn_class(self.no_target_deriv_kernel, to_order) return l_expn.m2l_translation.preprocess_multipole_nexprs(l_expn, m_expn) @memoize_method - def get_m2l_preprocess_mpole_kernel(self, from_order, to_order): + def get_m2l_preprocess_mpole_kernel(self, from_order: int, to_order: int): from sumpy import M2LPreprocessMultipole return M2LPreprocessMultipole(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method - def get_m2l_postprocess_local_kernel(self, from_order, to_order): + def get_m2l_postprocess_local_kernel(self, from_order: int, to_order: int): from sumpy import M2LPostprocessLocal return M2LPostprocessLocal(self.cl_context, self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method - def get_l2l(self, from_order, to_order): + def get_l2l(self, from_order: int, to_order: int): from sumpy import E2EFromCSR return E2EFromCSR(self.cl_context, self.local_expn_class(self.no_target_deriv_kernel, from_order), @@ -262,7 +284,7 @@ def get_l2l(self, from_order, to_order): # {{{ helpers -def _p2e(psource, center, rscale, order, p2e, expn_class, expn_kwargs): +def _p2e(psource, center, rscale, order: int, p2e, expn_class, expn_kwargs): toy_ctx = psource.toy_ctx queue = toy_ctx.queue @@ -328,7 +350,7 @@ def _e2p(psource, targets, e2p): return pot.get(queue) -def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, +def _e2e(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwargs, extra_kernel_kwargs): toy_ctx = psource.toy_ctx queue = toy_ctx.queue @@ -377,7 +399,7 @@ def _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, derived_from=psource, **expn_kwargs) -def _m2l(psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, +def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwargs, translation_classes_kwargs): toy_ctx = psource.toy_ctx queue = toy_ctx.queue @@ -658,7 +680,7 @@ class ExpansionPotentialSource(PotentialSource): .. automethod:: __init__ """ - def __init__(self, toy_ctx, center, rscale, order, coeffs, derived_from, + def __init__(self, toy_ctx, center, rscale, order: int, coeffs, derived_from, radius=None, expn_style=None, text_kwargs=None): super().__init__(toy_ctx) self.center = np.asarray(center) From 4a9d626b4b00e1978b89aba504e789c9f384e070 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 22 Oct 2025 15:34:47 -0500 Subject: [PATCH 220/335] Update baseline --- .basedpyright/baseline.json | 39710 ++++++++++++---------------------- 1 file changed, 13467 insertions(+), 26243 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index b58a62509..dd4a1d47f 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -606,261 +606,263 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 30, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 24, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 48, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 43, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 33, + "startColumn": 48, + "endColumn": 64, + "lineCount": 1 + } + } + ], + "./sumpy/codegen.py": [ + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 73, + "startColumn": 52, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 35, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 19, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 26, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 30, - "endColumn": 52, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 46, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 43, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { "startColumn": 19, - "endColumn": 51, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 27, - "endColumn": 43, + "startColumn": 26, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 30, - "endColumn": 55, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 4, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 30, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, + "startColumn": 30, "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 29, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 20, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 41, "endColumn": 50, @@ -868,338 +870,346 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 64, + "startColumn": 25, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 64, + "startColumn": 20, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 43, + "startColumn": 31, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 31, - "endColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 43, - "endColumn": 68, + "startColumn": 31, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 44, + "startColumn": 4, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 18, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 21, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 34, + "startColumn": 24, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 56, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 28, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 34, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 40, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 40, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 48, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 48, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 44, + "startColumn": 19, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 49, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 28, - "endColumn": 51, + "startColumn": 29, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 40, + "startColumn": 13, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 64, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 48, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 64, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 12, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, @@ -1207,81 +1217,79 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 42, "lineCount": 1 } - } - ], - "./sumpy/codegen.py": [ + }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 61, + "startColumn": 20, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 20, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, - "endColumn": 33, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAssignmentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 31, + "endColumn": 55, "lineCount": 1 } }, @@ -1289,572 +1297,548 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 33, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportOperatorIssue", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 35, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 1 + "startColumn": 20, + "endColumn": 78, + "lineCount": 3 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 29, + "startColumn": 51, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 39, + "startColumn": 74, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 39, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 54, + "startColumn": 63, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 40, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 38, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 50, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAssignmentType", "range": { - "startColumn": 20, - "endColumn": 40, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 31, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 35, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 33, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 33, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 60, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 34, + "startColumn": 60, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 13, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 55, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 65, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportImplicitOverride", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 30, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 30, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 44, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 44, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 31, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 53, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 38, + "startColumn": 32, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, + "startColumn": 15, "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 35, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 35, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 54, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 62, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 57, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 55, + "startColumn": 54, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 16, @@ -1865,7 +1849,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 27, + "endColumn": 28, "lineCount": 1 } }, @@ -1873,63 +1857,79 @@ "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, + "startColumn": 38, "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 50, + "startColumn": 38, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 24, + "endColumn": 35, "lineCount": 1 } }, @@ -1937,23 +1937,23 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 78, - "lineCount": 3 + "endColumn": 58, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 52, + "startColumn": 32, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 46, + "endColumn": 52, "lineCount": 1 } }, @@ -1961,15 +1961,23 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 54, - "endColumn": 61, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 72, + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, @@ -1977,132 +1985,132 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 36, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, + "startColumn": 29, "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 43, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 68, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 74, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 58, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 58, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 71, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 71, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 58, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 38, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 29, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 16, @@ -2113,7 +2121,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 27, + "endColumn": 28, "lineCount": 1 } }, @@ -2121,7 +2129,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 27, + "endColumn": 28, "lineCount": 1 } }, @@ -2129,7 +2137,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 30, - "endColumn": 34, + "endColumn": 33, "lineCount": 1 } }, @@ -2137,326 +2145,326 @@ "code": "reportMissingParameterType", "range": { "startColumn": 30, - "endColumn": 34, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 20, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 33, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 47, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 20, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 43, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 68, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 74, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAssignmentType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 20, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 38, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 38, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 35, - "endColumn": 57, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 54, - "endColumn": 60, + "startColumn": 37, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 37, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 44, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 44, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 23, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 37, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, + "startColumn": 37, "endColumn": 54, "lineCount": 1 } @@ -2464,384 +2472,384 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 32, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 44, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 44, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 58, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 45, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 65, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 20, - "endColumn": 78, + "startColumn": 32, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 44, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 44, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 66, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 66, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 32, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 68, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAssignmentType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 23, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 35, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 48, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 13, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 55, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 46, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAssignmentType", "range": { - "startColumn": 47, - "endColumn": 49, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 78, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 32, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 47, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 38, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, @@ -2861,19 +2869,11 @@ "lineCount": 1 } }, - { - "code": "reportMissingTypeArgument", - "range": { - "startColumn": 20, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 20, "lineCount": 1 } }, @@ -2881,30 +2881,30 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, + "startColumn": 34, "endColumn": 38, "lineCount": 1 } @@ -2912,288 +2912,296 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 30, + "startColumn": 34, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, + "startColumn": 41, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, + "startColumn": 41, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAssignmentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 60, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 60, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, + "startColumn": 26, "endColumn": 39, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 42, + "startColumn": 20, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 42, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 74, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 64, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 64, + "startColumn": 29, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 37, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 37, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 43, + "startColumn": 24, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 30, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAssignmentType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 40, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 66, - "endColumn": 75, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 66, - "endColumn": 75, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 27, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 43, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 11, + "endColumn": 20, "lineCount": 1 } }, @@ -3214,111 +3222,103 @@ } }, { - "code": "reportMissingTypeArgument", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 20, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 56, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 25, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 17, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAssignmentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 44, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 26, "endColumn": 30, @@ -3326,569 +3326,555 @@ } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 32, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 46, + "startColumn": 32, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnusedParameter", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 19, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 30, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 70, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 63, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 32, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 33, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 4, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportCallInDefaultInitializer", "range": { - "startColumn": 30, - "endColumn": 54, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 58, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 58, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 39, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportCallInDefaultInitializer", + "range": { + "startColumn": 52, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 37, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 45, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 21, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 21, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 52, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 35, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedVariable", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 51, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 22, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 55, + "startColumn": 22, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 50, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 50, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } - }, + } + ], + "./sumpy/cse.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 5, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 24, - "endColumn": 57, + "startColumn": 9, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 30, - "endColumn": 56, + "startColumn": 9, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { "startColumn": 4, - "endColumn": 37, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 51, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 4, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 20, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 31, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 21, + "startColumn": 23, "endColumn": 28, "lineCount": 1 } @@ -3896,136 +3882,128 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 21, + "startColumn": 23, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 51, + "startColumn": 13, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 49, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 58, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 83, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 16, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, @@ -4033,7 +4011,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 38, - "endColumn": 46, + "endColumn": 44, "lineCount": 1 } }, @@ -4041,71 +4019,71 @@ "code": "reportMissingParameterType", "range": { "startColumn": 38, - "endColumn": 46, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 67, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, @@ -4113,55 +4091,55 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 31, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 53, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 43, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 59, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, @@ -4169,7 +4147,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 32, - "endColumn": 44, + "endColumn": 38, "lineCount": 1 } }, @@ -4177,231 +4155,223 @@ "code": "reportMissingParameterType", "range": { "startColumn": 32, - "endColumn": 44, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportCallInDefaultInitializer", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 19, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 76, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 76, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportCallInDefaultInitializer", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 63, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 20, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 22, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 23, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 71, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnusedVariable", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 55, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 52, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 52, + "startColumn": 19, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 31, "lineCount": 1 } }, @@ -4409,57 +4379,55 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } - } - ], - "./sumpy/cse.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 5, - "endColumn": 30, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 34, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 33, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, @@ -4483,7 +4451,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 29, - "endColumn": 42, + "endColumn": 33, "lineCount": 1 } }, @@ -4491,159 +4459,167 @@ "code": "reportMissingParameterType", "range": { "startColumn": 29, - "endColumn": 42, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 4, - "endColumn": 23, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 34, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 30, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 57, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 66, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 35, + "startColumn": 39, + "endColumn": 76, "lineCount": 1 } }, @@ -4651,191 +4627,191 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 51, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 16, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 20, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 30, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 74, + "startColumn": 23, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 21, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 36, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 52, + "startColumn": 36, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 58, + "startColumn": 72, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 45, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 70, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 38, + "startColumn": 21, + "endColumn": 61, "lineCount": 1 } }, @@ -4843,7 +4819,23 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 31, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 72, "lineCount": 1 } }, @@ -4851,262 +4843,286 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 43, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 21, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 20, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 25, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 47, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 63, + "startColumn": 45, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 63, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 26, + "startColumn": 16, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 41, + "startColumn": 52, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 53, + "startColumn": 52, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 42, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 38, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 51, + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 16, "endColumn": 31, "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 46, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 20, "endColumn": 27, "lineCount": 1 } @@ -5114,7 +5130,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 23, + "startColumn": 20, "endColumn": 27, "lineCount": 1 } @@ -5123,7 +5139,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 29, - "endColumn": 33, + "endColumn": 37, "lineCount": 1 } }, @@ -5131,110 +5147,110 @@ "code": "reportMissingParameterType", "range": { "startColumn": 29, - "endColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 16, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, + "startColumn": 15, "endColumn": 24, "lineCount": 1 } @@ -5242,192 +5258,202 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 51, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 37, - "endColumn": 38, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 29, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 76, + "startColumn": 60, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 45, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 51, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 66, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 66, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 65, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 17, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 71, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 81, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 72, - "endColumn": 80, + "startColumn": 41, + "endColumn": 42, + "lineCount": 1 + } + } + ], + "./sumpy/derivative_taker.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, @@ -5435,223 +5461,233 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 46, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 17, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 23, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 15, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 44, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 46, - "endColumn": 72, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 19, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 54, + "startColumn": 53, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 51, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 60, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 63, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 48, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } - }, + } + ], + "./sumpy/distributed.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnsafeMultipleInheritance", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 6, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 55, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 51, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 82, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 78, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 62, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 78, "lineCount": 1 } }, @@ -5674,32 +5710,40 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 14, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, @@ -5707,601 +5751,625 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 64, + "startColumn": 33, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 47, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 54, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 76, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 57, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 57, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 32, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 37, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 34, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 20, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 44, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 51, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 62, + "startColumn": 51, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 62, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 69, + "startColumn": 12, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 16, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 49, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 66, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 57, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 20, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, + "startColumn": 30, "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 22, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 19, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 43, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } - } - ], - "./sumpy/derivative_taker.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 39, - "endColumn": 45, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 45, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 43, + "endColumn": 58, "lineCount": 1 } - }, + } + ], + "./sumpy/e2e.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 36, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 26, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 26, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, @@ -6309,351 +6377,343 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 47, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 50, + "startColumn": 44, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 70, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 30, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 28, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 38, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, + "startColumn": 28, "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 53, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 79, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 11, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 31, + "startColumn": 32, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 50, - "endColumn": 52, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 29, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 + "startColumn": 20, + "endColumn": 66, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 28, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 61, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 24, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 63, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 63, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 18, "lineCount": 1 } }, @@ -6661,255 +6721,223 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 17, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 17, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 43, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 52, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 55, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 57, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 47, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, @@ -6917,119 +6945,95 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 25, - "endColumn": 29, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, + "startColumn": 20, "endColumn": 38, "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 25, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 + "startColumn": 20, + "endColumn": 46, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 64, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 32, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 62, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 18, "lineCount": 1 } }, @@ -7037,94 +7041,94 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, + "startColumn": 25, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 52, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 83, - "lineCount": 1 + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 62, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, + "startColumn": 44, "endColumn": 62, "lineCount": 1 } @@ -7132,280 +7136,280 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 33, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, + "startColumn": 41, "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, + "startColumn": 20, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 42, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 24, - "endColumn": 84, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 63, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 29, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 32, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 29, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 29, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 26, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 45, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 54, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 42, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 42, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 41, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 58, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 42, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 41, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, @@ -7413,206 +7417,228 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 21, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 40, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 40, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 49, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 52, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 57, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 69, - "lineCount": 3 + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 64, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } - } - ], - "./sumpy/distributed.py": [ + }, { - "code": "reportUnsafeMultipleInheritance", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 6, - "endColumn": 39, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 20, + "endColumn": 68, + "lineCount": 5 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 29, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 78, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 62, - "endColumn": 78, + "startColumn": 29, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 8, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 19, "endColumn": 37, @@ -7620,506 +7646,530 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 37, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 71, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 49, + "startColumn": 11, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 72, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 29, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, + "startColumn": 23, "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 74, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 74, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 46, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 34, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 37, - "endColumn": 70, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 34, - "endColumn": 51, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 11, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 68, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 68, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 47, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 48, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 64, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 83, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 81, + "startColumn": 26, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 48, + "startColumn": 54, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 61, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 44, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 33, + "endColumn": 49, + "lineCount": 6 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, @@ -8127,7 +8177,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, @@ -8135,7 +8185,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, @@ -8143,120 +8193,118 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 57, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 14, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 58, + "startColumn": 14, + "endColumn": 48, "lineCount": 1 } - } - ], - "./sumpy/e2e.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 14, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 41, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, + "startColumn": 8, "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, + "startColumn": 8, "endColumn": 16, "lineCount": 1 } @@ -8265,7 +8313,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 29, + "endColumn": 28, "lineCount": 1 } }, @@ -8273,396 +8321,396 @@ "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 29, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 69, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 53, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 53, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 59, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 59, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 31, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 11, - "endColumn": 28, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 49, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, + "startColumn": 26, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 12, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 66, - "lineCount": 3 + "endColumn": 32, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 + "startColumn": 33, + "endColumn": 65, + "lineCount": 4 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 25, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 52, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 52, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 24, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 29, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 28, @@ -8670,34 +8718,34 @@ } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, @@ -8717,11 +8765,19 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, @@ -8729,78 +8785,94 @@ "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 21, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 56, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 49, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 29, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, "endColumn": 24, "lineCount": 1 } @@ -8808,24 +8880,32 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 28, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 40, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 55, + "endColumn": 59, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, @@ -8849,30 +8929,30 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, + "startColumn": 26, "endColumn": 44, "lineCount": 1 } @@ -8880,336 +8960,304 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 15, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 3 + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 56, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 39, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 + "startColumn": 33, + "endColumn": 73, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 2 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 21, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 62, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 50, + "startColumn": 48, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, + "startColumn": 24, "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 29, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 27, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, @@ -9272,128 +9320,136 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 23, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 44, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 75, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 12, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, @@ -9401,7 +9457,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 18, "lineCount": 1 } }, @@ -9409,39 +9465,39 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, + "startColumn": 26, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, @@ -9454,10 +9510,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 60, + "endColumn": 44, "lineCount": 1 } }, @@ -9465,15 +9521,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 63, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 82, + "startColumn": 53, + "endColumn": 71, "lineCount": 1 } }, @@ -9485,35 +9541,27 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 40, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, @@ -9521,7 +9569,7 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 51, - "endColumn": 58, + "endColumn": 63, "lineCount": 1 } }, @@ -9529,182 +9577,182 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 38, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 68, - "lineCount": 5 + "startColumn": 45, + "endColumn": 63, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 + "startColumn": 33, + "endColumn": 17, + "lineCount": 5 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 56, + "startColumn": 21, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 48, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 24, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 59, + "startColumn": 29, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 58, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 27, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, + "startColumn": 47, "endColumn": 50, "lineCount": 1 } @@ -9712,119 +9760,95 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 44, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 68, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 48, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 61, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, + "startColumn": 19, "endColumn": 24, "lineCount": 1 } @@ -9833,31 +9857,31 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 41, - "endColumn": 46, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 59, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, @@ -9886,23 +9910,7 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownMemberType", "range": { "startColumn": 26, "endColumn": 44, @@ -9910,41 +9918,9 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, "endColumn": 44, "lineCount": 1 } @@ -9952,104 +9928,32 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 53, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 66, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 31, + "endColumn": 46, "lineCount": 1 } }, @@ -10097,8 +10001,8 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 44, - "endColumn": 63, - "lineCount": 2 + "endColumn": 84, + "lineCount": 1 } }, { @@ -10112,8 +10016,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 62, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, @@ -10121,23 +10025,23 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 49, - "lineCount": 6 + "endColumn": 76, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 57, + "startColumn": 67, + "endColumn": 75, "lineCount": 1 } }, @@ -10181,123 +10085,27 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 59, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, @@ -10309,14 +10117,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -10349,6 +10149,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10405,38 +10213,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -10445,14 +10221,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -10502,7 +10270,7 @@ } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 18, @@ -10510,7 +10278,7 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, "endColumn": 18, @@ -10518,18 +10286,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, @@ -10542,58 +10302,50 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 68, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, @@ -10641,135 +10393,87 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 65, - "lineCount": 4 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 35, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 50, + "startColumn": 67, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 70, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 77, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 70, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, @@ -10816,16 +10520,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, @@ -10833,47 +10537,47 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 55, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 66, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 59, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 67, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, @@ -10888,25 +10592,25 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 63, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 2 + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 } }, { @@ -10916,268 +10620,310 @@ "endColumn": 24, "lineCount": 1 } - }, - { - "code": "reportIncompatibleMethodOverride", + } + ], + "./sumpy/e2p.py": [ + { + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 28, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 57, + "startColumn": 21, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 20, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 20, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 74, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 75, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, + "startColumn": 19, "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 73, - "lineCount": 3 + "startColumn": 29, + "endColumn": 51, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 20, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 46, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 24, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 73, + "startColumn": 24, + "endColumn": 45, "lineCount": 1 } }, @@ -11185,31 +10931,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 24, - "endColumn": 49, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 67, + "startColumn": 24, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 20, "lineCount": 1 } }, @@ -11217,55 +10963,111 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 63, + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 33, + "endColumn": 43, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 41, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, @@ -11328,32 +11130,40 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 56, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 17, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, @@ -11368,16 +11178,24 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 71, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 81, + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, @@ -11398,282 +11216,292 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 39, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 54, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 + "startColumn": 33, + "endColumn": 54, + "lineCount": 4 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 52, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 76, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 17, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 17, - "lineCount": 5 + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/__init__.py": [ + { + "code": "reportUnknownParameterType", "range": { "startColumn": 21, - "endColumn": 46, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 73, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 49, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 68, + "startColumn": 20, + "endColumn": 47, "lineCount": 1 } }, @@ -11681,15 +11509,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 34, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, @@ -11697,7 +11525,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 35, "lineCount": 1 } }, @@ -11705,14 +11533,14 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, + "startColumn": 8, "endColumn": 47, "lineCount": 1 } @@ -11720,64 +11548,64 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 12, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 63, + "startColumn": 8, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 44, + "endColumn": 46, "lineCount": 1 } }, @@ -11785,454 +11613,432 @@ "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, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 35, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 23, - "endColumn": 43, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 27, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 47, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 + "startColumn": 20, + "endColumn": 76, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 + "startColumn": 20, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 47, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 32, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 39, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 22, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 22, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 23, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 76, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 16, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 16, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 16, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 12, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 31, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 31, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 33, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 15, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 17, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 17, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 40, + "startColumn": 22, "endColumn": 50, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/diff_op.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 7, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 24, + "startColumn": 7, "endColumn": 31, "lineCount": 1 } @@ -12240,32 +12046,32 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 23, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 36, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, @@ -12273,398 +12079,396 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 17, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 18, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 31, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 + "startColumn": 26, + "endColumn": 36, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 9, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 21, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 76, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 11, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 52, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 52, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 27, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 27, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 15, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 41, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 + "startColumn": 56, + "endColumn": 30, + "lineCount": 2 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 34, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 52, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 33, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 53, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 53, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 31, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 31, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 52, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 52, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 56, + "endColumn": 81, "lineCount": 1 } - } - ], - "./sumpy/e2p.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 70, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 11, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 34, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 39, "endColumn": 46, @@ -12672,122 +12476,124 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 39, - "endColumn": 46, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 43, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/level_to_order.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 28, + "endColumn": 39, "lineCount": 1 } }, @@ -12795,1697 +12601,1653 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 17, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 29, - "endColumn": 51, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 76, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 39, - "endColumn": 53, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 38, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 45, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 70, + "startColumn": 59, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 59, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 57, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 28, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 52, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 2 + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 13, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 13, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 13, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 + "startColumn": 28, + "endColumn": 26, + "lineCount": 6 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 + "startColumn": 16, + "endColumn": 25, + "lineCount": 5 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 18, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 32, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 42, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 49, + "endColumn": 64, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/local.py": [ { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 83, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 28, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 28, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 54, - "lineCount": 4 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 49, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 49, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 57, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 57, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 + "startColumn": 24, + "endColumn": 64, + "lineCount": 3 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 19, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 43, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } - } - ], - "./sumpy/expansion/__init__.py": [ + }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 20, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 20, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 24, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 21, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 16, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 33, - "endColumn": 39, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 39, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 34, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 26, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 74, + "startColumn": 26, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 56, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 15, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 34, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 34, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 64, + "endColumn": 82, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/loopy.py": [ { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 25, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 41, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 69, - "endColumn": 75, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { "startColumn": 28, - "endColumn": 38, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 25, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/m2l.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 45, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 55, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 53, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { "startColumn": 21, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 41, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 67, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 75, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 55, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 55, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 59, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, @@ -14493,231 +14255,199 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 12, - "endColumn": 35, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 49, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 46, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 74, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 74, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 37, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 38, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 48, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 49, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 60, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 43, + "startColumn": 47, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 43, + "startColumn": 47, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnusedParameter", "range": { - "startColumn": 51, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 54, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 47, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, @@ -14725,103 +14455,87 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnusedParameter", "range": { - "startColumn": 61, - "endColumn": 62, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 65, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 17, "lineCount": 1 } }, @@ -14829,39 +14543,39 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, @@ -14869,95 +14583,79 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 45, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 26, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 39, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 40, - "endColumn": 65, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 50, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 65, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 43, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, @@ -14969,155 +14667,147 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 28, - "endColumn": 54, - "lineCount": 1 + "endColumn": 73, + "lineCount": 2 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 30, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 49, - "lineCount": 1 + "startColumn": 29, + "endColumn": 73, + "lineCount": 2 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 73, + "startColumn": 30, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 42, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 25, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 43, + "startColumn": 29, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 49, + "startColumn": 32, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 43, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 43, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 27, - "endColumn": 50, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, @@ -15125,247 +14815,255 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 40, + "startColumn": 64, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 25, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, + "startColumn": 33, "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 20, - "endColumn": 76, - "lineCount": 2 + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 63, - "lineCount": 2 + "startColumn": 12, + "endColumn": 21, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 36, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 53, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 46, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 64, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 24, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 24, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 65, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 41, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 47, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 48, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 22, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, @@ -15373,31 +15071,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 16, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 12, - "endColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, @@ -15405,1083 +15103,1095 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 31, - "endColumn": 49, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 55, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 31, - "endColumn": 56, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 69, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 69, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 46, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 53, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 39, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 75, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 75, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 55, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 62, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 25, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 56, + "startColumn": 30, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 50, + "startColumn": 63, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 50, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 50, + "startColumn": 16, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 34, + "startColumn": 19, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 41, + "startColumn": 30, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 34, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 41, + "startColumn": 31, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 + "startColumn": 27, + "endColumn": 18, + "lineCount": 4 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 65, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 51, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 72, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, + "startColumn": 16, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, + "startColumn": 16, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 + "startColumn": 29, + "endColumn": 58, + "lineCount": 2 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 55, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 55, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } - } - ], - "./sumpy/expansion/diff_op.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 12, + "startColumn": 16, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 7, - "endColumn": 31, + "startColumn": 61, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 57, + "startColumn": 65, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 56, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 39, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 32, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 24, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 17, - "endColumn": 47, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 66, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 40, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 27, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 2 + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, + "startColumn": 38, "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 30, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 12, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 33, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 25, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 38, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 79, + "startColumn": 68, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 47, + "startColumn": 16, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 50, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 26, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 62, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 30, - "lineCount": 2 + "startColumn": 16, + "endColumn": 59, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 73, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 16, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownLambdaType", "range": { - "startColumn": 52, - "endColumn": 62, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 24, + "endColumn": 36, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 35, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 77, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 79, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 48, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 31, - "endColumn": 50, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 69, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 71, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 81, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 18, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 47, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 57, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/level_to_order.py": [ - { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 39, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, @@ -16489,182 +16199,174 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 16, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 16, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 38, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 64, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 64, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 27, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, + "startColumn": 60, "endColumn": 63, "lineCount": 1 } @@ -16672,370 +16374,352 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 45, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 71, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 30, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 32, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 36, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 16, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 61, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 65, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 26, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 26, - "lineCount": 6 + "startColumn": 35, + "endColumn": 49, + "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 5 + "startColumn": 15, + "endColumn": 46, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 47, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 63, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 18, - "endColumn": 34, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 66, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/local.py": [ - { - "code": "reportImplicitAbstractClass", + "code": "reportUnknownParameterType", "range": { - "startColumn": 6, - "endColumn": 24, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 17, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 17, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 12, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 14, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 28, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, @@ -17043,335 +16727,327 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 38, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 26, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 + "startColumn": 16, + "endColumn": 69, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 54, + "startColumn": 28, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 14, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 50, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 65, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 30, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 30, - "endColumn": 41, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, - "endColumn": 51, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 61, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 31, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 18, - "endColumn": 28, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 28, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 86, + "endColumn": 87, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 57, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 17, + "endColumn": 36, "lineCount": 1 } }, @@ -17379,7 +17055,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 31, "lineCount": 1 } }, @@ -17387,7 +17063,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 31, "lineCount": 1 } }, @@ -17395,159 +17071,151 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 43, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 48, + "startColumn": 18, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 55, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 40, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 48, - "lineCount": 1 + "startColumn": 26, + "endColumn": 63, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 25, - "lineCount": 3 + "startColumn": 37, + "endColumn": 68, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 44, + "startColumn": 39, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 32, "lineCount": 1 } }, @@ -17555,583 +17223,567 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 54, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 17, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 64, - "lineCount": 3 + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 49, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 + "startColumn": 16, + "endColumn": 68, + "lineCount": 3 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 36, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 58, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 38, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 25, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 6, - "endColumn": 36, + "startColumn": 21, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 63, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 64, - "endColumn": 70, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 36, + "startColumn": 39, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 71, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 70, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 64, - "endColumn": 70, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 72, - "endColumn": 79, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 72, - "endColumn": 79, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 40, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 76, + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 38, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 51, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 29, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 30, - "endColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 53, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 29, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 64, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 44, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 52, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 34, "lineCount": 1 } }, @@ -18139,156 +17791,148 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 56, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 48, + "startColumn": 17, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 64, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 70, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 27, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 49, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 22, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 31, "endColumn": 37, @@ -18296,33 +17940,33 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 29, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, + "startColumn": 38, "endColumn": 51, "lineCount": 1 } @@ -18330,7 +17974,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 45, + "startColumn": 38, "endColumn": 51, "lineCount": 1 } @@ -18339,7 +17983,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 53, - "endColumn": 56, + "endColumn": 66, "lineCount": 1 } }, @@ -18347,303 +17991,295 @@ "code": "reportMissingParameterType", "range": { "startColumn": 53, - "endColumn": 56, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 32, - "lineCount": 6 + "endColumn": 22, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 24, "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 29, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 43, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 15, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 47, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 63, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 60, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 60, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, + "startColumn": 36, "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 50, + "startColumn": 36, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 50, + "startColumn": 18, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 40, + "startColumn": 18, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 40, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 38, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 32, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 41, + "startColumn": 43, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 51, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 61, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 64, + "startColumn": 42, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 50, + "startColumn": 42, + "endColumn": 59, "lineCount": 1 } }, @@ -18651,438 +18287,432 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 83, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 63, + "startColumn": 26, + "endColumn": 37, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/multipole.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 22, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 57, + "startColumn": 51, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 53, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 49, + "startColumn": 59, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 41, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 62, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, + "startColumn": 34, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 56, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 68, + "startColumn": 75, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 83, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 44, + "startColumn": 19, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 52, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 19, - "endColumn": 39, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 55, + "startColumn": 54, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportImplicitOverride", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnsafeMultipleInheritance", + "code": "reportMissingParameterType", "range": { - "startColumn": 6, - "endColumn": 32, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 53, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 59, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 60, + "startColumn": 30, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 58, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnsafeMultipleInheritance", + "code": "reportMissingParameterType", "range": { - "startColumn": 6, - "endColumn": 51, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 33, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 44, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 60, + "startColumn": 44, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 61, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 28, + "startColumn": 61, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 47, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, + "startColumn": 18, "endColumn": 28, "lineCount": 1 } @@ -19090,7 +18720,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 24, + "startColumn": 18, "endColumn": 28, "lineCount": 1 } @@ -19098,112 +18728,112 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 52, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 61, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 12, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 + "startColumn": 20, + "endColumn": 69, + "lineCount": 6 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 30, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, + "startColumn": 8, "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 30, + "endColumn": 72, "lineCount": 1 } }, @@ -19211,822 +18841,816 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 30, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 56, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 15, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 34, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 34, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 64, + "endColumn": 82, "lineCount": 1 } - }, + } + ], + "./sumpy/fmm.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportImplicitAbstractClass", + "code": "reportUnknownParameterType", "range": { - "startColumn": 6, - "endColumn": 34, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 47, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 43, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 43, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 49, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 12, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 69, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 69, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 42, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 42, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 43, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 43, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 52, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 62, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 65, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 19, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 51, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 60, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 59, - "lineCount": 6 + "startColumn": 59, + "endColumn": 66, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 49, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 69, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 15, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 15, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 21, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 41, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 13, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 78, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 63, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 72, + "startColumn": 8, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 19, + "endColumn": 48, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 72, - "lineCount": 6 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 71, + "startColumn": 19, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 19, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 34, - "endColumn": 84, + "startColumn": 24, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 39, + "startColumn": 29, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 49, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportMissingParameterType", "range": { "startColumn": 40, - "endColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 33, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, + "startColumn": 36, "endColumn": 48, "lineCount": 1 } @@ -20034,7 +19658,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 35, + "startColumn": 36, "endColumn": 48, "lineCount": 1 } @@ -20042,354 +19666,344 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 39, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 55, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 8, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 26, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 28, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 27, - "endColumn": 49, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportOptionalSubscript", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 30, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 16, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 56, - "endColumn": 72, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 30, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 16, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 8, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 70, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 49, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, + "startColumn": 26, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 61, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 57, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 20, + "startColumn": 18, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 64, - "endColumn": 82, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/loopy.py": [ - { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 34, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 41, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 41, + "endColumn": 59, "lineCount": 1 } }, @@ -20397,569 +20011,575 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 33, + "startColumn": 26, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 36, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 23, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 4, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 4, - "endColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 51, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedVariable", "range": { - "startColumn": 12, - "endColumn": 33, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 25, - "endColumn": 36, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 39, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } - } - ], - "./sumpy/expansion/m2l.py": [ + }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 56, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 56, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 33, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 14, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, + "startColumn": 12, "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 53, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 62, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 17, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 44, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 55, "lineCount": 1 } }, @@ -20967,223 +20587,239 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 33, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 49, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportMissingParameterType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 68, + "startColumn": 40, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 68, + "startColumn": 40, + "endColumn": 57, "lineCount": 1 } }, @@ -21191,7 +20827,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 28, "lineCount": 1 } }, @@ -21199,686 +20835,638 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 46, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 20, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 20, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 24, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 24, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 20, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 24, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 23, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 55, + "startColumn": 42, + "endColumn": 80, + "lineCount": 2 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 25, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 52, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 44, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 41, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 41, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 53, + "startColumn": 23, "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 28, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 16, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 64, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 12, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 15, - "endColumn": 55, + "startColumn": 42, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 60, - "endColumn": 73, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, + "startColumn": 16, "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 29, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 35, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 35, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 35, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 35, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 20, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 24, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 48, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 65, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 28, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 50, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 57, + "startColumn": 16, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 40, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, + "startColumn": 34, "endColumn": 57, "lineCount": 1 } @@ -21886,96 +21474,72 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 59, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 74, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 35, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 34, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, + "startColumn": 12, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 69, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, @@ -21983,79 +21547,79 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 56, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 61, - "endColumn": 74, + "startColumn": 12, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 20, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 24, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 29, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, @@ -22063,87 +21627,79 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 28, - "endColumn": 73, - "lineCount": 2 + "endColumn": 68, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 71, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 73, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 71, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 65, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 66, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 70, + "startColumn": 68, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 41, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 52, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 62, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, @@ -22151,7 +21707,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 42, + "endColumn": 23, "lineCount": 1 } }, @@ -22159,151 +21715,143 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 42, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 12, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 12, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 65, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 65, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 39, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 56, + "startColumn": 41, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 19, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 61, - "endColumn": 74, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 20, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 45, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 67, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, @@ -22311,15 +21859,15 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 39, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 72, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, @@ -22327,295 +21875,295 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 38, - "endColumn": 65, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 71, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 79, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 44, + "startColumn": 46, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 38, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 70, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 34, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 34, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 56, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, + "startColumn": 35, "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 59, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 63, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 63, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 53, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, @@ -22623,7 +22171,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 21, "lineCount": 1 } }, @@ -22631,14 +22179,14 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, + "startColumn": 12, "endColumn": 55, "lineCount": 1 } @@ -22646,7 +22194,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 42, + "startColumn": 12, "endColumn": 55, "lineCount": 1 } @@ -22654,127 +22202,127 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 56, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 34, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 56, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, + "startColumn": 26, "endColumn": 29, "lineCount": 1 } @@ -22782,240 +22330,208 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 66, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 62, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 76, + "startColumn": 53, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 35, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 26, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 26, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 57, + "startColumn": 54, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 80, + "startColumn": 54, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 68, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportArgumentType", - "range": { - "startColumn": 27, - "endColumn": 18, - "lineCount": 4 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 70, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 65, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 72, - "endColumn": 73, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 58, - "lineCount": 2 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 + "startColumn": 12, + "endColumn": 25, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { "startColumn": 39, - "endColumn": 42, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 46, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 27, "lineCount": 1 } }, @@ -23023,870 +22539,866 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 + "startColumn": 16, + "endColumn": 40, + "lineCount": 2 } - }, + } + ], + "./sumpy/kernel.py": [ { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 60, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 61, - "endColumn": 74, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 39, - "endColumn": 60, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 24, - "endColumn": 65, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 65, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { "startColumn": 15, - "endColumn": 55, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 35, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 27, - "endColumn": 40, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 56, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 25, - "endColumn": 66, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 68, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 38, - "endColumn": 67, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 68, - "endColumn": 81, + "startColumn": 41, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 35, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, + "startColumn": 4, "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 59, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 59, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, + "startColumn": 4, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 + "startColumn": 4, + "endColumn": 25, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 40, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 4, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 33, + "endColumn": 59, "lineCount": 1 } - }, + } + ], + "./sumpy/p2e.py": [ { - "code": "reportMissingParameterType", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 36, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 36, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 65, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 71, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 64, + "startColumn": 17, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 79, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 29, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 17, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 48, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 18, + "startColumn": 8, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 18, + "startColumn": 8, "endColumn": 28, "lineCount": 1 } @@ -23894,208 +23406,208 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 34, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 66, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 68, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 69, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 40, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 52, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 67, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 63, + "startColumn": 77, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 20, "lineCount": 1 } }, @@ -24103,199 +23615,231 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 39, + "lineCount": 3 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 60, + "startColumn": 14, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 74, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 50, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, - "endColumn": 49, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 60, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 66, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 20, "lineCount": 1 } }, @@ -24303,151 +23847,167 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 39, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 50, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 64, - "lineCount": 1 + "startColumn": 33, + "endColumn": 53, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 52, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 57, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 57, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 16, "lineCount": 1 } }, @@ -24455,583 +24015,601 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } - }, + } + ], + "./sumpy/p2p.py": [ { - "code": "reportMissingParameterType", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 28, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 28, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 58, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 58, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 65, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 66, - "endColumn": 79, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 31, - "endColumn": 41, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 42, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 57, + "startColumn": 42, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 71, + "startColumn": 55, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 55, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 42, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 59, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 68, - "lineCount": 3 + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 77, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 69, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 66, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 62, + "startColumn": 65, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 56, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 70, + "startColumn": 58, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 72, + "startColumn": 57, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 65, - "endColumn": 78, + "startColumn": 23, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 65, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 60, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 61, - "endColumn": 68, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 56, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 44, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 70, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 51, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 62, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 55, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 79, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 34, + "endColumn": 20, "lineCount": 1 } }, @@ -25039,7 +24617,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 34, + "endColumn": 27, "lineCount": 1 } }, @@ -25047,71 +24625,103 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 34, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, @@ -25119,7 +24729,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 34, - "endColumn": 44, + "endColumn": 38, "lineCount": 1 } }, @@ -25127,47 +24737,55 @@ "code": "reportMissingParameterType", "range": { "startColumn": 34, - "endColumn": 44, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 59, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 83, - "endColumn": 84, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -25175,14 +24793,14 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, + "startColumn": 35, "endColumn": 55, "lineCount": 1 } @@ -25190,7 +24808,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 42, + "startColumn": 35, "endColumn": 55, "lineCount": 1 } @@ -25199,7 +24817,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 57, - "endColumn": 70, + "endColumn": 77, "lineCount": 1 } }, @@ -25207,31 +24825,39 @@ "code": "reportMissingParameterType", "range": { "startColumn": 57, - "endColumn": 70, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 36, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, @@ -25239,47 +24865,55 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 25, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 25, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 50, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 50, + "endColumn": 73, "lineCount": 1 } }, @@ -25287,71 +24921,71 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -25359,1159 +24993,1147 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 63, - "lineCount": 2 + "endColumn": 61, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 68, + "startColumn": 26, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 40, - "lineCount": 1 + "startColumn": 29, + "endColumn": 53, + "lineCount": 8 } }, { "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 35, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 35, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 36, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 51, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 51, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 44, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 18, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 30, - "endColumn": 33, - "lineCount": 1 + "endColumn": 66, + "lineCount": 2 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 34, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 30, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 68, - "lineCount": 3 + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 77, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 69, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 66, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 62, + "startColumn": 42, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 66, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 55, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 82, + "startColumn": 38, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 18, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 64, + "startColumn": 57, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 66, - "endColumn": 79, + "startColumn": 18, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 18, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 52, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 69, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 62, + "endColumn": 68, "lineCount": 1 } - }, + } + ], + "./sumpy/point_calculus.py": [ { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 71, - "endColumn": 81, + "startColumn": 39, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 13, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 17, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 74, + "startColumn": 22, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 54, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 66, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 + "startColumn": 15, + "endColumn": 70, + "lineCount": 3 } }, { "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 42, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 11, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 62, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 30, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 77, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 54, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 68, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 41, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 + "startColumn": 15, + "endColumn": 56, + "lineCount": 4 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 + "startColumn": 15, + "endColumn": 60, + "lineCount": 4 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 59, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 49, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 48, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 + "startColumn": 15, + "endColumn": 31, + "lineCount": 5 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 34, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 69, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 42, + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 59, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 38, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 35, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 4, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } - }, + } + ], + "./sumpy/qbx.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 25, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 25, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 54, + "startColumn": 24, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 60, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 66, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 73, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 60, - "endColumn": 73, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, @@ -26519,7 +26141,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 26, "lineCount": 1 } }, @@ -26527,1024 +26149,958 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 65, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 53, + "startColumn": 31, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 18, - "endColumn": 47, + "startColumn": 62, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 82, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 29, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 61, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 33, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 66, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 55, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 34, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, + "startColumn": 59, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, "endColumn": 37, "lineCount": 1 } - } - ], - "./sumpy/expansion/multipole.py": [ + }, { - "code": "reportImplicitAbstractClass", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 6, - "endColumn": 28, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 6, - "endColumn": 40, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 36, + "startColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 36, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 70, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 64, - "endColumn": 70, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 72, - "endColumn": 79, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 72, - "endColumn": 79, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 63, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 63, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 28, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 71, - "lineCount": 1 + "startColumn": 16, + "endColumn": 70, + "lineCount": 3 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 70, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 73, - "endColumn": 77, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { "startColumn": 36, "endColumn": 43, "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 40, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 65, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 48, - "endColumn": 50, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 65, + "startColumn": 8, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 81, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 24, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 48, + "startColumn": 21, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedVariable", "range": { - "startColumn": 60, - "endColumn": 64, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 70, + "startColumn": 52, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 56, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 56, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 23, "endColumn": 44, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 78, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 57, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 77, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 75, - "endColumn": 76, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 57, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 57, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 68, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 68, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 69, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 33, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 67, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 67, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 40, - "endColumn": 67, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 61, - "endColumn": 67, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 36, - "endColumn": 51, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 46, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 75, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 67, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 48, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 81, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnsafeMultipleInheritance", + "code": "reportUnknownParameterType", "range": { - "startColumn": 6, - "endColumn": 36, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnsafeMultipleInheritance", + "code": "reportUnknownParameterType", "range": { - "startColumn": 6, + "startColumn": 48, "endColumn": 55, "lineCount": 1 } @@ -27552,544 +27108,544 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 57, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 57, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 76, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 76, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 67, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 32, - "endColumn": 38, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitAbstractClass", + "code": "reportUnknownMemberType", "range": { - "startColumn": 6, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 56, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 56, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 32, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 57, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 57, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 52, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 62, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 67, - "lineCount": 3 + "startColumn": 43, + "endColumn": 49, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 66, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 35, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 4, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 51, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 60, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 59, - "lineCount": 6 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, @@ -28097,513 +27653,495 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 49, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 68, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 71, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 37, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 67, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 46, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 60, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 61, - "endColumn": 68, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 36, + "startColumn": 34, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 68, - "lineCount": 6 + "startColumn": 40, + "endColumn": 51, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 67, + "startColumn": 55, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 79, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 29, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 26, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 41, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 72, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 42, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 56, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 20, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedClass", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 6, + "endColumn": 39, "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 64, - "endColumn": 82, - "lineCount": 1 - } - } - ], - "./sumpy/fmm.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 39, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 39, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 35, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 54, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 50, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 13, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 26, - "endColumn": 46, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 56, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 29, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 52, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, @@ -28611,15 +28149,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 40, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 37, + "endColumn": 56, "lineCount": 1 } }, @@ -28627,55 +28165,47 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 40, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 39, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 40, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 54, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, @@ -28683,15 +28213,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 40, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, @@ -28699,182 +28229,192 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 36, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 67, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 67, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 78, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 78, + "startColumn": 27, + "endColumn": 35, + "lineCount": 1 + } + } + ], + "./sumpy/symbolic.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedImport", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 7, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 51, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 51, + "startColumn": 5, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedFunction", "range": { - "startColumn": 53, - "endColumn": 62, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 62, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 16, - "endColumn": 40, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 39, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 4, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 52, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 52, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 63, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 63, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 33, "endColumn": 40, "lineCount": 1 } @@ -28883,63 +28423,63 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 41, - "endColumn": 50, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 38, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, @@ -28954,12052 +28494,228 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 41, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 32, + "endColumn": 88, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 18, - "endColumn": 27, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 5, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 37, + "startColumn": 35, "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/test/curve.py": [ { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 19, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 22, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } - }, + } + ], + "./sumpy/test/geometries.py": [ { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 67, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 66, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 25, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 47, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 15, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 17, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 64, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 53, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 50, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 45, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 24, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 41, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 41, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 59, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 30, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 30, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 41, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 41, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 34, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 41, - "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": 65, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 60, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 23, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnusedVariable", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 41, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 45, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 45, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 30, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 45, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 62, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 62, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 45, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 42, - "endColumn": 80, - "lineCount": 2 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 25, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 42, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 27, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 29, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 65, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 65, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 51, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 51, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 58, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 46, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 46, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 2 - } - } - ], - "./sumpy/kernel.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 11, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 56, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 43, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 68, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 71, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 70, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 16, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 41, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 53, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 58, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAssignmentType", - "range": { - "startColumn": 40, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAssignmentType", - "range": { - "startColumn": 33, - "endColumn": 59, - "lineCount": 1 - } - } - ], - "./sumpy/p2e.py": [ - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 6, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportImplicitAbstractClass", - "range": { - "startColumn": 6, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "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": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 17, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 48, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "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": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 68, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 38, - "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": 67, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 77, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 35, - "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": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "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", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 53, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 49, - "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": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "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", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - } - ], - "./sumpy/p2p.py": [ - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 6, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportImplicitAbstractClass", - "range": { - "startColumn": 6, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 44, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 58, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 55, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 55, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 3 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 23, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 53, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "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": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 62, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "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": "reportAny", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 44, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 53, - "lineCount": 8 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 51, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 51, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 66, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 62, - "endColumn": 68, - "lineCount": 1 - } - } - ], - "./sumpy/point_calculus.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 17, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 70, - "lineCount": 3 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 56, - "lineCount": 4 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 60, - "lineCount": 4 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 5 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - } - ], - "./sumpy/qbx.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportImplicitAbstractClass", - "range": { - "startColumn": 6, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 65, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 62, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 63, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 63, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 70, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 62, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 21, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnusedVariable", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "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": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 68, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 68, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 42, - "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": 67, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "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": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 76, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 76, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "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": 67, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "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": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 17, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "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": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 67, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 55, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 42, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnusedClass", - "range": { - "startColumn": 6, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - } - ], - "./sumpy/symbolic.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnusedImport", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 11, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 7, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 10, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 5, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnusedFunction", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 88, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - } - ], - "./sumpy/test/curve.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - } - ], - "./sumpy/test/geometries.py": [ - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnusedExpression", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_codegen.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_cse.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 0, - "endColumn": 1, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 3, - "endColumn": 4, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 6, - "endColumn": 7, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 9, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 0, - "endColumn": 2, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 6, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 20, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 56, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 9, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 9, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 9, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 9, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 44, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 42, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 44, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 37, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 6, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 6, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 25, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 29, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 62, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 41, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 58, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 35, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 35, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 49, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 44, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 51, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 18, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, @@ -41007,182 +28723,134 @@ "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 25 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 38, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedExpression", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, + "startColumn": 14, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 14, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 22, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 22, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, + "startColumn": 16, "endColumn": 31, "lineCount": 1 } @@ -41190,69 +28858,55 @@ { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_codegen.py": [ { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 21, + "startColumn": 28, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { "startColumn": 28, "endColumn": 29, @@ -41260,137 +28914,115 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 75, + "endColumn": 76, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_cse.py": [ { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 9, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 9, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { "startColumn": 9, - "endColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 0, + "endColumn": 1, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 3, + "endColumn": 4, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 6, + "endColumn": 7, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 9, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 0, + "endColumn": 2, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 19, + "startColumn": 8, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, + "startColumn": 12, "endColumn": 14, "lineCount": 1 } @@ -41399,1547 +29031,1479 @@ "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 33, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 28, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 56, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { "startColumn": 9, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 33, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 41, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 30, + "range": { + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportConstantRedefinition", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 34, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 42, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 44, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } - } - ], - "./sumpy/test/test_distributed.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 63, - "endColumn": 70, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 37, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 73, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 34, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 25, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 29, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 62, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 30, + "startColumn": 46, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 58, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 35, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 37, + "startColumn": 15, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 53, + "startColumn": 15, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 23, - "endColumn": 34, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 26, + "startColumn": 35, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 49, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 60, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 46, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 57, + "startColumn": 15, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 75, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 51, - "endColumn": 67, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 59, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 15, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 15, - "endColumn": 42, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 9, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 41, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 53, - "lineCount": 1 + "startColumn": 8, + "endColumn": 14, + "lineCount": 25 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 60, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 71, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, + "startColumn": 19, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 39, - "endColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 35, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_fmm.py": [ - { - "code": "reportUnusedImport", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 41, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 39, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 64, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 66, - "endColumn": 73, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 61, - "endColumn": 77, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 60, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 69, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 35, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, + "startColumn": 34, "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, + "startColumn": 15, "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 28, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportIndexIssue", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportOperatorIssue", "range": { - "startColumn": 18, - "endColumn": 82, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportIndexIssue", "range": { - "startColumn": 41, - "endColumn": 46, + "startColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 35, - "endColumn": 73, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportOperatorIssue", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 22, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, + "startColumn": 15, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 32, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 30, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 71, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 71, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 52, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 70, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportConstantRedefinition", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 11, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 26, - "endColumn": 75, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, @@ -42947,166 +30511,176 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportRedeclaration", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_distributed.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 63, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 41, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 41, + "range": { + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnusedParameter", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, + "startColumn": 40, "endColumn": 54, "lineCount": 1 } @@ -43114,7 +30688,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 43, + "startColumn": 40, "endColumn": 54, "lineCount": 1 } @@ -43122,7 +30696,7 @@ { "code": "reportUnusedParameter", "range": { - "startColumn": 43, + "startColumn": 40, "endColumn": 54, "lineCount": 1 } @@ -43155,7 +30729,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 62, - "endColumn": 65, + "endColumn": 67, "lineCount": 1 } }, @@ -43163,151 +30737,103 @@ "code": "reportMissingParameterType", "range": { "startColumn": 62, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 62, - "endColumn": 65, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, + "startColumn": 22, "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, + "startColumn": 25, "endColumn": 30, "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 34, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 67, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 34, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 26, + "endColumn": 37, "lineCount": 1 } }, @@ -43315,1415 +30841,1361 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 45, - "endColumn": 52, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 78, + "startColumn": 25, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 42, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 42, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 59, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 77, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 51, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 28, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 15, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOptionalSubscript", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 26, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 26, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 32, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 32, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 38, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 8, - "endColumn": 22, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 42, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_fmm.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 8, - "endColumn": 74, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 70, - "endColumn": 79, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 78, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 16, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 41, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 66, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 61, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 37, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 62, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 57, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 35, - "endColumn": 79, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 48, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 61, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 63, - "endColumn": 67, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportOperatorIssue", "range": { - "startColumn": 69, - "endColumn": 72, + "startColumn": 18, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, + "startColumn": 35, "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 70, - "endColumn": 76, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 73, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 22, - "endColumn": 71, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 75, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 63, + "startColumn": 20, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 68, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 68, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 76, + "startColumn": 20, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 30, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 26, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 68, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 21, - "endColumn": 31, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportRedeclaration", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 31, - "endColumn": 75, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnusedParameter", "range": { - "startColumn": 59, - "endColumn": 63, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 68, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { - "startColumn": 11, - "endColumn": 42, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 15, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 31, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 31, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 64, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 79, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 42, - "endColumn": 48, + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 61, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 63, - "endColumn": 67, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 72, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 39, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 14, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, @@ -44775,6 +32247,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 53, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -44832,164 +32312,82 @@ } }, { - "code": "reportCallIssue", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", "range": { "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 24, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 38, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 63, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportMissingParameterType", "range": { - "startColumn": 65, - "endColumn": 68, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnusedParameter", "range": { - "startColumn": 23, - "endColumn": 54, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 79, - "endColumn": 83, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_kernels.py": [ - { - "code": "reportUnusedImport", + "code": "reportUnusedParameter", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, @@ -44997,7 +32395,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 48, - "endColumn": 60, + "endColumn": 52, "lineCount": 1 } }, @@ -45005,63 +32403,55 @@ "code": "reportMissingParameterType", "range": { "startColumn": 48, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 26, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 27, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 22, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, @@ -45069,327 +32459,287 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 23, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 17, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 22, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 61, + "startColumn": 8, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 58, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 57, + "startColumn": 70, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 18, - "endColumn": 64, + "startColumn": 14, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 53, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", "range": { "startColumn": 32, - "endColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 31, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 40, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, @@ -45397,71 +32747,55 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 36, - "endColumn": 39, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportOptionalSubscript", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } }, @@ -45469,79 +32803,79 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 55, - "endColumn": 69, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 64, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 22, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 12, + "endColumn": 68, "lineCount": 1 } }, @@ -45549,182 +32883,182 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 36, - "endColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 67, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 68, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 50, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 2 + "startColumn": 17, + "endColumn": 27, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 61, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 19, - "endColumn": 34, + "startColumn": 11, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 14, "endColumn": 26, "lineCount": 1 } @@ -45732,7 +33066,7 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, + "startColumn": 14, "endColumn": 26, "lineCount": 1 } @@ -45740,15 +33074,15 @@ { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 21, + "startColumn": 19, "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, + "startColumn": 27, "endColumn": 37, "lineCount": 1 } @@ -45756,264 +33090,256 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 31, + "startColumn": 32, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 21, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 15, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 8, "endColumn": 19, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 22, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 69, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, @@ -46021,7 +33347,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 15, + "endColumn": 22, "lineCount": 1 } }, @@ -46029,175 +33355,191 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 49, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 15 + "startColumn": 10, + "endColumn": 11, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 46, - "lineCount": 15 + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 21, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 7, - "endColumn": 14, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 59, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, @@ -46226,610 +33568,644 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 23, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 37, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 58, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 79, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 32, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_kernels.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 19, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 32, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 17, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 57, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 44, + "startColumn": 30, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 12, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 18, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 19, + "endColumn": 53, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 70, - "endColumn": 80, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 34, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 30, + "startColumn": 36, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 27, - "endColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 35, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 27, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 80, + "startColumn": 55, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 19, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 28, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 20, - "endColumn": 65, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 51, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, @@ -46837,119 +34213,143 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 59, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 69, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 52, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 23, + "endColumn": 57, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 34, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 18, - "endColumn": 57, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 61, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, @@ -46957,260 +34357,252 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 58, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, + "startColumn": 18, "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, + "startColumn": 16, "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 63, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 62, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 41, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 40, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 48, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, "endColumn": 23, @@ -47218,236 +34610,234 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 23, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 48, + "startColumn": 41, "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 64, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } - } - ], - "./sumpy/test/test_matrixgen.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 19, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 42, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 + "startColumn": 14, + "endColumn": 41, + "lineCount": 15 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, + "startColumn": 14, "endColumn": 46, - "lineCount": 1 + "lineCount": 15 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 41, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 7, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 22, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, @@ -47455,388 +34845,428 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, - "lineCount": 1 + "startColumn": 29, + "endColumn": 57, + "lineCount": 2 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 32, - "endColumn": 40, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 14, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 23, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 40, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 8, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 53, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 40, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 63, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 8, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 57, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 45, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 70, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 72, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, + "startColumn": 30, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 28, "endColumn": 38, @@ -47846,394 +35276,408 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 41, - "endColumn": 53, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 11, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 17, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 80, + "startColumn": 77, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 55, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 72, + "startColumn": 22, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 33, + "startColumn": 28, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } - } - ], - "./sumpy/test/test_misc.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, + "startColumn": 26, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 18, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 58, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 19, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 59, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 48, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, @@ -48241,28 +35685,28 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 30, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 8, "endColumn": 15, @@ -48270,954 +35714,980 @@ } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 15, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 33, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 40, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 50, - "endColumn": 67, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 24, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 63, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 74, + "startColumn": 23, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 23, - "endColumn": 31, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 70, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 70, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 72, - "endColumn": 77, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 25, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 24, - "endColumn": 36, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 36, + "startColumn": 31, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 53, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 53, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 53, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 53, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_matrixgen.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 4, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 62, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 29, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 63, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 62, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 51, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 38, - "endColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 25, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, + "startColumn": 12, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, + "startColumn": 12, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 26, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 29, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 28, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 30, - "endColumn": 44, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 11, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 26, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 53, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 31, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 18, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 21, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 49, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 21, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 54, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 54, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 5, - "lineCount": 7 + "startColumn": 36, + "endColumn": 72, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 53, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 37, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 51, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 41, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 41, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 14, + "startColumn": 41, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 42, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, + "startColumn": 12, "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 54, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 53, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 4, - "endColumn": 15, + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 33, - "endColumn": 70, + "endColumn": 45, "lineCount": 1 } }, @@ -49225,552 +36695,552 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 70, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 22, - "endColumn": 59, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 29, + "startColumn": 68, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 38, + "startColumn": 43, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, + "startColumn": 47, "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 36, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 7, - "endColumn": 8, + "startColumn": 53, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 18, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 7, - "endColumn": 8, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_misc.py": [ { - "code": "reportAny", + "code": "reportUnusedImport", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 18, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 13, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 23, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 23, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 28, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 40, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 50, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 70, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 11, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 36, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 36, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 23, - "endColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 62, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 62, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 72, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 10, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 24, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 24, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 17, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 61, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 66, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 72, - "endColumn": 75, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 46, + "endColumn": 62, "lineCount": 1 } - } - ], - "./sumpy/test/test_qbx.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, + "startColumn": 19, "endColumn": 22, "lineCount": 1 } @@ -49778,1221 +37248,1225 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 43, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 38, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 38, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 22, - "endColumn": 45, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 67, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 48, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 45, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 45, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 20, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 72, + "startColumn": 4, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 30, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 76, + "startColumn": 37, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 11, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 76, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 67, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 48, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, + "startColumn": 23, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 36, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 47, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 10, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 47, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 72, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 71, - "lineCount": 1 + "startColumn": 57, + "endColumn": 5, + "lineCount": 7 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 70, + "startColumn": 17, + "endColumn": 28, "lineCount": 1 } - } - ], - "./sumpy/test/test_target_deriv.py": [ + }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 17, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 11, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 28, - "endColumn": 50, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 55, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 54, + "startColumn": 25, + "endColumn": 41, "lineCount": 1 } - } - ], - "./sumpy/test/test_tools.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 25, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, + "startColumn": 34, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 4, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 44, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, + "startColumn": 38, "endColumn": 50, "lineCount": 1 } - } - ], - "./sumpy/tools.py": [ + }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 22, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 22, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 29, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 4, - "endColumn": 14, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 33, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 33, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 22, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 11, - "endColumn": 26, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 35, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 23, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 7, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 14, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 22, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 19, + "startColumn": 7, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 19, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 33, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 35, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 32, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 45, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 20, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 34, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 30, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 39, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 9, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 44, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 10, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 63, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 78, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_qbx.py": [ { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnusedImport", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 21, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, + "startColumn": 12, "endColumn": 21, "lineCount": 1 } @@ -51000,128 +38474,128 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 26, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 31, - "endColumn": 39, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 22, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 31, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 32, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 26, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 34, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 46, + "startColumn": 34, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 33, + "endColumn": 72, "lineCount": 1 } }, @@ -51129,582 +38603,556 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 11, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { "startColumn": 8, - "endColumn": 11, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 53, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 53, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 31, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 32, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 50, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 35, - "endColumn": 49, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 73, - "endColumn": 82, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 38, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 26, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 28, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 32, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 9, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 83, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, + "startColumn": 34, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 33, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 40, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 47, + "endColumn": 70, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_target_deriv.py": [ { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 13, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 15, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 15, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 21, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 48, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 28, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 37, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 44, + "endColumn": 54, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_tools.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 42, - "endColumn": 52, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 57, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 38, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 37, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } - }, + } + ], + "./sumpy/tools.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 17, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 17, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, + "startColumn": 21, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 39, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 51, - "lineCount": 2 + "startColumn": 26, + "endColumn": 31, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, + "startColumn": 24, "endColumn": 33, "lineCount": 1 } @@ -51712,448 +39160,432 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 51, - "lineCount": 2 + "startColumn": 24, + "endColumn": 35, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 33, + "startColumn": 28, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 4, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 46, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 46, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 15, - "endColumn": 24, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 34, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, + "startColumn": 4, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 59, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 61, - "endColumn": 66, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, + "startColumn": 30, "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 21, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 77, + "startColumn": 41, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 20, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 46, - "endColumn": 62, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 22, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 25, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 55, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 31, + "startColumn": 22, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 18, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 78, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 38, - "endColumn": 55, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 78, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 39, + "startColumn": 18, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 43, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 55, + "startColumn": 43, + "endColumn": 46, "lineCount": 1 } }, @@ -52161,175 +39593,175 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 15, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 35, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 48, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 37, - "endColumn": 48, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 59, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 65, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 65, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 33, - "endColumn": 58, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 33, - "endColumn": 62, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 62, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportConstantRedefinition", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 16, + "startColumn": 28, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 53, + "startColumn": 35, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 52, + "startColumn": 73, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 51, + "startColumn": 23, + "endColumn": 38, "lineCount": 1 } }, @@ -52337,47 +39769,47 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 54, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 44, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnusedImport", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 4, + "endColumn": 28, "lineCount": 1 } }, @@ -52385,232 +39817,230 @@ "code": "reportAny", "range": { "startColumn": 4, - "endColumn": 22, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 83, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 64, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 32, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 24, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 22, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 49, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 4, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 40, + "endColumn": 57, "lineCount": 1 } - } - ], - "./sumpy/toys.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 18, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 11, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 29, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 29, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, + "startColumn": 28, "endColumn": 31, "lineCount": 1 } @@ -52618,7 +40048,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 12, + "startColumn": 28, "endColumn": 31, "lineCount": 1 } @@ -52626,632 +40056,648 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 38, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 35, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 67, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 63, + "startColumn": 15, + "endColumn": 51, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 75, + "startColumn": 15, + "endColumn": 51, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 4, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 29, + "startColumn": 45, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 45, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 32, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 32, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 65, + "startColumn": 33, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { "startColumn": 13, - "endColumn": 43, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 22, - "endColumn": 27, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 73, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 72, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 54, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 61, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 37, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 73, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 48, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 73, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 72, + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 22, - "endColumn": 27, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 73, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 4, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 46, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 78, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 77, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 46, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 38, + "startColumn": 45, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 20, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 55, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 55, + "startColumn": 20, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 38, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 38, + "startColumn": 38, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 67, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 45, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 14, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 52, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 78, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 77, + "startColumn": 26, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 26, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 37, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 72, + "startColumn": 37, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 62, - "endColumn": 72, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 74, - "endColumn": 82, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 74, - "endColumn": 82, + "startColumn": 35, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 35, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 78, + "startColumn": 35, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 77, + "startColumn": 33, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 33, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 33, + "endColumn": 62, "lineCount": 1 } }, @@ -53259,295 +40705,297 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 30, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 47, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 47, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportConstantRedefinition", "range": { - "startColumn": 49, - "endColumn": 57, + "startColumn": 14, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 57, + "startColumn": 30, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 38, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 44, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 38, + "startColumn": 27, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 65, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 65, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedImport", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 66, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 66, + "startColumn": 15, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 78, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 77, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 14, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 67, + "startColumn": 11, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 67, + "startColumn": 40, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 78, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 77, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 26, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 26, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } - }, + } + ], + "./sumpy/toys.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { "startColumn": 16, - "endColumn": 78, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 20, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 76, + "startColumn": 15, + "endColumn": 65, "lineCount": 1 } }, @@ -53610,64 +41058,48 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 44, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 44, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 69, + "startColumn": 63, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 69, + "startColumn": 63, + "endColumn": 74, "lineCount": 1 } }, @@ -54130,64 +41562,48 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 78, + "startColumn": 72, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 78, + "startColumn": 72, + "endColumn": 83, "lineCount": 1 } }, @@ -54402,64 +41818,48 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 78, + "startColumn": 72, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 78, + "startColumn": 72, + "endColumn": 83, "lineCount": 1 } }, @@ -54799,14 +42199,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -54975,14 +42367,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -55255,14 +42639,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -55322,48 +42698,32 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 75, + "startColumn": 68, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 75, + "startColumn": 68, + "endColumn": 80, "lineCount": 1 } }, @@ -55447,6 +42807,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -55463,6 +42831,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -55471,6 +42847,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 25, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -55552,10 +42936,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 53, + "endColumn": 64, "lineCount": 1 } }, @@ -55570,16 +42954,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 76, + "startColumn": 16, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 22, + "startColumn": 24, + "endColumn": 41, "lineCount": 1 } }, @@ -55623,22 +43007,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -55647,22 +43015,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -55735,30 +43087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -55775,110 +43103,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { From 16f2c379d579eda1e58107dc7ffecd7339c82b31 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 30 Oct 2025 18:33:54 -0500 Subject: [PATCH 221/335] Remove staging from Gitlab CI --- .gitlab-ci.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 504ef7c8a..13bca8b85 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,12 +17,7 @@ # reports: # junit: test/pytest.xml -stages: - - test - - deploy - Pytest POCL: - stage: test script: - export PY_EXE=python3 - export PYOPENCL_TEST=portable:pthread @@ -39,7 +34,6 @@ Pytest POCL: junit: test/pytest.xml Pytest Titan V: - stage: test script: - py_version=3 - export PYOPENCL_TEST=nvi:titan @@ -57,7 +51,6 @@ Pytest Titan V: junit: test/pytest.xml Pytest Conda: - stage: test script: # Disable caching to ensure SymEngine code generation is exercised. - export SUMPY_NO_CACHE=1 @@ -74,7 +67,6 @@ Pytest Conda: junit: test/pytest.xml Pytest POCL Titan V: - stage: test script: # Disable caching to ensure SymEngine code generation is exercised. - export SUMPY_NO_CACHE=1 @@ -91,7 +83,6 @@ Pytest POCL Titan V: junit: test/pytest.xml Examples Conda: - stage: test script: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml CONDA_ENVIRONMENT=.test-conda-env.yml @@ -106,7 +97,6 @@ Examples Conda: - tags Documentation: - stage: deploy script: | EXTRA_INSTALL="pybind11 numpy mako" curl -L -O https://tiker.net/ci-support-v0 @@ -119,7 +109,6 @@ Documentation: - linux Ruff: - stage: test script: - pipx install uv - uv run --only-group lint ruff check From b7886ab3d5b3e73832c967e3eeb2ee104ee9c9b8 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 3 Nov 2025 12:46:29 -0600 Subject: [PATCH 222/335] Codegen: update for position-only mapper exprs in pymbolic --- sumpy/codegen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index f731440ed..4617b6904 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -708,7 +708,7 @@ def to_loopy_insns(assignments, vector_names=frozenset(), pymbolic_expr_maps=(), # https://github.com/inducer/sumpy/pull/40#issuecomment-852635444 cmb_mapper = combine_mappers(bdr, btog, vcr, pwr, ssg, bik, cmr) else: - def cmb_mapper(expr): + def cmb_mapper(expr, /): expr = bdr(expr) expr = vcr(expr) expr = pwr(expr) From 45220d50656054d46680a187d38f070a36ab821d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 7 Nov 2025 19:57:11 +0200 Subject: [PATCH 223/335] feat(typing): improve typing in codegen --- sumpy/codegen.py | 467 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 337 insertions(+), 130 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 4617b6904..7f504ed19 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -26,7 +26,7 @@ import logging import re from abc import ABC -from typing import ParamSpec +from typing import TYPE_CHECKING, Protocol, cast import numpy as np from constantdict import constantdict @@ -34,18 +34,27 @@ import loopy as lp import pymbolic.primitives as prim -from loopy.kernel.instruction import make_assignment -from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper -from pymbolic.typing import Expression +from loopy.kernel.instruction import Assignment, CallInstruction, make_assignment +from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper, P +from pymbolic.typing import ArithmeticExpression, Expression from pytools import memoize_method import sumpy.symbolic as sym -logger = logging.getLogger(__name__) +if TYPE_CHECKING: + from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence, Set + + from numpy.typing import DTypeLike + import pyopencl as cl + from loopy.codegen import PreambleInfo + from loopy.target import TargetBase + from loopy.translation_unit import CallablesInferenceContext + from loopy.types import LoopyType -P = ParamSpec("P") + +logger = logging.getLogger(__name__) __doc__ = """ @@ -58,7 +67,8 @@ """ -def wrap_in_cse(expr: Expression, prefix: str | None = None) -> Expression: +def wrap_in_cse(expr: Expression, + prefix: str | None = None) -> prim.CommonSubexpression: return prim.make_common_subexpression(expr, prefix, wrap_vars=False) @@ -124,10 +134,17 @@ def not_supported(self, expr: object) -> Expression: class BesselJvvp1(lp.ScalarCallable): - def with_types(self, arg_id_to_dtype, clbl_inf_ctx): + @override + def with_types(self, + arg_id_to_dtype: Mapping[int | str, LoopyType], + clbl_inf_ctx: CallablesInferenceContext, + ) -> tuple[BesselJvvp1, CallablesInferenceContext]: from loopy.types import NumpyType for i in arg_id_to_dtype: + if isinstance(i, str): + raise TypeError(f"{self.name} cannot handle keyword arguments") + if not (-2 <= i <= 1): raise TypeError(f"{self.name} can only take 2 arguments.") @@ -161,9 +178,9 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): })), clbl_inf_ctx) - def generate_preambles(self, target): - from loopy import PyOpenCLTarget - if not isinstance(target, PyOpenCLTarget): + @override + def generate_preambles(self, target: TargetBase) -> Iterator[tuple[str, str]]: + if not isinstance(target, lp.PyOpenCLTarget): raise NotImplementedError("Only the PyOpenCLTarget is supported as" "of now.") @@ -171,10 +188,17 @@ def generate_preambles(self, target): class Hankel1_01(lp.ScalarCallable): # noqa: N801 - def with_types(self, arg_id_to_dtype, clbl_inf_ctx): + @override + def with_types(self, + arg_id_to_dtype: Mapping[int | str, LoopyType], + clbl_inf_ctx: CallablesInferenceContext, + ) -> tuple[Hankel1_01, CallablesInferenceContext]: from loopy.types import NumpyType for i in arg_id_to_dtype: + if isinstance(i, str): + raise TypeError(f"{self.name} cannot handle keyword arguments") + if not (-2 <= i <= 0): raise TypeError(f"{self.name} can only take one argument.") @@ -201,37 +225,48 @@ def with_types(self, arg_id_to_dtype, clbl_inf_ctx): })), clbl_inf_ctx) - def generate_preambles(self, target): - from loopy import PyOpenCLTarget - if not isinstance(target, PyOpenCLTarget): + @override + def generate_preambles(self, target: TargetBase) -> Iterator[tuple[str, str]]: + if not isinstance(target, lp.PyOpenCLTarget): raise NotImplementedError("Only the PyOpenCLTarget is supported as" "of now.") yield ("50-sumpy-hankel", HANKEL_PREAMBLE) -def register_bessel_callables(loopy_knl): - from sumpy.codegen import BesselJvvp1, Hankel1_01 +def register_bessel_callables(loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: if "bessel_jvvp1" not in loopy_knl.callables_table: - loopy_knl = lp.register_callable(loopy_knl, "bessel_jvvp1", + loopy_knl = lp.register_callable( + loopy_knl, + "bessel_jvvp1", BesselJvvp1("bessel_jvvp1")) + if "hank1_01" not in loopy_knl.callables_table: - loopy_knl = lp.register_callable(loopy_knl, "hank1_01", + loopy_knl = lp.register_callable( + loopy_knl, + "hank1_01", Hankel1_01("hank1_01")) + return loopy_knl -def _fp_contract_fast_preamble(preamble_info): +def _fp_contract_fast_preamble( + preamble_info: PreambleInfo + ) -> Iterator[tuple[str, str]]: yield ("fp_contract_fast_pocl", "#pragma clang fp contract(fast)") -def register_optimization_preambles(loopy_knl, device): +def register_optimization_preambles( + loopy_knl: lp.TranslationUnit, device: cl.Device + ) -> lp.TranslationUnit: if isinstance(loopy_knl.target, lp.PyOpenCLTarget): import pyopencl as cl if (device.platform.name == "Portable Computing Language" and (device.type & cl.device_type.GPU)): - loopy_knl = lp.register_preamble_generators(loopy_knl, + loopy_knl = lp.register_preamble_generators( + loopy_knl, [_fp_contract_fast_preamble]) + return loopy_knl # }}} @@ -239,15 +274,20 @@ def register_optimization_preambles(loopy_knl, device): # {{{ custom mapper base classes -class CSECachingIdentityMapper( - IdentityMapper[P], CSECachingMapperMixin[Expression, P], ABC): +class CSECachingIdentityMapper(IdentityMapper[P], + CSECachingMapperMixin[Expression, P], + ABC): pass -class CallExternalRecMapper(IdentityMapper): - def rec(self, expr, rec_self=None, *args, **kwargs): +class CallExternalRecMapper(IdentityMapper[P]): + @override + def rec(self, + expr: Expression, /, + rec_self: CallExternalRecMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: if rec_self: - return rec_self.rec(expr, *args, **kwargs) + return rec_self.rec(expr, rec_self, *args, **kwargs) else: return super().rec(expr, *args, **kwargs) @@ -256,31 +296,52 @@ def rec(self, expr, rec_self=None, *args, **kwargs): # {{{ bessel handling -class BesselTopOrderGatherer(CSECachingIdentityMapper, CallExternalRecMapper): +class BesselTopOrderGatherer(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): """This mapper walks the expression tree to find the highest-order Bessel J being used, so that all other Js can be computed by the (stable) downward recurrence. """ - def __init__(self): + + bessel_j_arg_to_top_order: dict[Expression, int] + + def __init__(self) -> None: self.bessel_j_arg_to_top_order = {} - def map_call(self, expr, rec_self=None, *args): - if (isinstance(expr.function, prim.Variable) - and expr.function.name == "bessel_j"): + @override + def map_call(self, + expr: prim.Call, + rec_self: CallExternalRecMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: + function = expr.function + if isinstance(function, prim.Variable) and function.name == "bessel_j": order, arg = expr.parameters - self.rec(arg) + self.rec(arg, rec_self, *args, **kwargs) + assert isinstance(order, int) self.bessel_j_arg_to_top_order[arg] = max( self.bessel_j_arg_to_top_order.get(arg, 0), abs(order)) - return CSECachingIdentityMapper.map_call(rec_self or self, - expr, rec_self, *args) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + return CSECachingIdentityMapper.map_call( + rec_self or self, + expr, rec_self, *args, **kwargs) + + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) -class BesselDerivativeReplacer(CSECachingIdentityMapper, CallExternalRecMapper): - def map_call(self, expr, rec_self=None, *args): +class BesselDerivativeReplacer(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): + @override + def map_call(self, + expr: prim.Call, + rec_self: CallExternalRecMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: call = expr if (isinstance(call.function, prim.Variable) @@ -289,8 +350,9 @@ def map_call(self, expr, rec_self=None, *args): function = prim.Variable("hankel_1") else: function = prim.Variable("bessel_j") - order, arg, n_derivs = call.parameters - import sympy as sym + order, arg, k = call.parameters + assert isinstance(order, int) + assert isinstance(k, int) # AS (9.1.31) # https://dlmf.nist.gov/10.6.7 @@ -299,59 +361,86 @@ def map_call(self, expr, rec_self=None, *args): else: order_str = f"m{-order}" - k = n_derivs + from math import comb return prim.CommonSubexpression( - 2**(-k)*sum( - (-1)**idx*int(sym.binomial(k, idx)) * function(i, arg) + 2.0**(-k) * sum( + (-1)**idx * comb(k, idx) * function(i, arg) for idx, i in enumerate(range(order-k, order+k+1, 2))), - f"d{n_derivs}_{function.name}_{order_str}", + f"d{k}_{function.name}_{order_str}", scope=prim.cse_scope.EVALUATION) else: return CSECachingIdentityMapper.map_call( - rec_self or self, expr, rec_self, *args) + rec_self or self, + expr, rec_self, *args, **kwargs) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) -class BesselSubstitutor(CSECachingIdentityMapper): - def __init__(self, name_gen, bessel_j_arg_to_top_order, assignments): +class BesselSubstitutor(CSECachingIdentityMapper[P]): + name_gen: Callable[[str], str] + bessel_j_arg_to_top_order: dict[Expression, int] + assignments: list[Assignment | CallInstruction] + + cse_cache: dict[Expression, prim.CommonSubexpression] + + def __init__(self, + name_gen: Callable[[str], str], + bessel_j_arg_to_top_order: dict[Expression, int], + assignments: Sequence[Assignment | CallInstruction]) -> None: self.name_gen = name_gen self.bessel_j_arg_to_top_order = bessel_j_arg_to_top_order self.cse_cache = {} - self.assignments = assignments + self.assignments = list(assignments) - def map_call(self, expr, *args): + @override + def map_call(self, expr: prim.Call, + *args: P.args, **kwargs: P.kwargs) -> Expression: if isinstance(expr.function, prim.Variable): name = expr.function.name if name == "bessel_j": order, arg = expr.parameters - return self.bessel_j(order, self.rec(arg, *args)) + assert isinstance(order, int) + assert prim.is_arithmetic_expression(arg) + + return self.bessel_j(order, self.rec_arith(arg, *args, **kwargs)) elif name == "hankel_1": order, arg = expr.parameters - return self.hankel_1(order, self.rec(arg, *args)) + assert isinstance(order, int) - return super().map_call(expr) + return self.hankel_1(order, self.rec(arg, *args, **kwargs)) - def wrap_in_cse(self, expr, prefix): + return super().map_call(expr, *args, **kwargs) + + def wrap_in_cse(self, expr: Expression, prefix: str) -> prim.CommonSubexpression: cse = wrap_in_cse(expr, prefix) return self.cse_cache.setdefault(expr, cse) # {{{ bessel implementation @memoize_method - def bessel_jv_two(self, order, arg): - name_om1 = self.name_gen(f"bessel_{order - 1}") - name_o = self.name_gen(f"bessel_{order}") + def bessel_jv_two( + self, order: int, arg: Expression + ) -> tuple[prim.Variable, prim.Variable]: + om0 = prim.Variable(self.name_gen(f"bessel_{order}")) + om1 = prim.Variable(self.name_gen(f"bessel_{order - 1}")) + self.assignments.append( make_assignment( - (prim.Variable(name_om1), prim.Variable(name_o),), + (om1, om0), prim.Variable("bessel_jvvp1")(order, arg), temp_var_types=(lp.Optional(None),)*2)) - return prim.Variable(name_om1), prim.Variable(name_o) + return om1, om0 @memoize_method - def bessel_j(self, order, arg): + def bessel_j( + self, order: int, arg: ArithmeticExpression + ) -> ArithmeticExpression: top_order = self.bessel_j_arg_to_top_order[arg] if order == top_order: return self.bessel_jv_two(top_order-1, arg)[1] @@ -359,7 +448,7 @@ def bessel_j(self, order, arg): return self.bessel_jv_two(top_order-1, arg)[0] elif order < 0: return self.wrap_in_cse( - (-1)**order*self.bessel_j(-order, arg), + (-1.0)**order*self.bessel_j(-order, arg), f"bessel_j_neg{-order}") else: assert abs(order) < top_order @@ -375,18 +464,20 @@ def bessel_j(self, order, arg): # {{{ hankel implementation @memoize_method - def hank1_01(self, arg): - name_0 = self.name_gen("hank1_0") - name_1 = self.name_gen("hank1_1") + def hank1_01(self, arg: Expression) -> tuple[prim.Variable, prim.Variable]: + hank1_0 = prim.Variable(self.name_gen("hank1_0")) + hank1_1 = prim.Variable(self.name_gen("hank1_1")) + self.assignments.append( make_assignment( - (prim.Variable(name_0), prim.Variable(name_1),), + (hank1_0, hank1_1), prim.Variable("hank1_01")(arg), temp_var_types=(lp.Optional(None),)*2)) - return prim.Variable(name_0), prim.Variable(name_1) + + return hank1_0, hank1_1 @memoize_method - def hankel_1(self, order, arg): + def hankel_1(self, order: int, arg: ArithmeticExpression) -> ArithmeticExpression: if order == 0: return self.hank1_01(arg)[0] elif order == 1: @@ -395,7 +486,7 @@ def hankel_1(self, order, arg): # AS (9.1.6) nu = -order return self.wrap_in_cse( - (-1) ** nu * self.hankel_1(nu, arg), + (-1.0) ** nu * self.hankel_1(nu, arg), f"hank1_neg{nu}") elif order > 1: # AS (9.1.27) @@ -408,45 +499,55 @@ def hankel_1(self, order, arg): # }}} - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # }}} # {{{ power rewriter -class PowerRewriter(CSECachingIdentityMapper, CallExternalRecMapper): - def map_power(self, expr, rec_self=None, *args): +class PowerRewriter(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): + @override + def map_power(self, + expr: prim.Power, + rec_self: CallExternalRecMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: exp = expr.exponent - if isinstance(exp, int): - new_base = wrap_in_cse(expr.base) + new_base = wrap_in_cse(expr.base) + if isinstance(exp, int): if exp > 2 and exp % 2 == 0: square = wrap_in_cse(new_base*new_base) return self.rec(wrap_in_cse(square**(exp//2)), - rec_self, *args) + rec_self, *args, **kwargs) elif exp == 2: return new_base * new_base elif exp > 1 and exp % 2 == 1: square = wrap_in_cse(new_base*new_base) return self.rec(wrap_in_cse(square**((exp-1)//2))*new_base, - rec_self, *args) + rec_self, *args, **kwargs) elif exp == 1: return new_base elif exp < 0: - return self.rec((1/new_base)**(-exp), rec_self, *args) - - if (isinstance(expr.exponent, prim.Quotient) - and isinstance(expr.exponent.numerator, int) - and isinstance(expr.exponent.denominator, int)): + return self.rec((1/new_base)**(-exp), + rec_self, *args, **kwargs) - p, q = expr.exponent.numerator, expr.exponent.denominator + if (isinstance(exp, prim.Quotient) + and isinstance(exp.numerator, int) + and isinstance(exp.denominator, int)): + p, q = exp.numerator, exp.denominator if q < 0: q *= -1 p *= -1 if q == 1: - return self.rec(new_base**p, rec_self, *args) + return self.rec(new_base**p, rec_self, *args, **kwargs) if q == 2: assert p != 0 @@ -458,32 +559,46 @@ def map_power(self, expr, rec_self=None, *args): new_base = wrap_in_cse(prim.Variable("rsqrt")(expr.base)) p *= -1 - return self.rec(new_base**p, rec_self, *args) + return self.rec(new_base**p, rec_self, *args, **kwargs) - return CSECachingIdentityMapper.map_power(rec_self or self, expr) + return CSECachingIdentityMapper.map_power( + rec_self or self, + expr, *args, **kwargs) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # }}} # {{{ convert big integers into floats -from loopy.typing import is_integer - - -class BigIntegerKiller(CSECachingIdentityMapper, CallExternalRecMapper): +class BigIntegerKiller(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): + warn: bool + float_type: type[np.floating] + iinfo: np.iinfo - def __init__(self, warn_on_digit_loss=True, int_type=np.int64, - float_type=np.float64): + def __init__(self, + warn_on_digit_loss: bool = True, + int_type: type[np.integer] = np.int64, + float_type: type[np.floating] = np.float64) -> None: super().__init__() self.warn = warn_on_digit_loss self.float_type = float_type self.iinfo = np.iinfo(int_type) - def map_constant(self, expr, *args): + @override + def map_constant(self, expr: object, + *args: P.args, **kwargs: P.kwargs) -> Expression: """Convert integer values not within the range of `self.int_type` to float. """ + from loopy.typing import is_integer + if not is_integer(expr): return expr @@ -503,31 +618,40 @@ def map_constant(self, expr, *args): return self.float_type(expr) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # }}} # {{{ convert complex to np.complex -class ComplexRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): +class ComplexRewriter(CSECachingIdentityMapper[[]], + CallExternalRecMapper[[]]): complex_dtype: np.dtype[np.complexfloating] | None - def __init__(self, complex_dtype: np.dtype[np.complexfloating] | None = None): + def __init__(self, + complex_dtype: np.dtype[np.complexfloating] | None = None) -> None: super().__init__() self.complex_dtype = complex_dtype - def map_constant(self, expr: object, rec_self=None): + @override + def map_constant(self, expr: object, + rec_self: CallExternalRecMapper[[]] | None = None) -> Expression: """Convert complex values to numpy types """ if not isinstance(expr, (complex, np.complex64, np.complex128)): - return IdentityMapper.map_constant(rec_self or self, expr, - rec_self=rec_self) + return IdentityMapper.map_constant(rec_self or self, expr, rec_self) complex_dtype = self.complex_dtype if complex_dtype is None: if complex(np.complex64(expr)) == expr: return np.complex64(expr) + complex_dtype = np.complex128 if isinstance(complex_dtype, np.dtype): @@ -535,7 +659,11 @@ def map_constant(self, expr: object, rec_self=None): else: return complex_dtype(expr) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr) # }}} @@ -545,7 +673,8 @@ def map_constant(self, expr: object, rec_self=None): INDEXED_VAR_RE = re.compile(r"^([a-zA-Z_]+)([0-9]+)$") -class VectorComponentRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): +class VectorComponentRewriter(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): """For names in name_whitelist, turn ``a3`` into ``a[3]``.""" name_whitelist: frozenset[str] @@ -556,11 +685,14 @@ def __init__(self, name_whitelist: frozenset[str] | None = None) -> None: self.name_whitelist = name_whitelist - def map_variable(self, expr, *args): + @override + def map_variable(self, expr: prim.Variable, + *args: P.args, **kwargs: P.kwargs) -> Expression: match_obj = INDEXED_VAR_RE.match(expr.name) if match_obj is not None: name = match_obj.group(1) subscript = int(match_obj.group(2)) + if name in self.name_whitelist: return prim.Variable(name)[subscript] else: @@ -568,22 +700,30 @@ def map_variable(self, expr, *args): else: return expr - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # }}} # {{{ sum sign grouper -class SumSignGrouper(CSECachingIdentityMapper[[]], CallExternalRecMapper): +class SumSignGrouper(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): """Anti-cancellation cargo-cultism.""" - def map_sum(self, expr, *args): - first_group = [] - second_group = [] + @override + def map_sum(self, expr: prim.Sum, + *args: P.args, **kwargs: P.kwargs) -> Expression: + first_group: list[ArithmeticExpression] = [] + second_group: list[ArithmeticExpression] = [] for orig_child in expr.children: - child = self.rec(orig_child, *args) + child = self.rec_arith(orig_child, *args, **kwargs) tchild = child if isinstance(tchild, prim.CommonSubexpression): tchild = tchild.child @@ -609,24 +749,47 @@ def map_sum(self, expr, *args): return prim.Sum(tuple(first_group + second_group)) - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # }}} -class MathConstantRewriter(CSECachingIdentityMapper[[]], CallExternalRecMapper): - def map_variable(self, expr, *args): +class MathConstantRewriter(CSECachingIdentityMapper[P], + CallExternalRecMapper[P]): + @override + def map_variable(self, expr: prim.Variable, + *args: P.args, **kwargs: P.kwargs) -> Expression: if expr.name == "pi": return prim.Variable("M_PI") else: return expr - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression + @override + def map_common_subexpression_uncached( + self, + expr: prim.CommonSubexpression, + *args: P.args, **kwargs: P.kwargs) -> Expression: + return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) # {{{ combine mappers -def combine_mappers(*mappers: CallExternalRecMapper): + +class MapperMethod(Protocol[P]): + def __call__(self, + obj: CallExternalRecMapper[P], + expr: Expression, + rec_self: IdentityMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: + ... + + +def combine_mappers(*mappers: CallExternalRecMapper[P]) -> CSECachingIdentityMapper[P]: """Returns a mapper that combines the work of several other mappers. For this to work, the mappers need to be instances of :class:`sumpy.codegen.CallExternalRecMapper`. When calling parent class @@ -636,19 +799,26 @@ def combine_mappers(*mappers: CallExternalRecMapper): given. The mappers need to commute and be idempotent. """ from collections import defaultdict - all_methods = defaultdict(list) + + all_methods: dict[str, list[tuple[CallExternalRecMapper[P], + MapperMethod[P]]]] = defaultdict(list) base_classes = [CSECachingMapperMixin, IdentityMapper] for mapper in mappers: assert isinstance(mapper, CallExternalRecMapper) + for method_name in dir(type(mapper)): if not method_name.startswith("map_"): continue + if method_name == "map_common_subexpression_uncached": continue - method = getattr(type(mapper), method_name) + + method = cast("MapperMethod[P]", getattr(type(mapper), method_name)) method_equals_base_class_method = False for base_class in base_classes: - base_class_method = getattr(base_class, method_name, None) + base_class_method = cast("MapperMethod[P] | None", + getattr(base_class, method_name, None)) + if base_class_method is not None: method_equals_base_class_method = (base_class_method == method) break @@ -657,29 +827,44 @@ def combine_mappers(*mappers: CallExternalRecMapper): if method_equals_base_class_method: continue + all_methods[method_name].append((mapper, method)) - class CombinedMapper(CSECachingIdentityMapper): - def __init__(self, all_methods): + class CombinedMapper(CSECachingIdentityMapper[P]): + all_methods: dict[str, list[tuple[CallExternalRecMapper[P], + MapperMethod[P]]]] + + def __init__(self, + all_methods: dict[str, list[ + tuple[CallExternalRecMapper[P], MapperMethod[P]]]]) -> None: self.all_methods = all_methods + map_common_subexpression_uncached = IdentityMapper.map_common_subexpression - def _map(method_name, self, expr, rec_self=None, *args): + def _map(method_name: str, + self: CombinedMapper, + expr: Expression, + rec_self: CallExternalRecMapper[P] | None = None, + *args: P.args, **kwargs: P.kwargs) -> Expression: if method_name not in self.all_methods: - return getattr(IdentityMapper, method_name)(self, expr) + return getattr(IdentityMapper, method_name)(self, expr, *args, **kwargs) + for mapper, method in self.all_methods[method_name]: - new_expr = method(mapper, expr, self) + new_expr = method(mapper, expr, rec_self, *args, **kwargs) if new_expr is not expr: # Re-traverse the whole thing from the get-go. - return self.rec(new_expr) + return self.rec(new_expr, *args, **kwargs) + return expr import types from functools import partial + combine_mapper = CombinedMapper(all_methods) for method_name in all_methods: setattr(combine_mapper, method_name, types.MethodType(partial(_map, method_name), combine_mapper)) + return combine_mapper # }}} @@ -687,14 +872,31 @@ def _map(method_name, self, expr, rec_self=None, *args): # {{{ to-loopy conversion -def to_loopy_insns(assignments, vector_names=frozenset(), pymbolic_expr_maps=(), - complex_dtype=None, retain_names=frozenset()): +def to_loopy_insns( + assignments: Iterable[tuple[str, sym.Expr]], + vector_names: Set[str] | None = None, + pymbolic_expr_maps: Sequence[Callable[[Expression], Expression]] = (), + complex_dtype: DTypeLike = None, + retain_names: Set[str] | None = None, + ) -> Sequence[Assignment | CallInstruction]: + if vector_names is None: + vector_names = frozenset() + vector_names = frozenset(vector_names) + + if retain_names is None: + retain_names = frozenset() + retain_names = frozenset(retain_names) + + if complex_dtype is None: + complex_dtype = np.dtype(np.complex128) + complex_dtype = np.dtype(complex_dtype) + logger.info("loopy instruction generation: start") assignments = list(assignments) # convert from sympy sympy_conv = SympyToPymbolicMapper() - assignments = [(name, sympy_conv(expr)) for name, expr in assignments] + pymbolic_assignments = [(name, sympy_conv(expr)) for name, expr in assignments] bdr = BesselDerivativeReplacer() btog = BesselTopOrderGatherer() @@ -708,7 +910,7 @@ def to_loopy_insns(assignments, vector_names=frozenset(), pymbolic_expr_maps=(), # https://github.com/inducer/sumpy/pull/40#issuecomment-852635444 cmb_mapper = combine_mappers(bdr, btog, vcr, pwr, ssg, bik, cmr) else: - def cmb_mapper(expr, /): + def cmb_mapper(expr: Expression, /) -> Expression: expr = bdr(expr) expr = vcr(expr) expr = pwr(expr) @@ -718,26 +920,31 @@ def cmb_mapper(expr, /): expr = btog(expr) return expr - def convert_expr(name, expr): + def convert_expr(name: str, expr: Expression) -> Expression: logger.debug("generate expression for: %s", name) expr = cmb_mapper(expr) for m in pymbolic_expr_maps: expr = m(expr) + return expr - assignments = [(name, convert_expr(name, expr)) for name, expr in assignments] + pymbolic_assignments = [ + (name, convert_expr(name, expr)) for name, expr in pymbolic_assignments + ] + from pytools import UniqueNameGenerator - name_gen = UniqueNameGenerator({name for name, expr in assignments}) + name_gen = UniqueNameGenerator({name for name, _expr in pymbolic_assignments}) - result = [] + result: list[Assignment | CallInstruction] = [] bessel_sub = BesselSubstitutor( name_gen, btog.bessel_j_arg_to_top_order, result) import loopy as lp from pytools import MinRecursionLimit + with MinRecursionLimit(3000): - for name, expr in assignments: + for name, expr in pymbolic_assignments: result.append(lp.Assignment(id=None, assignee=name, expression=bessel_sub(expr), temp_var_type=lp.Optional(None))) From c9a9276aa22497ecad21f426b60a33ab28687d1a Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 7 Nov 2025 20:14:35 +0200 Subject: [PATCH 224/335] feat: remove CallExternalRecMapper --- sumpy/codegen.py | 190 ++++++++--------------------------------------- 1 file changed, 32 insertions(+), 158 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 7f504ed19..f7e4ac4fb 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -26,7 +26,7 @@ import logging import re from abc import ABC -from typing import TYPE_CHECKING, Protocol, cast +from typing import TYPE_CHECKING import numpy as np from constantdict import constantdict @@ -280,24 +280,12 @@ class CSECachingIdentityMapper(IdentityMapper[P], pass -class CallExternalRecMapper(IdentityMapper[P]): - @override - def rec(self, - expr: Expression, /, - rec_self: CallExternalRecMapper[P] | None = None, - *args: P.args, **kwargs: P.kwargs) -> Expression: - if rec_self: - return rec_self.rec(expr, rec_self, *args, **kwargs) - else: - return super().rec(expr, *args, **kwargs) - # }}} # {{{ bessel handling -class BesselTopOrderGatherer(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class BesselTopOrderGatherer(CSECachingIdentityMapper[P]): """This mapper walks the expression tree to find the highest-order Bessel J being used, so that all other Js can be computed by the (stable) downward recurrence. @@ -311,21 +299,18 @@ def __init__(self) -> None: @override def map_call(self, expr: prim.Call, - rec_self: CallExternalRecMapper[P] | None = None, *args: P.args, **kwargs: P.kwargs) -> Expression: function = expr.function if isinstance(function, prim.Variable) and function.name == "bessel_j": order, arg = expr.parameters - self.rec(arg, rec_self, *args, **kwargs) + self.rec(arg, *args, **kwargs) assert isinstance(order, int) self.bessel_j_arg_to_top_order[arg] = max( self.bessel_j_arg_to_top_order.get(arg, 0), abs(order)) - return CSECachingIdentityMapper.map_call( - rec_self or self, - expr, rec_self, *args, **kwargs) + return super().map_call(expr, *args, **kwargs) @override def map_common_subexpression_uncached( @@ -335,12 +320,10 @@ def map_common_subexpression_uncached( return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) -class BesselDerivativeReplacer(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class BesselDerivativeReplacer(CSECachingIdentityMapper[P]): @override def map_call(self, expr: prim.Call, - rec_self: CallExternalRecMapper[P] | None = None, *args: P.args, **kwargs: P.kwargs) -> Expression: call = expr @@ -369,9 +352,7 @@ def map_call(self, f"d{k}_{function.name}_{order_str}", scope=prim.cse_scope.EVALUATION) else: - return CSECachingIdentityMapper.map_call( - rec_self or self, - expr, rec_self, *args, **kwargs) + return super().map_call(expr, *args, **kwargs) @override def map_common_subexpression_uncached( @@ -411,8 +392,9 @@ def map_call(self, expr: prim.Call, elif name == "hankel_1": order, arg = expr.parameters assert isinstance(order, int) + assert prim.is_arithmetic_expression(arg) - return self.hankel_1(order, self.rec(arg, *args, **kwargs)) + return self.hankel_1(order, self.rec_arith(arg, *args, **kwargs)) return super().map_call(expr, *args, **kwargs) @@ -511,12 +493,10 @@ def map_common_subexpression_uncached( # {{{ power rewriter -class PowerRewriter(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class PowerRewriter(CSECachingIdentityMapper[P]): @override def map_power(self, expr: prim.Power, - rec_self: CallExternalRecMapper[P] | None = None, *args: P.args, **kwargs: P.kwargs) -> Expression: exp = expr.exponent new_base = wrap_in_cse(expr.base) @@ -524,19 +504,17 @@ def map_power(self, if isinstance(exp, int): if exp > 2 and exp % 2 == 0: square = wrap_in_cse(new_base*new_base) - return self.rec(wrap_in_cse(square**(exp//2)), - rec_self, *args, **kwargs) + return self.rec(wrap_in_cse(square**(exp//2)), *args, **kwargs) elif exp == 2: return new_base * new_base elif exp > 1 and exp % 2 == 1: square = wrap_in_cse(new_base*new_base) return self.rec(wrap_in_cse(square**((exp-1)//2))*new_base, - rec_self, *args, **kwargs) + *args, **kwargs) elif exp == 1: return new_base elif exp < 0: - return self.rec((1/new_base)**(-exp), - rec_self, *args, **kwargs) + return self.rec((1/new_base)**(-exp), *args, **kwargs) if (isinstance(exp, prim.Quotient) and isinstance(exp.numerator, int) @@ -547,7 +525,7 @@ def map_power(self, p *= -1 if q == 1: - return self.rec(new_base**p, rec_self, *args, **kwargs) + return self.rec(new_base**p, *args, **kwargs) if q == 2: assert p != 0 @@ -559,11 +537,9 @@ def map_power(self, new_base = wrap_in_cse(prim.Variable("rsqrt")(expr.base)) p *= -1 - return self.rec(new_base**p, rec_self, *args, **kwargs) + return self.rec(new_base**p, *args, **kwargs) - return CSECachingIdentityMapper.map_power( - rec_self or self, - expr, *args, **kwargs) + return super().map_power(expr, *args, **kwargs) @override def map_common_subexpression_uncached( @@ -577,8 +553,8 @@ def map_common_subexpression_uncached( # {{{ convert big integers into floats -class BigIntegerKiller(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): + +class BigIntegerKiller(CSECachingIdentityMapper[P]): warn: bool float_type: type[np.floating] iinfo: np.iinfo @@ -630,8 +606,7 @@ def map_common_subexpression_uncached( # {{{ convert complex to np.complex -class ComplexRewriter(CSECachingIdentityMapper[[]], - CallExternalRecMapper[[]]): +class ComplexRewriter(CSECachingIdentityMapper[[]]): complex_dtype: np.dtype[np.complexfloating] | None def __init__(self, @@ -640,12 +615,11 @@ def __init__(self, self.complex_dtype = complex_dtype @override - def map_constant(self, expr: object, - rec_self: CallExternalRecMapper[[]] | None = None) -> Expression: + def map_constant(self, expr: object) -> Expression: """Convert complex values to numpy types """ if not isinstance(expr, (complex, np.complex64, np.complex128)): - return IdentityMapper.map_constant(rec_self or self, expr, rec_self) + return super().map_constant(expr) complex_dtype = self.complex_dtype if complex_dtype is None: @@ -673,8 +647,7 @@ def map_common_subexpression_uncached( INDEXED_VAR_RE = re.compile(r"^([a-zA-Z_]+)([0-9]+)$") -class VectorComponentRewriter(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class VectorComponentRewriter(CSECachingIdentityMapper[P]): """For names in name_whitelist, turn ``a3`` into ``a[3]``.""" name_whitelist: frozenset[str] @@ -712,8 +685,7 @@ def map_common_subexpression_uncached( # {{{ sum sign grouper -class SumSignGrouper(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class SumSignGrouper(CSECachingIdentityMapper[P]): """Anti-cancellation cargo-cultism.""" @override @@ -759,8 +731,7 @@ def map_common_subexpression_uncached( # }}} -class MathConstantRewriter(CSECachingIdentityMapper[P], - CallExternalRecMapper[P]): +class MathConstantRewriter(CSECachingIdentityMapper[P]): @override def map_variable(self, expr: prim.Variable, *args: P.args, **kwargs: P.kwargs) -> Expression: @@ -777,99 +748,6 @@ def map_common_subexpression_uncached( return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) -# {{{ combine mappers - - -class MapperMethod(Protocol[P]): - def __call__(self, - obj: CallExternalRecMapper[P], - expr: Expression, - rec_self: IdentityMapper[P] | None = None, - *args: P.args, **kwargs: P.kwargs) -> Expression: - ... - - -def combine_mappers(*mappers: CallExternalRecMapper[P]) -> CSECachingIdentityMapper[P]: - """Returns a mapper that combines the work of several other mappers. For - this to work, the mappers need to be instances of - :class:`sumpy.codegen.CallExternalRecMapper`. When calling parent class - methods, the mappers need to use the (first) argument *rec_self* as the - instance passed to the *map_* method. *rec_self* is a (custom-generated) - *CombinedMapper* instance which dispatches the object to all the mappers - given. The mappers need to commute and be idempotent. - """ - from collections import defaultdict - - all_methods: dict[str, list[tuple[CallExternalRecMapper[P], - MapperMethod[P]]]] = defaultdict(list) - base_classes = [CSECachingMapperMixin, IdentityMapper] - for mapper in mappers: - assert isinstance(mapper, CallExternalRecMapper) - - for method_name in dir(type(mapper)): - if not method_name.startswith("map_"): - continue - - if method_name == "map_common_subexpression_uncached": - continue - - method = cast("MapperMethod[P]", getattr(type(mapper), method_name)) - method_equals_base_class_method = False - for base_class in base_classes: - base_class_method = cast("MapperMethod[P] | None", - getattr(base_class, method_name, None)) - - if base_class_method is not None: - method_equals_base_class_method = (base_class_method == method) - break - else: - raise RuntimeError(f"Unknown mapping method {method_name}") - - if method_equals_base_class_method: - continue - - all_methods[method_name].append((mapper, method)) - - class CombinedMapper(CSECachingIdentityMapper[P]): - all_methods: dict[str, list[tuple[CallExternalRecMapper[P], - MapperMethod[P]]]] - - def __init__(self, - all_methods: dict[str, list[ - tuple[CallExternalRecMapper[P], MapperMethod[P]]]]) -> None: - self.all_methods = all_methods - - map_common_subexpression_uncached = IdentityMapper.map_common_subexpression - - def _map(method_name: str, - self: CombinedMapper, - expr: Expression, - rec_self: CallExternalRecMapper[P] | None = None, - *args: P.args, **kwargs: P.kwargs) -> Expression: - if method_name not in self.all_methods: - return getattr(IdentityMapper, method_name)(self, expr, *args, **kwargs) - - for mapper, method in self.all_methods[method_name]: - new_expr = method(mapper, expr, rec_self, *args, **kwargs) - if new_expr is not expr: - # Re-traverse the whole thing from the get-go. - return self.rec(new_expr, *args, **kwargs) - - return expr - - import types - from functools import partial - - combine_mapper = CombinedMapper(all_methods) - for method_name in all_methods: - setattr(combine_mapper, method_name, - types.MethodType(partial(_map, method_name), combine_mapper)) - - return combine_mapper - -# }}} - - # {{{ to-loopy conversion def to_loopy_insns( @@ -906,19 +784,15 @@ def to_loopy_insns( bik = BigIntegerKiller() cmr = ComplexRewriter(complex_dtype) - if 0: - # https://github.com/inducer/sumpy/pull/40#issuecomment-852635444 - cmb_mapper = combine_mappers(bdr, btog, vcr, pwr, ssg, bik, cmr) - else: - def cmb_mapper(expr: Expression, /) -> Expression: - expr = bdr(expr) - expr = vcr(expr) - expr = pwr(expr) - expr = ssg(expr) - expr = bik(expr) - expr = cmr(expr) - expr = btog(expr) - return expr + def cmb_mapper(expr: Expression, /) -> Expression: + expr = bdr(expr) + expr = vcr(expr) + expr = pwr(expr) + expr = ssg(expr) + expr = bik(expr) + expr = cmr(expr) + expr = btog(expr) + return expr def convert_expr(name: str, expr: Expression) -> Expression: logger.debug("generate expression for: %s", name) From d5a3bfd1bee0d1b88008b90c38bdf7433a3a776f Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 7 Nov 2025 20:20:12 +0200 Subject: [PATCH 225/335] feat: make mapper methods positional-only --- sumpy/codegen.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index f7e4ac4fb..3164f38f6 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -298,7 +298,7 @@ def __init__(self) -> None: @override def map_call(self, - expr: prim.Call, + expr: prim.Call, /, *args: P.args, **kwargs: P.kwargs) -> Expression: function = expr.function if isinstance(function, prim.Variable) and function.name == "bessel_j": @@ -315,7 +315,7 @@ def map_call(self, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -323,7 +323,7 @@ def map_common_subexpression_uncached( class BesselDerivativeReplacer(CSECachingIdentityMapper[P]): @override def map_call(self, - expr: prim.Call, + expr: prim.Call, /, *args: P.args, **kwargs: P.kwargs) -> Expression: call = expr @@ -357,7 +357,7 @@ def map_call(self, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -379,7 +379,7 @@ def __init__(self, self.assignments = list(assignments) @override - def map_call(self, expr: prim.Call, + def map_call(self, expr: prim.Call, /, *args: P.args, **kwargs: P.kwargs) -> Expression: if isinstance(expr.function, prim.Variable): name = expr.function.name @@ -484,7 +484,7 @@ def hankel_1(self, order: int, arg: ArithmeticExpression) -> ArithmeticExpressio @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -496,7 +496,7 @@ def map_common_subexpression_uncached( class PowerRewriter(CSECachingIdentityMapper[P]): @override def map_power(self, - expr: prim.Power, + expr: prim.Power, /, *args: P.args, **kwargs: P.kwargs) -> Expression: exp = expr.exponent new_base = wrap_in_cse(expr.base) @@ -544,7 +544,7 @@ def map_power(self, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -569,7 +569,7 @@ def __init__(self, self.iinfo = np.iinfo(int_type) @override - def map_constant(self, expr: object, + def map_constant(self, expr: object, /, *args: P.args, **kwargs: P.kwargs) -> Expression: """Convert integer values not within the range of `self.int_type` to float. """ @@ -597,7 +597,7 @@ def map_constant(self, expr: object, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -615,7 +615,7 @@ def __init__(self, self.complex_dtype = complex_dtype @override - def map_constant(self, expr: object) -> Expression: + def map_constant(self, expr: object, /) -> Expression: """Convert complex values to numpy types """ if not isinstance(expr, (complex, np.complex64, np.complex128)): @@ -636,7 +636,7 @@ def map_constant(self, expr: object) -> Expression: @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression) -> Expression: + expr: prim.CommonSubexpression, /) -> Expression: return IdentityMapper.map_common_subexpression(self, expr) # }}} @@ -659,7 +659,7 @@ def __init__(self, name_whitelist: frozenset[str] | None = None) -> None: self.name_whitelist = name_whitelist @override - def map_variable(self, expr: prim.Variable, + def map_variable(self, expr: prim.Variable, /, *args: P.args, **kwargs: P.kwargs) -> Expression: match_obj = INDEXED_VAR_RE.match(expr.name) if match_obj is not None: @@ -676,7 +676,7 @@ def map_variable(self, expr: prim.Variable, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -689,7 +689,7 @@ class SumSignGrouper(CSECachingIdentityMapper[P]): """Anti-cancellation cargo-cultism.""" @override - def map_sum(self, expr: prim.Sum, + def map_sum(self, expr: prim.Sum, /, *args: P.args, **kwargs: P.kwargs) -> Expression: first_group: list[ArithmeticExpression] = [] second_group: list[ArithmeticExpression] = [] @@ -724,7 +724,7 @@ def map_sum(self, expr: prim.Sum, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) @@ -733,7 +733,7 @@ def map_common_subexpression_uncached( class MathConstantRewriter(CSECachingIdentityMapper[P]): @override - def map_variable(self, expr: prim.Variable, + def map_variable(self, expr: prim.Variable, /, *args: P.args, **kwargs: P.kwargs) -> Expression: if expr.name == "pi": return prim.Variable("M_PI") @@ -743,7 +743,7 @@ def map_variable(self, expr: prim.Variable, @override def map_common_subexpression_uncached( self, - expr: prim.CommonSubexpression, + expr: prim.CommonSubexpression, /, *args: P.args, **kwargs: P.kwargs) -> Expression: return IdentityMapper.map_common_subexpression(self, expr, *args, **kwargs) From a9e5f5e4abdd6b61f1ed405f686567766df73272 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 7 Nov 2025 21:34:21 +0200 Subject: [PATCH 226/335] fix(typing): use sym.Matrix in get_expression --- sumpy/kernel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e393fd9c6..c7a71f5cc 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -257,7 +257,7 @@ def get_code_transformer(self) -> Callable[[Expression], Expression]: return lambda expr: expr @abstractmethod - def get_expression(self, dist_vec: sp.Matrix) -> sym.Expr: + def get_expression(self, dist_vec: sym.Matrix) -> sym.Expr: """ :returns: a :mod:`sympy` expression for the kernel. """ From 737f66537b45190951e3591d005da655620b8381 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 7 Nov 2025 21:34:48 +0200 Subject: [PATCH 227/335] feat(typing): improve annotations in expansions --- sumpy/expansion/__init__.py | 188 ++++++++++++++++++++++-------------- sumpy/expansion/local.py | 52 +++++----- 2 files changed, 145 insertions(+), 95 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 6e6262bf8..b391fce89 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -25,7 +25,7 @@ import logging from abc import ABC, abstractmethod from dataclasses import dataclass, field, replace -from typing import TYPE_CHECKING, Any, ClassVar, Protocol +from typing import TYPE_CHECKING, Any, ClassVar, Protocol, TypeAlias from warnings import warn from typing_extensions import Self, override @@ -34,6 +34,7 @@ from pytools import memoize_method import sumpy.symbolic as sym +from sumpy.expansion.diff_op import DerivativeIdentifier from sumpy.tools import add_mi @@ -41,12 +42,13 @@ from collections.abc import Callable, Hashable, Sequence import loopy as lp + from pymbolic.typing import Expression from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import MultiIndex from sumpy.expansion.local import LocalExpansionBase from sumpy.expansion.multipole import MultipoleExpansionBase - from sumpy.kernel import Kernel + from sumpy.kernel import Kernel, KernelArgument logger = logging.getLogger(__name__) @@ -101,7 +103,7 @@ class ExpansionBase(ABC): order: int use_rscale: bool = field(kw_only=True, default=True) - def __post_init__(self): + def __post_init__(self) -> None: if self.use_rscale is None: warn("use_rscale is None in ExpansionBase. " "This is deprecated and will stop working in 2026.", @@ -122,16 +124,16 @@ def dim(self) -> int: def is_complex_valued(self) -> bool: return self.kernel.is_complex_valued - def get_code_transformer(self): + def get_code_transformer(self) -> Callable[[Expression], Expression]: return self.kernel.get_code_transformer() - def get_global_scaling_const(self): + def get_global_scaling_const(self) -> sym.Expr: return self.kernel.get_global_scaling_const() - def get_args(self): + def get_args(self) -> Sequence[KernelArgument]: return self.kernel.get_args() - def get_source_args(self): + def get_source_args(self) -> Sequence[KernelArgument]: return self.kernel.get_source_args() # }}} @@ -237,12 +239,12 @@ def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: def with_kernel(self, kernel: Kernel) -> ExpansionBase: return replace(self, kernel=kernel) - def copy(self, **kwargs) -> Self: + def copy(self, **kwargs: Any) -> Self: return replace(self, **kwargs) # }}} - def __len__(self): + def __len__(self) -> int: return len(self.get_coefficient_identifiers()) # }}} @@ -261,7 +263,7 @@ class ExpansionTermsWrangler(ABC): .. automethod:: get_full_kernel_derivatives_from_stored .. automethod:: get_stored_mpole_coefficients_from_full - .. automethod:: get_full_coefficient_identifiers + . automethod:: get_full_coefficient_identifiers """ order: int dim: int @@ -270,8 +272,8 @@ class ExpansionTermsWrangler(ABC): # {{{ abstract interface @abstractmethod - def get_coefficient_identifiers(self) -> list[tuple[int, ...]]: - pass + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: + ... @abstractmethod def get_full_kernel_derivatives_from_stored(self, @@ -279,7 +281,7 @@ def get_full_kernel_derivatives_from_stored(self, rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None ) -> Sequence[sym.Expr]: - pass + ... @abstractmethod def get_stored_mpole_coefficients_from_full(self, @@ -287,7 +289,7 @@ def get_stored_mpole_coefficients_from_full(self, rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, ) -> Sequence[sym.Expr]: - pass + ... # }}} @@ -308,7 +310,7 @@ def get_full_coefficient_identifiers(self) -> Sequence[MultiIndex]: return [mi for mi in res if all(mi[i] <= self.max_mi[i] for i in range(self.dim))] - def copy(self, **kwargs): + def copy(self, **kwargs: Any) -> Self: return replace(self, **kwargs) # {{{ hyperplane helpers @@ -334,7 +336,8 @@ def _get_mi_hyperplanes(self) -> list[tuple[int, int]]: @memoize_method def _split_coeffs_into_hyperplanes( - self) -> list[tuple[int, list[tuple[int, ...]]]]: + self + ) -> list[tuple[int, list[MultiIndex]]]: r""" This splits the coefficients into :math:`O(p)` disjoint sets so that for each set, all the identifiers have the form, @@ -360,10 +363,12 @@ def _split_coeffs_into_hyperplanes( ] """ hyperplanes = self._get_mi_hyperplanes() - res = [] - seen_mis = set() + + res: list[tuple[int, list[MultiIndex]]] = [] + seen_mis: set[MultiIndex] = set() + for d, const in hyperplanes: - coeffs_in_hyperplane = [] + coeffs_in_hyperplane: list[MultiIndex] = [] for mi in self.get_coefficient_identifiers(): # Check if the multi-index is in this hyperplane and # if it is not in any of the hyperplanes we saw before @@ -372,6 +377,7 @@ def _split_coeffs_into_hyperplanes( if mi[d] == const and mi not in seen_mis: coeffs_in_hyperplane.append(mi) seen_mis.add(mi) + res.append((d, coeffs_in_hyperplane)) return res @@ -380,7 +386,7 @@ def _split_coeffs_into_hyperplanes( class FullExpansionTermsWrangler(ExpansionTermsWrangler): - def get_storage_index(self, mi: MultiIndex, order: int | None = None): + def get_storage_index(self, mi: MultiIndex, order: int | None = None) -> int: if not order: order = sum(mi) if self.dim == 3: @@ -391,11 +397,17 @@ def get_storage_index(self, mi: MultiIndex, order: int | None = None): else: raise NotImplementedError - def get_coefficient_identifiers(self): + @override + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: return super().get_full_coefficient_identifiers() - def get_full_kernel_derivatives_from_stored(self, - stored_kernel_derivatives, rscale, sac=None): + @override + def get_full_kernel_derivatives_from_stored( + self, + stored_kernel_derivatives: Sequence[sym.Expr], + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: return stored_kernel_derivatives @override @@ -408,22 +420,24 @@ def get_stored_mpole_coefficients_from_full(self, full_mpole_coefficients, rscale, sac=sac) @memoize_method - def _get_mi_ordering_key_and_axis_permutation(self): + def _get_mi_ordering_key_and_axis_permutation( + self + ) -> tuple[Callable[[MultiIndex | DerivativeIdentifier], tuple[int, ...]], + Sequence[int]]: """ Returns a degree lexicographic order as a callable that can be used as a ``sort`` key on multi-indices and a permutation of the axis ordered from the slowest varying axis to the fastest varying axis of the multi-indices when sorted. """ - from sumpy.expansion.diff_op import DerivativeIdentifier + axis_permutation = list(reversed(range(self.dim))) - axis_permutation = list(reversed(list(range(self.dim)))) - - def mi_key(ident): + def mi_key(ident: MultiIndex | DerivativeIdentifier) -> tuple[int, ...]: if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 mi = ident.mi else: mi = ident + return (sum(mi), *list(reversed(mi))) return mi_key, axis_permutation @@ -432,6 +446,9 @@ def mi_key(ident): # {{{ sparse matrix-vector multiplication +LinearCombinationCoefficients: TypeAlias = "Sequence[Sequence[tuple[int, sym.Expr]]]" + + class CSEMatVecOperator: """ A class to facilitate a fast matrix vector multiplication with @@ -449,7 +466,7 @@ class CSEMatVecOperator: shape: tuple[int, int] - from_input_coeffs_by_row: Sequence[Sequence[tuple[int, sym.Expr]]] + from_input_coeffs_by_row: LinearCombinationCoefficients """Each element in the list represents a row of the matrix using a linear combination of values from the input vector. Each element has the form ``(index of input vector, coeff)``. @@ -457,17 +474,15 @@ class CSEMatVecOperator: Number of rows in the matrix represented is equal to the length of the `from_input_coeffs_by_row` list.""" - from_output_coeffs_by_row: Sequence[Sequence[tuple[int, sym.Expr]]] + from_output_coeffs_by_row: LinearCombinationCoefficients """Each element in the list represents a row of the matrix using a linear combination of values from the output vector. Each element has the form ``(index of output vector, coeff)``.""" def __init__(self, - from_input_coeffs_by_row: - Sequence[Sequence[tuple[int, sym.Expr]]], - from_output_coeffs_by_row: - Sequence[Sequence[tuple[int, sym.Expr]]], - shape: tuple[int, int]): + from_input_coeffs_by_row: LinearCombinationCoefficients, + from_output_coeffs_by_row: LinearCombinationCoefficients, + shape: tuple[int, int]) -> None: self.from_input_coeffs_by_row = from_input_coeffs_by_row self.from_output_coeffs_by_row = from_output_coeffs_by_row self.shape = shape @@ -479,7 +494,7 @@ def matvec(self, wrap_intermediate: Callable[[sym.Expr], sym.Expr] = lambda x: x - ): + ) -> Sequence[sym.Expr]: """ :arg inp: vector for the matrix vector multiplication @@ -488,14 +503,19 @@ def matvec(self, final expressions in the vector resulting in an expensive matvec. """ assert len(inp) == self.shape[1] + out: list[sym.Expr] = [] for i in range(self.shape[0]): value = sym.sympify(0) + for input_index, coeff in self.from_input_coeffs_by_row[i]: value += inp[input_index] * coeff + for output_index, coeff in self.from_output_coeffs_by_row[i]: value += out[output_index] * coeff + out.append(wrap_intermediate(value)) + return out def transpose_matvec(self, @@ -503,16 +523,20 @@ def transpose_matvec(self, wrap_intermediate: Callable[[sym.Expr], sym.Expr] = lambda x: x - ): + ) -> Sequence[sym.Expr]: assert len(inp) == self.shape[0] + res: list[sym.Expr] = [sym.sympify(0)]*self.shape[1] expr_all = list(inp) + for i in reversed(range(self.shape[0])): for output_index, coeff in self.from_output_coeffs_by_row[i]: expr_all[output_index] += expr_all[i] * coeff expr_all[output_index] = wrap_intermediate(expr_all[output_index]) + for input_index, coeff in self.from_input_coeffs_by_row[i]: res[input_index] += expr_all[i] * coeff + return res # }}} @@ -529,7 +553,7 @@ class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): knl: Kernel @override - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: return self.stored_identifiers @override @@ -557,7 +581,7 @@ def get_stored_mpole_coefficients_from_full(self, lambda x: add_to_sac(sac, x)) @property - def stored_identifiers(self): + def stored_identifiers(self) -> Sequence[MultiIndex]: stored_identifiers, _ = self.get_stored_ids_and_unscaled_projection_matrix() return stored_identifiers @@ -570,7 +594,10 @@ def stored_identifiers(self): # the axes so that the axis with the on-axis coefficient comes first in the # multi-index tuple. @memoize_method - def _get_mi_ordering_key_and_axis_permutation(self): + def _get_mi_ordering_key_and_axis_permutation( + self + ) -> tuple[Callable[[MultiIndex | DerivativeIdentifier], tuple[int, ...]], + Sequence[int]]: """ A degree lexicographic order with the slowest varying index depending on the PDE is used, returned as a callable that can be used as a @@ -597,14 +624,16 @@ def _get_mi_ordering_key_and_axis_permutation(self): from sumpy.expansion.diff_op import DerivativeIdentifier - def mi_key(ident): + def mi_key(ident: MultiIndex | DerivativeIdentifier) -> tuple[int, ...]: if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 mi = ident.mi else: mi = ident key = [sum(mi)] + for i in range(dim): key.append(mi[axis_permutation[i]]) + return tuple(key) return mi_key, axis_permutation @@ -633,12 +662,13 @@ def _get_mi_hyperplanes(self) -> list[tuple[int, int]]: return hyperplanes - def get_full_coefficient_identifiers(self): + @override + def get_full_coefficient_identifiers(self) -> Sequence[MultiIndex]: identifiers = super().get_full_coefficient_identifiers() key, _ = self._get_mi_ordering_key_and_axis_permutation() return sorted(identifiers, key=key) - def get_storage_index(self, mi, order=None): + def get_storage_index(self, mi: MultiIndex, order: int | None = None): if not order: order = sum(mi) @@ -684,13 +714,14 @@ def get_storage_index(self, mi, order=None): raise NotImplementedError @memoize_method - def get_stored_ids_and_unscaled_projection_matrix(self): + def get_stored_ids_and_unscaled_projection_matrix( + self + ) -> tuple[Sequence[MultiIndex], CSEMatVecOperator]: from pytools import ProcessLogger plog = ProcessLogger(logger, "compute PDE for Taylor coefficients") mis = self.get_full_coefficient_identifiers() - coeff_ident_enumerate_dict = {tuple(mi): i for - (i, mi) in enumerate(mis)} + coeff_ident_enumerate_dict = {tuple(mi): i for (i, mi) in enumerate(mis)} diff_op = self.knl.get_pde_as_diff_op() assert len(diff_op.eqs) == 1 @@ -700,13 +731,14 @@ def get_stored_ids_and_unscaled_projection_matrix(self): # Order of the expansion is less than the order of the PDE. # In that case, the compression matrix is the identity matrix # and there's nothing to project - from_input_coeffs_by_row = [ + from_input_coeffs_by_row: LinearCombinationCoefficients = [ [(i, sym.sympify(1))] for i in range(len(mis))] - from_output_coeffs_by_row = [[] for _ in range(len(mis))] + from_output_coeffs_by_row: LinearCombinationCoefficients = [ + [] for _ in range(len(mis))] + shape = (len(mis), len(mis)) op = CSEMatVecOperator(from_input_coeffs_by_row, from_output_coeffs_by_row, shape) - plog.done() return mis, op @@ -716,13 +748,13 @@ def get_stored_ids_and_unscaled_projection_matrix(self): max_mi_coeff = mi_to_coeff[max_mi] max_mi_mult = -1/sym.sympify(max_mi_coeff) - def is_stored(mi): + def is_stored(mi: MultiIndex) -> bool: """ A multi_index mi is not stored if mi >= max_mi """ return any(mi[d] < max_mi[d] for d in range(self.dim)) - stored_identifiers = [] + stored_identifiers: list[MultiIndex] = [] from_input_coeffs_by_row = [] from_output_coeffs_by_row = [] @@ -732,22 +764,24 @@ def is_stored(mi): if is_stored(mi): idx = len(stored_identifiers) stored_identifiers.append(mi) - from_input_coeffs_by_row.append([(idx, 1)]) + from_input_coeffs_by_row.append([(idx, sym.sympify(1))]) from_output_coeffs_by_row.append([]) continue diff = [mi[d] - max_mi[d] for d in range(self.dim)] # eg: u_xx + u_yy + u_zz is represented as # [((2, 0, 0), 1), ((0, 2, 0), 1), ((0, 0, 2), 1)] - assignment = [] + assignment: list[tuple[int, sym.Expr]] = [] for other_mi, coeff in mi_to_coeff.items(): j = coeff_ident_enumerate_dict[add_mi(other_mi, diff)] if i == j: # Skip the u_zz part here. continue + # PDE might not have max_mi_coeff = -1, divide by -max_mi_coeff # to get a relation of the form, u_zz = - u_xx - u_yy for Laplace 3D. assignment.append((j, coeff*max_mi_mult)) + from_input_coeffs_by_row.append([]) from_output_coeffs_by_row.append(assignment) @@ -763,7 +797,7 @@ def is_stored(mi): return stored_identifiers, op @memoize_method - def get_projection_matrix(self, rscale: sym.Expr): + def get_projection_matrix(self, rscale: sym.Expr) -> CSEMatVecOperator: r""" Return a :class:`CSEMatVecOperator` object which exposes a matrix vector multiplication operator for the projection matrix that expresses @@ -790,24 +824,23 @@ def get_projection_matrix(self, rscale: sym.Expr): c^{\text{local}}_{\text{full}} = M^T c^{\text{local}}_{\text{stored}}.\\ c^{\text{mpole}}_{\text{stored}} = M c^{\text{mpole}}_{\text{full}}. """ - _, projection_matrix = \ - self.get_stored_ids_and_unscaled_projection_matrix() + _, projection_matrix = self.get_stored_ids_and_unscaled_projection_matrix() full_coeffs = self.get_full_coefficient_identifiers() - projection_with_rscale = [] - for row, assignment in \ - enumerate(projection_matrix.from_output_coeffs_by_row): + projection_with_rscale: LinearCombinationCoefficients = [] + for row, assignment in enumerate(projection_matrix.from_output_coeffs_by_row): # For eg: (u_xxx / rscale**3) = (u_yy / rscale**2) * coeff1 + # (u_xx / rscale**2) * coeff2 # is converted to u_xxx = u_yy * (rscale * coeff1) + # u_xx * (rscale * coeff2) row_rscale = sum(full_coeffs[row]) - from_output_coeffs_with_rscale = [] + from_output_coeffs_with_rscale: Sequence[tuple[int, sym.Expr]] = [] for k, coeff in assignment: diff = row_rscale - sum(full_coeffs[k]) mult = rscale**diff from_output_coeffs_with_rscale.append((k, coeff * mult)) + projection_with_rscale.append(from_output_coeffs_with_rscale) shape = projection_matrix.shape @@ -824,8 +857,14 @@ class VolumeTaylorExpansionMixin(ExpansionBase, ABC): expansion_terms_wrangler_class: ClassVar[type[ExpansionTermsWrangler]] expansion_terms_wrangler_cache: ClassVar[dict[Hashable, Any]] = {} + @property + @abstractmethod + def expansion_terms_wrangler_key(self) -> tuple[Hashable, ...]: + ... + @classmethod - def get_or_make_expansion_terms_wrangler(cls, *key): + def get_or_make_expansion_terms_wrangler( + cls, *key: Hashable) -> ExpansionTermsWrangler: """ This stores the expansion terms wrangler at the class attribute level because recreating the expansion terms wrangler implicitly empties its @@ -840,28 +879,27 @@ def get_or_make_expansion_terms_wrangler(cls, *key): return wrangler @property - def expansion_terms_wrangler(self): + def expansion_terms_wrangler(self) -> ExpansionTermsWrangler: return self.get_or_make_expansion_terms_wrangler( *self.expansion_terms_wrangler_key) @override - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: """ Returns the identifiers of the coefficients that actually get stored. """ return self.expansion_terms_wrangler.get_coefficient_identifiers() - def get_full_coefficient_identifiers(self): + def get_full_coefficient_identifiers(self) -> Sequence[MultiIndex]: return self.expansion_terms_wrangler.get_full_coefficient_identifiers() @property @memoize_method - def _storage_loc_dict(self): - return {i: idx for idx, i in - enumerate(self.get_coefficient_identifiers())} + def _storage_loc_dict(self) -> dict[MultiIndex, int]: + return {i: idx for idx, i in enumerate(self.get_coefficient_identifiers())} @override - def get_storage_index(self, mi: MultiIndex): + def get_storage_index(self, mi: MultiIndex) -> int: return self._storage_loc_dict[mi] @@ -870,7 +908,8 @@ class VolumeTaylorExpansion(VolumeTaylorExpansionMixin, ABC): = FullExpansionTermsWrangler @property - def expansion_terms_wrangler_key(self): + @override + def expansion_terms_wrangler_key(self) -> tuple[Hashable, ...]: return (self.order, self.kernel.dim, None) @@ -879,7 +918,8 @@ class LinearPDEConformingVolumeTaylorExpansion(VolumeTaylorExpansionMixin, ABC): LinearPDEBasedExpansionTermsWrangler @property - def expansion_terms_wrangler_key(self): + @override + def expansion_terms_wrangler_key(self) -> tuple[Hashable, ...]: return (self.order, self.kernel.dim, None, self.kernel) # }}} @@ -945,7 +985,9 @@ class VolumeTaylorExpansionFactory(ExpansionFactoryBase): """ @override - def get_local_expansion_class(self, base_kernel: Kernel, /): + def get_local_expansion_class( + self, base_kernel: Kernel, / + ) -> type[LocalExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ @@ -953,7 +995,9 @@ def get_local_expansion_class(self, base_kernel: Kernel, /): return VolumeTaylorLocalExpansion @override - def get_multipole_expansion_class(self, base_kernel: Kernel, /): + def get_multipole_expansion_class( + self, base_kernel: Kernel, / + ) -> type[MultipoleExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 9f3dc2e28..0865423d3 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -27,7 +27,7 @@ import math from abc import ABC, abstractmethod from dataclasses import dataclass, field -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast from typing_extensions import override @@ -49,7 +49,7 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import MultiIndex - from sumpy.expansion.m2l import M2LTranslationBase + from sumpy.expansion.m2l import M2LTranslationBase, TranslationClassesDepData from sumpy.expansion.multipole import ( HankelBased2DMultipoleExpansion, MultipoleExpansionBase, @@ -60,13 +60,11 @@ logger = logging.getLogger(__name__) __doc__ = """ - .. autoclass:: LocalExpansionBase .. autoclass:: VolumeTaylorLocalExpansion .. autoclass:: H2DLocalExpansion .. autoclass:: Y2DLocalExpansion .. autoclass:: LineTaylorLocalExpansion - """ @@ -90,7 +88,8 @@ def translate_from(self, dvec: sym.Matrix, tgt_rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, - m2l_translation_classes_dependent_data=None + m2l_translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None ) -> Sequence[sym.Expr]: """Translate from a multipole or local expansion to a local expansion @@ -115,17 +114,17 @@ def translate_from(self, class LineTaylorLocalExpansion(LocalExpansionBase): @property @override - def m2l_translation(self): + def m2l_translation(self) -> M2LTranslationBase: # FIXME: Um... raise NotImplementedError() @override - def get_storage_index(self, mi: MultiIndex): + def get_storage_index(self, mi: MultiIndex) -> int: ind, = mi return ind @override - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: return [(i,) for i in range(self.order+1)] @override @@ -135,7 +134,7 @@ def coefficients_from_source(self, bvec: sym.Matrix | None, rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None - ): + ) -> Sequence[sym.Expr]: # no point in heeding rscale here--just ignore it if bvec is None: raise RuntimeError("cannot use line-Taylor expansions in a setting " @@ -144,15 +143,15 @@ def coefficients_from_source(self, tau = sym.Symbol("tau") - avec_line: sym.Matrix = avec + tau*bvec - + avec_line = cast("sym.Matrix", avec + tau*bvec) line_kernel = kernel.get_expression(avec_line) from sumpy.symbolic import USE_SYMENGINE if USE_SYMENGINE: from sumpy.derivative_taker import ExprDerivativeTaker - deriv_taker = ExprDerivativeTaker(line_kernel, (tau,), sac=sac, rscale=1) + deriv_taker = ExprDerivativeTaker(line_kernel, (tau,), sac=sac, + rscale=sym.sympify(1)) return [kernel.postprocess_at_source( deriv_taker.diff(i), avec).subs(tau, 0) @@ -165,12 +164,17 @@ def coefficients_from_source(self, # # See also https://gitlab.tiker.net/inducer/pytential/merge_requests/12 - return [kernel.postprocess_at_source( - line_kernel.diff(tau, i), avec) + return [kernel.postprocess_at_source(line_kernel.diff(tau, i), avec) .subs(tau, 0) for i, in self.get_coefficient_identifiers()] - def evaluate(self, tgt_kernel, coeffs, bvec, rscale, sac=None): + @override + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None) -> sym.Expr: # no point in heeding rscale here--just ignore it # NOTE: We can't meaningfully apply target derivatives here. @@ -187,7 +191,8 @@ def translate_from(self, dvec: sym.Matrix, tgt_rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, - m2l_translation_classes_dependent_data=None + m2l_translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None ) -> Sequence[sym.Expr]: raise NotImplementedError @@ -197,7 +202,8 @@ def translate_from(self, # {{{ volume taylor @dataclass(frozen=True) -class VolumeTaylorLocalExpansionBase(VolumeTaylorExpansionMixin, LocalExpansionBase): +class VolumeTaylorLocalExpansionBase(VolumeTaylorExpansionMixin, + LocalExpansionBase, ABC): """ Coefficients represent derivative values of the kernel. """ @@ -213,8 +219,7 @@ def m2l_translation(self) -> M2LTranslationBase: else: from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory factory = DefaultM2LTranslationClassFactory() - return factory.get_m2l_translation_class(self.kernel, - self.__class__)() + return factory.get_m2l_translation_class(self.kernel, self.__class__)() @override def coefficients_from_source_vec(self, @@ -250,13 +255,13 @@ def coefficients_from_source_vec(self, taker = knl.postprocess_at_source(base_taker, avec) # Following is a hack to make sure cse works. if 1: - def save_temp(x): + def save_temp(x: sym.Expr) -> sym.Expr: return add_to_sac(sac, weight * x) # noqa: B023 for i, mi in enumerate(self.get_coefficient_identifiers()): result[i] += taker.diff(mi, save_temp) else: - def save_temp(x): + def save_temp(x: sym.Expr) -> sym.Expr: return add_to_sac(sac, x) for i, mi in enumerate(self.get_coefficient_identifiers()): @@ -289,7 +294,7 @@ def evaluate(self, self.expansion_terms_wrangler.get_full_kernel_derivatives_from_stored( coeffs, rscale, sac=sac)) - bvec_scaled = [b*rscale**-1 for b in bvec] + bvec_scaled = [cast("sym.Expr", b*rscale**-1) for b in bvec] from sumpy.tools import mi_factorial, mi_power result = sym.sympify(sum( @@ -310,7 +315,8 @@ def translate_from(self, dvec: sym.Matrix, tgt_rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, - m2l_translation_classes_dependent_data=None, + m2l_translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None, _fast_version: bool = True, ) -> Sequence[sym.Expr]: logger.info("building translation operator for %s: %s(%d) -> %s(%d): start", From 046618c117e419ef6879791069b14847b6b213cb Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:15:47 +0200 Subject: [PATCH 228/335] feat(typing): add cast to I to avoid warning --- sumpy/symbolic.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 288ff9e4a..00dd741ae 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -39,7 +39,7 @@ import logging import math -from typing import TYPE_CHECKING, ClassVar +from typing import TYPE_CHECKING, ClassVar, cast from typing_extensions import override @@ -132,8 +132,8 @@ def _find_symbolic_backend(): Rational = sym.Rational Matrix = sym.Matrix Subs = sym.Subs -I = sym.I # noqa: E741 -pi = sym.pi +I = cast("Expr", sym.I) # noqa: E741 +pi = cast("Expr", sym.pi) functions = sym.functions Number = sym.Number Float = sym.Float From e7124e046e2524cec948bee71315563ecf236496 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:16:25 +0200 Subject: [PATCH 229/335] feat(typing): add types to M2LTranslationClassFactoryBase --- sumpy/expansion/m2l.py | 49 ++++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 4f4ade6ae..9eb1293a1 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -59,6 +59,7 @@ MultipoleExpansionBase, VolumeTaylorMultipoleExpansion, ) + from sumpy.kernel import Kernel logger = logging.getLogger(__name__) @@ -85,9 +86,14 @@ class M2LTranslationClassFactoryBase(ABC): """ @abstractmethod - def get_m2l_translation_class(self, base_kernel, local_expansion_class): - """Returns a subclass of :class:`M2LTranslationBase` suitable for - *base_kernel* and *local_expansion_class*. + def get_m2l_translation_class( + self, + base_kernel: Kernel, + local_expansion_class: type[LocalExpansionBase] + ) -> type[M2LTranslationBase]: + """ + :returns: a subclass of :class:`M2LTranslationBase` suitable for + *base_kernel* and *local_expansion_class*. """ @@ -96,10 +102,12 @@ class NonFFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): non FFT M2L translation class. """ - def get_m2l_translation_class(self, base_kernel, local_expansion_class): - """Returns a subclass of :class:`M2LTranslationBase` suitable for - *base_kernel* and *local_expansion_class*. - """ + @override + def get_m2l_translation_class( + self, + base_kernel: Kernel, + local_expansion_class: type[LocalExpansionBase] + ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, @@ -110,7 +118,7 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): return FourierBesselM2LTranslation else: raise RuntimeError( - f"Unknown local_expansion_class: {local_expansion_class}") + f"unknown local_expansion_class: {local_expansion_class}") class FFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): @@ -118,10 +126,12 @@ class FFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): FFT M2L translation class. """ - def get_m2l_translation_class(self, base_kernel, local_expansion_class): - """Returns a subclass of :class:`M2LTranslationBase` suitable for - *base_kernel* and *local_expansion_class*. - """ + @override + def get_m2l_translation_class( + self, + base_kernel: Kernel, + local_expansion_class: type[LocalExpansionBase] + ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, @@ -132,13 +142,20 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): return FourierBesselM2LWithFFT else: raise RuntimeError( - f"Unknown local_expansion_class: {local_expansion_class}") + f"unknown local_expansion_class: {local_expansion_class}") class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): """An implementation of :class:`M2LTranslationClassFactoryBase` that gives the - 'best known' translation type for each kernel and local expansion class""" - def get_m2l_translation_class(self, base_kernel, local_expansion_class): + 'best known' translation type for each kernel and local expansion class. + """ + + @override + def get_m2l_translation_class( + self, + base_kernel: Kernel, + local_expansion_class: type[LocalExpansionBase] + ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( FourierBesselLocalExpansionMixin, VolumeTaylorLocalExpansionBase, @@ -149,7 +166,7 @@ def get_m2l_translation_class(self, base_kernel, local_expansion_class): return FourierBesselM2LTranslation else: raise RuntimeError( - f"Unknown local_expansion_class: {local_expansion_class}") + f"unknown local_expansion_class: {local_expansion_class}") # }}} From e7fe7922e05cc73dd391d6253046eb07b6471dc6 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:16:47 +0200 Subject: [PATCH 230/335] feat(typing): improve types in expansion.local --- sumpy/expansion/local.py | 139 ++++++++++++++++++++++++--------------- 1 file changed, 85 insertions(+), 54 deletions(-) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 0865423d3..afeaaceb4 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -47,6 +47,8 @@ if TYPE_CHECKING: from collections.abc import Sequence + import loopy as lp + from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import MultiIndex from sumpy.expansion.m2l import M2LTranslationBase, TranslationClassesDepData @@ -111,7 +113,7 @@ def translate_from(self, # {{{ line taylor -class LineTaylorLocalExpansion(LocalExpansionBase): +class LineTaylorLocalExpansion(LocalExpansionBase, ABC): @property @override def m2l_translation(self) -> M2LTranslationBase: @@ -142,7 +144,6 @@ def coefficients_from_source(self, "formation") tau = sym.Symbol("tau") - avec_line = cast("sym.Matrix", avec + tau*bvec) line_kernel = kernel.get_expression(avec_line) @@ -153,8 +154,8 @@ def coefficients_from_source(self, deriv_taker = ExprDerivativeTaker(line_kernel, (tau,), sac=sac, rscale=sym.sympify(1)) - return [kernel.postprocess_at_source( - deriv_taker.diff(i), avec).subs(tau, 0) + return [kernel.postprocess_at_source(deriv_taker.diff(i), avec) + .subs(tau, 0) for i in self.get_coefficient_identifiers()] else: # Workaround for sympy. The automatic distribution after @@ -335,12 +336,12 @@ def translate_from(self, # {{{ M2L if isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase): - result = self.m2l_translation.translate(self, src_expansion, + m2l_result = self.m2l_translation.translate(self, src_expansion, src_coeff_exprs, src_rscale, dvec, tgt_rscale, sac, m2l_translation_classes_dependent_data) logger.info("building translation operator: done") - return result + return m2l_result # }}} @@ -349,25 +350,26 @@ def translate_from(self, # {{{ L2L # not coming from a Taylor multipole: expand via derivatives + # FIXME: this shouldn't need to be sympified, but many places still + # pass in floats. removing it fails `test_m2m_and_l2l_exprs_simpler` rscale_ratio = add_to_sac(sac, sym.sympify(tgt_rscale/src_rscale)) src_wrangler = src_expansion.expansion_terms_wrangler src_coeffs = ( src_wrangler.get_full_kernel_derivatives_from_stored( src_coeff_exprs, src_rscale, sac=sac)) + src_mis = \ src_expansion.expansion_terms_wrangler.get_full_coefficient_identifiers() - src_mi_to_index = {mi: i for i, mi in enumerate(src_mis)} - tgt_mis = \ - self.expansion_terms_wrangler.get_coefficient_identifiers() + tgt_mis = self.expansion_terms_wrangler.get_coefficient_identifiers() tgt_mi_to_index = {mi: i for i, mi in enumerate(tgt_mis)} tgt_split = self.expansion_terms_wrangler._split_coeffs_into_hyperplanes() p = max(sum(mi) for mi in src_mis) - result = [0] * len(tgt_mis) + result: list[sym.Expr] = [sym.sympify(0)] * len(tgt_mis) # Local expansion around the old center gives us that, # @@ -423,11 +425,15 @@ def translate_from(self, # Use the axis as the first dimension to vary so that the below # algorithm is O(p^{d+1}) for full and O(p^{d}) for compressed dims = [axis, *list(range(axis)), *list(range(axis + 1, self.dim))] + # Start with source coefficients. Gets updated after each axis. - cur_dim_input_coeffs = src_coeffs + cur_dim_input_coeffs = list(src_coeffs) + cur_dim_output_coeffs: list[sym.Expr] = [sym.sympify(-1)] * len(src_mis) + # O(1) iterations for d in dims: - cur_dim_output_coeffs: list[sym.Expr] = [sym.sympify(0)] * len(src_mis) + cur_dim_output_coeffs = [sym.sympify(0)] * len(src_mis) + # Only O(p^{d-1}) operations are used in compressed # O(p^d) operations are used in full for out_i, out_mi in enumerate(src_mis): @@ -435,9 +441,13 @@ def translate_from(self, for q in range(p+1-sum(out_mi)): src_mi = mi_increment_axis(out_mi, d, q) if src_mi in src_mi_to_index: - cur_dim_output_coeffs[out_i] += (dvec[d]/src_rscale)**q \ - * cur_dim_input_coeffs[src_mi_to_index[src_mi]] \ - / math.factorial(q) + dvec_d = cast("sym.Expr", dvec[d]) + + cur_dim_output_coeffs[out_i] += ( + (dvec_d/src_rscale)**q + * cur_dim_input_coeffs[src_mi_to_index[src_mi]] + / math.factorial(q)) + # Y at the end of the iteration becomes the source coefficients # for the next iteration cur_dim_input_coeffs = cur_dim_output_coeffs @@ -446,14 +456,15 @@ def translate_from(self, # In L2L, source level usually has same or higher order than target # level. If not, extra coeffs in target level are zero filled. if mi not in src_mi_to_index: - result[tgt_mi_to_index[mi]] = 0 + result[tgt_mi_to_index[mi]] = sym.sympify(0) else: # Add to result after scaling - result[tgt_mi_to_index[mi]] += \ - cur_dim_output_coeffs[src_mi_to_index[mi]] \ - * rscale_ratio ** sum(mi) + result[tgt_mi_to_index[mi]] += ( + cur_dim_output_coeffs[src_mi_to_index[mi]] + * rscale_ratio ** sum(mi)) # {{{ simpler, functionally equivalent code + if not _fast_version: # Rscale/operand magnitude is fairly sensitive to the order of # operations--which is something we don't have fantastic control @@ -463,27 +474,32 @@ def translate_from(self, # This moves the two cancelling "rscales" closer to each other at # the end in the hope of helping rscale magnitude. from sumpy.derivative_taker import ExprDerivativeTaker - dvec_scaled = [d*src_rscale for d in dvec] + + dvec_scaled = sym.Matrix([d*src_rscale for d in dvec]) expr = src_expansion.evaluate(src_expansion.kernel, src_coeff_exprs, dvec_scaled, rscale=src_rscale, sac=sac) + replace_dict = {d: d/src_rscale for d in dvec} taker = ExprDerivativeTaker(expr, dvec) rscale_ratio = sym.UnevaluatedExpr(tgt_rscale/src_rscale) + result = [ (taker.diff(mi).xreplace(replace_dict) * rscale_ratio**sum(mi)) for mi in self.get_coefficient_identifiers()] + # }}} + logger.info("building translation operator: done") return result - def loopy_translate_from(self, src_expansion): + def loopy_translate_from(self, src_expansion: ExpansionBase) -> lp.TranslationUnit: from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansionBase if isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase): return self.m2l_translation.loopy_translate(self, src_expansion) raise NotImplementedError( - f"A direct loopy kernel for translation from " + f"a direct loopy kernel for translation from " f"{src_expansion} to {self} is not implemented.") @@ -506,8 +522,8 @@ class LinearPDEConformingVolumeTaylorLocalExpansion( @dataclass(frozen=True) class FourierBesselLocalExpansionMixin(LocalExpansionBase, ABC): - m2l_translation_override: M2LTranslationBase | None = field( - kw_only=True, default=None) + m2l_translation_override: M2LTranslationBase | None = ( + field(kw_only=True, default=None)) @property @abstractmethod @@ -521,25 +537,21 @@ def m2l_translation(self) -> M2LTranslationBase: return self.m2l_translation_override else: from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory + factory = DefaultM2LTranslationClassFactory() - return ( - factory.get_m2l_translation_class(self.kernel, self.__class__)()) - from sumpy.expansion.m2l import DefaultM2LTranslationClassFactory - factory = DefaultM2LTranslationClassFactory() - return factory.get_m2l_translation_class(self.kernel, - self.__class__)() + return factory.get_m2l_translation_class(self.kernel, self.__class__)() @abstractmethod - def get_bessel_arg_scaling(self): - pass + def get_bessel_arg_scaling(self) -> sym.Expr: + ... @override - def get_storage_index(self, mi: MultiIndex): + def get_storage_index(self, mi: MultiIndex) -> int: ind, = mi return self.order+ind @override - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: return [(i,) for i in range(-self.order, self.order+1)] @override @@ -598,7 +610,8 @@ def translate_from(self, dvec: sym.Matrix, tgt_rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, - m2l_translation_classes_dependent_data=None + m2l_translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None ) -> Sequence[sym.Expr]: from sumpy.symbolic import BesselJ, sym_real_norm_2 @@ -611,16 +624,18 @@ def translate_from(self, if isinstance(src_expansion, type(self)): dvec_len = sym_real_norm_2(dvec) new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) - translated_coeffs = [] + translated_coeffs: list[sym.Expr] = [] for j, in self.get_coefficient_identifiers(): translated_coeffs.append( - sum(src_coeff_exprs[src_expansion.get_storage_index((m,))] - * BesselJ(m - j, arg_scale * dvec_len, 0) - / src_rscale ** abs(m) - * tgt_rscale ** abs(j) - * sym.exp(sym.I * (m - j) * -new_center_angle_rel_old_center) - for m, in src_expansion.get_coefficient_identifiers())) + sum((src_coeff_exprs[src_expansion.get_storage_index((m,))] + * BesselJ(m - j, arg_scale * dvec_len, 0) + / src_rscale ** abs(m) + * tgt_rscale ** abs(j) + * sym.exp(sym.I * (m - j) * -new_center_angle_rel_old_center) + for m, in src_expansion.get_coefficient_identifiers()), + sym.sympify(0))) + return translated_coeffs if isinstance(src_expansion, self.mpole_expn_class): @@ -632,20 +647,24 @@ def translate_from(self, "do not know how to translate " f"{type(src_expansion).__name__} to {type(self).__name__}") - def loopy_translate_from(self, src_expansion): + def loopy_translate_from(self, src_expansion: ExpansionBase) -> lp.TranslationUnit: if isinstance(src_expansion, self.mpole_expn_class): return self.m2l_translation.loopy_translate(self, src_expansion) raise NotImplementedError( - f"A direct loopy kernel for translation from " + f"a direct loopy kernel for translation from " f"{src_expansion} to {self} is not implemented.") class H2DLocalExpansion(FourierBesselLocalExpansionMixin): - def __post_init__(self): + def __post_init__(self) -> None: from sumpy.kernel import HelmholtzKernel - assert (isinstance(self.kernel.get_base_kernel(), HelmholtzKernel) - and self.kernel.dim == 2) + + kernel = self.kernel.get_base_kernel() + if not (isinstance(kernel, HelmholtzKernel) and kernel.dim == 2): + raise TypeError( + f"{type(self).__name__} can only be applied to 2D HelmholtzKernel: " + f"{kernel!r}") @property @override @@ -653,15 +672,23 @@ def mpole_expn_class(self) -> type[HankelBased2DMultipoleExpansion]: return H2DMultipoleExpansion @override - def get_bessel_arg_scaling(self): - return sym.Symbol(self.kernel.get_base_kernel().helmholtz_k_name) + def get_bessel_arg_scaling(self) -> sym.Expr: + from sumpy.kernel import HelmholtzKernel + kernel = self.kernel.get_base_kernel() + assert isinstance(kernel, HelmholtzKernel) + + return sym.Symbol(kernel.helmholtz_k_name) class Y2DLocalExpansion(FourierBesselLocalExpansionMixin): - def __post_init__(self): + def __post_init__(self) -> None: from sumpy.kernel import YukawaKernel - assert (isinstance(self.kernel.get_base_kernel(), YukawaKernel) - and self.kernel.dim == 2) + + kernel = self.kernel.get_base_kernel() + if not (isinstance(kernel, YukawaKernel) and kernel.dim == 2): + raise TypeError( + f"{type(self).__name__} can only be applied to 2D YukawaKernel: " + f"{kernel!r}") @property @override @@ -669,8 +696,12 @@ def mpole_expn_class(self) -> type[HankelBased2DMultipoleExpansion]: return Y2DMultipoleExpansion @override - def get_bessel_arg_scaling(self): - return sym.I * sym.Symbol(self.kernel.get_base_kernel().yukawa_lambda_name) + def get_bessel_arg_scaling(self) -> sym.Expr: + from sumpy.kernel import YukawaKernel + kernel = self.kernel.get_base_kernel() + assert isinstance(kernel, YukawaKernel) + + return sym.I * sym.Symbol(kernel.yukawa_lambda_name) # }}} From f32b528efdb21cd6370611ecb351fe7655748429 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:16:56 +0200 Subject: [PATCH 231/335] feat(typing): improve types in expansion.multipole --- sumpy/expansion/multipole.py | 234 ++++++++++++++++++++++------------- 1 file changed, 149 insertions(+), 85 deletions(-) diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index e2761c2fd..197e076e4 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -67,8 +67,9 @@ class MultipoleExpansionBase(ExpansionBase, ABC): # {{{ volume taylor -class VolumeTaylorMultipoleExpansionBase( - VolumeTaylorExpansionMixin, MultipoleExpansionBase): +class VolumeTaylorMultipoleExpansionBase(VolumeTaylorExpansionMixin, + MultipoleExpansionBase, + ABC): """ Coefficients represent the terms in front of the kernel derivatives. """ @@ -91,27 +92,40 @@ def coefficients_from_source_vec(self, if not self.use_rscale: rscale = sym.sympify(1) - result: list[sym.Expr] = \ - [sym.sympify(0)]*len(self.get_full_coefficient_identifiers()) + mis = self.get_full_coefficient_identifiers() + n = len(mis) + + result: list[sym.Expr] = [sym.sympify(0)] * n for kernel, weight in zip(kernels, weights, strict=True): if isinstance(kernel, KernelWrapper): coeffs = [ kernel.postprocess_at_source(mi_power(avec, mi), avec) / rscale ** sum(mi) - for mi in self.get_full_coefficient_identifiers()] + for mi in mis] else: avec_scaled = [sym.UnevaluatedExpr(a * rscale**-1) for a in avec] - coeffs = [mi_power(avec_scaled, mi) - for mi in self.get_full_coefficient_identifiers()] + coeffs = [mi_power(avec_scaled, mi) for mi in mis] - for i, mi in enumerate(self.get_full_coefficient_identifiers()): + for i, mi in enumerate(mis): result[i] += coeffs[i] * weight / mi_factorial(mi) + return ( - self.expansion_terms_wrangler.get_stored_mpole_coefficients_from_full( - result, rscale, sac=sac)) + self.expansion_terms_wrangler + .get_stored_mpole_coefficients_from_full(result, rscale, sac=sac)) - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): - return self.coefficients_from_source_vec((kernel,), avec, bvec, + @override + def coefficients_from_source( + self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: + return self.coefficients_from_source_vec( + (kernel,), + avec, + bvec, rscale, (sym.sympify(1),), sac=sac) @override @@ -122,24 +136,25 @@ def evaluate(self, rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, ) -> sym.Expr: - from sumpy.derivative_taker import DifferentiatedExprDerivativeTaker if not self.use_rscale: rscale = sym.sympify(1) base_taker = kernel.get_derivative_taker(bvec, rscale, sac) + # Following is a no-op, but AxisTargetDerivative.postprocess_at_target # only handles DifferentiatedExprDerivativeTaker and sympy expressions, # so we need to make the taker a DifferentitatedExprDerivativeTaker instance. - base_taker = DifferentiatedExprDerivativeTaker(base_taker, - {tuple([0]*self.dim): 1}) + from sumpy.derivative_taker import DifferentiatedExprDerivativeTaker + base_taker = DifferentiatedExprDerivativeTaker( + base_taker, + {(0,)*self.dim: 1}) taker = kernel.postprocess_at_target(base_taker, bvec) - result = [] + result: list[sym.Expr] = [] for coeff, mi in zip(coeffs, self.get_coefficient_identifiers(), strict=True): result.append(coeff * taker.diff(mi, lambda x: add_to_sac(sac, x))) - result = sym.Add(*tuple(result)) - return result + return sym.Add(*tuple(result)) def translate_from(self, src_expansion: MultipoleExpansionBase, @@ -168,11 +183,12 @@ def translate_from(self, type(self).__name__, self.order) - src_mi_to_index = {mi: i for i, mi in enumerate( - src_expansion.get_coefficient_identifiers())} - - tgt_mi_to_index = {mi: i for i, mi in enumerate( - self.get_full_coefficient_identifiers())} + src_mi_to_index = { + mi: i for i, mi in enumerate(src_expansion.get_coefficient_identifiers()) + } + tgt_mi_to_index = { + mi: i for i, mi in enumerate(self.get_full_coefficient_identifiers()) + } # This algorithm uses the observation that M2M coefficients # have the following form in 2D @@ -269,20 +285,22 @@ def translate_from(self, # the output from (n, 0) with the first dimension as the fastest # varying dimension. - tgt_hyperplanes = \ - self.expansion_terms_wrangler._split_coeffs_into_hyperplanes() - result: list[sym.Expr] = \ - [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) + tgt_hyperplanes = ( + self.expansion_terms_wrangler._split_coeffs_into_hyperplanes()) + + tgt_mis = self.get_full_coefficient_identifiers() + n_tgt_mis = len(tgt_mis) # axis morally iterates over 'hyperplane directions' + result: list[sym.Expr] = [sym.sympify(0)] * n_tgt_mis for axis in range(self.dim): # {{{ index gymnastics # First, let's write source coefficients in target coefficient # indices. If target order is lower than source order, then # we will discard higher order terms from source coefficients. - cur_dim_input_coeffs: list[sym.Expr] = \ - [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) + cur_dim_input_coeffs: list[sym.Expr] = [sym.sympify(0)] * n_tgt_mis + for d, mis in tgt_hyperplanes: # Only consider hyperplanes perpendicular to *axis*. if d != axis: @@ -295,8 +313,9 @@ def translate_from(self, src_idx = src_mi_to_index[mi] tgt_idx = tgt_mi_to_index[mi] - cur_dim_input_coeffs[tgt_idx] = src_coeff_exprs[src_idx] * \ - sym.UnevaluatedExpr(src_rscale/tgt_rscale)**sum(mi) + cur_dim_input_coeffs[tgt_idx] = ( + src_coeff_exprs[src_idx] + * sym.UnevaluatedExpr(src_rscale/tgt_rscale)**sum(mi)) if all(coeff == 0 for coeff in cur_dim_input_coeffs): continue @@ -307,53 +326,53 @@ def translate_from(self, # As explained above using the unicode art, we use the orthogonal axis # as the last dimension to vary to reduce the number of operations. - dims = list(range(axis)) + \ - list(range(axis+1, self.dim)) + [axis] + dims = [*range(axis), *range(axis + 1, self.dim), axis] # d is the axis along which we translate. + cur_dim_output_coeffs = cur_dim_input_coeffs for d in dims: # We build the full target multipole and then compress it # at the very end. - cur_dim_output_coeffs: list[sym.Expr] = \ - [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) - for i, tgt_mi in enumerate( - self.get_full_coefficient_identifiers()): + cur_dim_output_coeffs: list[sym.Expr] = [sym.sympify(0)] * n_tgt_mis + for i, tgt_mi in enumerate(tgt_mis): # Calling this input_mis instead of src_mis because we # converted the source coefficients to target coefficient # indices beforehand. - for mi_i in range(tgt_mi[d]+1): + for mi_i in range(tgt_mi[d] + 1): input_mi = mi_set_axis(tgt_mi, d, mi_i) contrib = cur_dim_input_coeffs[tgt_mi_to_index[input_mi]] + for n, k, dist in zip(tgt_mi, input_mi, dvec, strict=True): assert n >= k - contrib /= math.factorial(n-k) - contrib *= \ - sym.UnevaluatedExpr(dist/tgt_rscale)**(n-k) + contrib /= math.factorial(n - k) + contrib *= sym.UnevaluatedExpr(dist/tgt_rscale)**(n-k) cur_dim_output_coeffs[i] += contrib + # cur_dim_output_coeffs is the input in the next iteration cur_dim_input_coeffs = cur_dim_output_coeffs # }}} - for i in range(len(cur_dim_output_coeffs)): + for i in range(n_tgt_mis): result[i] += cur_dim_output_coeffs[i] # {{{ simpler, functionally equivalent code + if not _fast_version: - src_mi_to_index = {mi: i for i, mi in enumerate( - src_expansion.get_coefficient_identifiers())} - result = [sym.sympify(0)] * len(self.get_full_coefficient_identifiers()) + src_mi_to_index = { + mi: i + for i, mi in enumerate(src_expansion.get_coefficient_identifiers()) + } + result = [sym.sympify(0)] * n_tgt_mis for i, mi in enumerate(src_expansion.get_coefficient_identifiers()): src_coeff_exprs[i] *= mi_factorial(mi) from pytools import generate_nonnegative_integer_tuples_below as gnitb - for i, tgt_mi in enumerate( - self.get_full_coefficient_identifiers()): - + for i, tgt_mi in enumerate(tgt_mis): tgt_mi_plus_one = tuple(mi_i + 1 for mi_i in tgt_mi) for src_mi in gnitb(tgt_mi_plus_one): @@ -369,14 +388,17 @@ def translate_from(self, n = tgt_mi[idim] k = src_mi[idim] assert n >= k - from sympy import binomial - contrib *= (binomial(n, k) - * sym.UnevaluatedExpr(dvec[idim]/tgt_rscale)**(n-k)) - result[i] += (contrib + contrib *= ( + math.comb(n, k) + * sym.UnevaluatedExpr(dvec[idim]/tgt_rscale)**(n-k)) + + result[i] += ( + contrib * sym.UnevaluatedExpr(src_rscale/tgt_rscale)**sum(src_mi)) result[i] /= mi_factorial(tgt_mi) + # }}} logger.info("building translation operator: done") @@ -403,21 +425,29 @@ class LinearPDEConformingVolumeTaylorMultipoleExpansion( class HankelBased2DMultipoleExpansion(MultipoleExpansionBase, ABC): @abstractmethod - def get_bessel_arg_scaling(self): - return + def get_bessel_arg_scaling(self) -> sym.Expr: + ... @override - def get_storage_index(self, mi: MultiIndex): + def get_storage_index(self, mi: MultiIndex) -> int: ind, = mi return self.order+ind @override - def get_coefficient_identifiers(self): + def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: return [(i,) for i in range(-self.order, self.order+1)] - def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): + @override + def coefficients_from_source( + self, + kernel: Kernel, + avec: sym.Matrix, + bvec: sym.Matrix | None, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) if kernel is None: kernel = self.kernel @@ -437,9 +467,16 @@ def coefficients_from_source(self, kernel, avec, bvec, rscale, sac=None): avec) for c, in self.get_coefficient_identifiers()] - def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): + @override + def evaluate(self, + kernel: Kernel, + coeffs: Sequence[sym.Expr], + bvec: sym.Matrix, + rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> sym.Expr: if not self.use_rscale: - rscale = 1 + rscale = sym.sympify(1) from sumpy.symbolic import Hankel1, sym_real_norm_2 bvec_len = sym_real_norm_2(bvec) @@ -447,23 +484,30 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None): arg_scale = self.get_bessel_arg_scaling() - return sum(coeffs[self.get_storage_index((c,))] - * kernel.postprocess_at_target( - Hankel1(c, arg_scale * bvec_len, 0) - * rscale ** abs(c) - * sym.exp(sym.I * c * target_angle_rel_center), bvec) - for c, in self.get_coefficient_identifiers()) + return sum((coeffs[self.get_storage_index((c,))] + * kernel.postprocess_at_target( + Hankel1(c, arg_scale * bvec_len, 0) + * rscale ** abs(c) + * sym.exp(sym.I * c * target_angle_rel_center), bvec) + for c, in self.get_coefficient_identifiers()), + sym.sympify(0)) - def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None): + def translate_from(self, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None + ) -> Sequence[sym.Expr]: if not isinstance(src_expansion, type(self)): raise RuntimeError( "do not know how to translate " f"{type(src_expansion).__name__} to {type(self).__name__}") if not self.use_rscale: - src_rscale = 1 - tgt_rscale = 1 + src_rscale = sym.sympify(1) + tgt_rscale = sym.sympify(1) from sumpy.symbolic import BesselJ, sym_real_norm_2 dvec_len = sym_real_norm_2(dvec) @@ -471,36 +515,56 @@ def translate_from(self, src_expansion, src_coeff_exprs, src_rscale, arg_scale = self.get_bessel_arg_scaling() - translated_coeffs = [] + translated_coeffs: list[sym.Expr] = [] for j, in self.get_coefficient_identifiers(): translated_coeffs.append( - sum(src_coeff_exprs[src_expansion.get_storage_index((m,))] - * BesselJ(m - j, arg_scale * dvec_len, 0) - * src_rscale ** abs(m) - / tgt_rscale ** abs(j) - * sym.exp(sym.I * (m - j) * new_center_angle_rel_old_center) - for m, in src_expansion.get_coefficient_identifiers())) + sum((src_coeff_exprs[src_expansion.get_storage_index((m,))] + * BesselJ(m - j, arg_scale * dvec_len, 0) + * src_rscale ** abs(m) + / tgt_rscale ** abs(j) + * sym.exp(sym.I * (m - j) * new_center_angle_rel_old_center) + for m, in src_expansion.get_coefficient_identifiers()), + sym.sympify(0))) + return translated_coeffs class H2DMultipoleExpansion(HankelBased2DMultipoleExpansion): def __post_init__(self): from sumpy.kernel import HelmholtzKernel - assert (isinstance(self.kernel.get_base_kernel(), HelmholtzKernel) - and self.kernel.dim == 2) - def get_bessel_arg_scaling(self): - return sym.Symbol(self.kernel.get_base_kernel().helmholtz_k_name) + kernel = self.kernel.get_base_kernel() + if not (isinstance(kernel, HelmholtzKernel) and kernel.dim == 2): + raise TypeError( + f"{type(self).__name__} can only be applied to 2D HelmholtzKernel: " + f"{kernel!r}") + + @override + def get_bessel_arg_scaling(self) -> sym.Expr: + from sumpy.kernel import HelmholtzKernel + kernel = self.kernel.get_base_kernel() + assert isinstance(kernel, HelmholtzKernel) + + return sym.Symbol(kernel.helmholtz_k_name) class Y2DMultipoleExpansion(HankelBased2DMultipoleExpansion): def __post_init__(self): from sumpy.kernel import YukawaKernel - assert (isinstance(self.kernel.get_base_kernel(), YukawaKernel) - and self.kernel.dim == 2) - def get_bessel_arg_scaling(self): - return sym.I * sym.Symbol(self.kernel.get_base_kernel().yukawa_lambda_name) + kernel = self.kernel.get_base_kernel() + if not (isinstance(kernel, YukawaKernel) and kernel.dim == 2): + raise TypeError( + f"{type(self).__name__} can only be applied to 2D YukawaKernel: " + f"{kernel!r}") + + @override + def get_bessel_arg_scaling(self) -> sym.Expr: + from sumpy.kernel import YukawaKernel + kernel = self.kernel.get_base_kernel() + assert isinstance(kernel, YukawaKernel) + + return sym.I * sym.Symbol(kernel.yukawa_lambda_name) # }}} From 2ba17f6d8e7e1ea79094c75befb8e770120825a6 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 16:27:04 +0200 Subject: [PATCH 232/335] feat: do not take assignments in BesselSubstitutor --- sumpy/codegen.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 3164f38f6..e3e071a62 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -365,18 +365,17 @@ def map_common_subexpression_uncached( class BesselSubstitutor(CSECachingIdentityMapper[P]): name_gen: Callable[[str], str] bessel_j_arg_to_top_order: dict[Expression, int] - assignments: list[Assignment | CallInstruction] + assignments: list[Assignment | CallInstruction] cse_cache: dict[Expression, prim.CommonSubexpression] def __init__(self, name_gen: Callable[[str], str], - bessel_j_arg_to_top_order: dict[Expression, int], - assignments: Sequence[Assignment | CallInstruction]) -> None: + bessel_j_arg_to_top_order: dict[Expression, int]) -> None: self.name_gen = name_gen self.bessel_j_arg_to_top_order = bessel_j_arg_to_top_order self.cse_cache = {} - self.assignments = list(assignments) + self.assignments = [] @override def map_call(self, expr: prim.Call, /, @@ -809,20 +808,19 @@ def convert_expr(name: str, expr: Expression) -> Expression: from pytools import UniqueNameGenerator name_gen = UniqueNameGenerator({name for name, _expr in pymbolic_assignments}) - result: list[Assignment | CallInstruction] = [] - bessel_sub = BesselSubstitutor( - name_gen, btog.bessel_j_arg_to_top_order, - result) - - import loopy as lp from pytools import MinRecursionLimit + result: list[Assignment | CallInstruction] = [] + bessel_sub = BesselSubstitutor(name_gen, btog.bessel_j_arg_to_top_order) + with MinRecursionLimit(3000): for name, expr in pymbolic_assignments: result.append(lp.Assignment(id=None, assignee=name, expression=bessel_sub(expr), temp_var_type=lp.Optional(None))) + result.extend(bessel_sub.assignments) + logger.info("loopy instruction generation: done") return result From 58cb66b29b3c4c21fe0c848365e81a5226987bbb Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:24:34 +0200 Subject: [PATCH 233/335] docs: add autoattributes --- doc/conf.py | 3 +++ sumpy/expansion/__init__.py | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 5f713edf8..2e3b8ce20 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -48,6 +48,9 @@ # pymbolic "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", "Expression": "obj:pymbolic.typing.Expression", + # loopy + "Assignment": "class:loopy.kernel.instruction.Assignment", + "CallInstruction": "class:loopy.kernel.instruction.CallInstruction", # arraycontext "Array": "obj:arraycontext.Array", # boxtree diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index b391fce89..da5dba7d2 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -80,9 +80,9 @@ @dataclass(frozen=True) class ExpansionBase(ABC): """ - .. attribute:: kernel - .. attribute:: order - .. attribute:: use_rscale + .. autoattribute:: kernel + .. autoattribute:: order + .. autoattribute:: use_rscale .. automethod:: get_coefficient_identifiers .. automethod:: coefficients_from_source @@ -142,7 +142,7 @@ def get_source_args(self) -> Sequence[KernelArgument]: @abstractmethod def get_storage_index(self, mi: MultiIndex) -> int: - ... + pass @abstractmethod def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @@ -255,16 +255,18 @@ def __len__(self) -> int: @dataclass(frozen=True) class ExpansionTermsWrangler(ABC): """ - .. attribute:: order - .. attribute:: dim - .. attribute:: max_mi + .. autoattribute:: order + .. autoattribute:: dim + .. autoattribute:: max_mi + .. automethod:: copy .. automethod:: get_coefficient_identifiers .. automethod:: get_full_kernel_derivatives_from_stored .. automethod:: get_stored_mpole_coefficients_from_full - . automethod:: get_full_coefficient_identifiers + .. automethod:: get_full_coefficient_identifiers """ + order: int dim: int max_mi: MultiIndex | None From b28ecd6369669e3233d67b1fe066cee09f9ecf1d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 8 Nov 2025 11:17:28 +0200 Subject: [PATCH 234/335] chore: update baseline --- .basedpyright/baseline.json | 11036 ++++++++++------------------------ 1 file changed, 3186 insertions(+), 7850 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index dd4a1d47f..c362b12bf 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -678,154 +678,164 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportReturnType", "range": { "startColumn": 19, - "endColumn": 33, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 32, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 38, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 39, + "endColumn": 37, + "lineCount": 1 + } + } + ], + "./sumpy/cse.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 5, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 9, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 9, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 33, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 4, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 29, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, @@ -833,7 +843,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 30, - "endColumn": 39, + "endColumn": 43, "lineCount": 1 } }, @@ -841,127 +851,127 @@ "code": "reportMissingParameterType", "range": { "startColumn": 30, - "endColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 54, + "startColumn": 31, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 40, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 50, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 40, + "startColumn": 13, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 35, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 58, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 16, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 34, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, @@ -969,7 +979,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 31, "lineCount": 1 } }, @@ -977,1086 +987,1078 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 55, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 65, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, + "startColumn": 16, "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 11, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 44, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 44, + "startColumn": 23, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 53, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 31, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 53, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, + "startColumn": 12, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 19, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 54, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 62, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 44, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 20, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 22, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 55, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 19, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 50, + "startColumn": 12, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 78, - "lineCount": 3 + "startColumn": 12, + "endColumn": 46, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 52, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 63, - "endColumn": 72, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAssignmentType", - "range": { - "startColumn": 40, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeArgument", - "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 58, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 58, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 60, - "endColumn": 71, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 71, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 38, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 34, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 30, - "endColumn": 34, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 39, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 16, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 20, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 30, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 23, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 21, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 36, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 36, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 72, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 38, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 38, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 34, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 70, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 21, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 60, + "startColumn": 46, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, + "startColumn": 21, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 25, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 47, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 50, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 49, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 45, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 16, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 58, + "startColumn": 16, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 45, + "startColumn": 52, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 52, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 78, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 24, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 50, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, + "startColumn": 16, "endColumn": 31, "lineCount": 1 } @@ -2064,752 +2066,724 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 35, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 13, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 20, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 22, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 16, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { "startColumn": 19, - "endColumn": 35, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 33, - "endColumn": 46, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 49, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 78, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 45, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 74, - "endColumn": 77, + "startColumn": 29, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 60, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 44, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, + "startColumn": 8, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 17, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 44, - "endColumn": 60, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 60, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, + "startColumn": 41, "endColumn": 42, "lineCount": 1 } - }, + } + ], + "./sumpy/derivative_taker.py": [ { - "code": "reportOperatorIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 54, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 74, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 64, + "startColumn": 17, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 64, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 31, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 15, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 43, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 19, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 66, - "endColumn": 75, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 66, - "endColumn": 75, + "startColumn": 60, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 63, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, + "startColumn": 20, "endColumn": 43, "lineCount": 1 } - }, + } + ], + "./sumpy/distributed.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnsafeMultipleInheritance", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 6, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 68, - "endColumn": 72, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 47, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 56, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 62, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 62, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 8, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 33, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 70, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, @@ -2817,63 +2791,63 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 47, - "endColumn": 63, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 54, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 42, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 76, + "endColumn": 81, "lineCount": 1 } }, @@ -2881,175 +2855,175 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 57, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 57, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 32, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 37, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 34, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 44, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 51, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 51, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 12, + "endColumn": 47, "lineCount": 1 } }, @@ -3057,95 +3031,111 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 55, + "startColumn": 49, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 66, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 50, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 50, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 57, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 20, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 57, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", "range": { "startColumn": 30, - "endColumn": 56, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 19, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 43, + "endColumn": 61, "lineCount": 1 } }, @@ -3153,7 +3143,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 26, "lineCount": 1 } }, @@ -3161,702 +3151,694 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 11, - "endColumn": 20, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 79, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 51, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, + "startColumn": 33, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 49, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 45, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 43, + "endColumn": 58, "lineCount": 1 } - }, + } + ], + "./sumpy/e2e.py": [ { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 83, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 36, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 21, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 44, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 54, - "endColumn": 58, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { "startColumn": 54, - "endColumn": 58, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 28, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 67, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 28, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 54, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 32, - "endColumn": 43, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 59, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportCallInDefaultInitializer", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 58, - "endColumn": 76, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 76, + "startColumn": 11, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 32, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportCallInDefaultInitializer", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 63, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 + "startColumn": 20, + "endColumn": 66, + "lineCount": 3 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 35, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 52, - "endColumn": 56, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 35, - "endColumn": 71, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnusedVariable", + "code": "reportImplicitOverride", "range": { - "startColumn": 51, - "endColumn": 55, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 22, - "endColumn": 52, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 52, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 61, - "lineCount": 1 - } - } - ], - "./sumpy/cse.py": [ - { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 5, - "endColumn": 30, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 34, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 9, - "endColumn": 33, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 43, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 42, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 23, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 30, "endColumn": 43, @@ -3866,136 +3848,136 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 44, + "startColumn": 45, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 34, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, + "startColumn": 25, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 57, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 66, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 + "startColumn": 20, + "endColumn": 46, + "lineCount": 3 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, + "startColumn": 24, "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 35, + "startColumn": 35, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 51, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, @@ -4003,239 +3985,247 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 31, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 74, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, + "startColumn": 25, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 38, - "endColumn": 43, - "lineCount": 1 + "startColumn": 16, + "endColumn": 62, + "lineCount": 19 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 28 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 52, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 45, + "startColumn": 44, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 33, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 20, "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 38, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, + "startColumn": 34, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, @@ -4243,535 +4233,527 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 63, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 26, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 41, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 53, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 42, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, + "startColumn": 21, "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 38, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, + "startColumn": 24, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 51, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 46, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 27, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 41, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 42, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 64, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 49, - "lineCount": 1 + "startColumn": 20, + "endColumn": 68, + "lineCount": 5 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 51, + "startColumn": 35, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 38, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 36, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 47, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 76, + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 45, + "startColumn": 19, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 51, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 66, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 66, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 65, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 11, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 71, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 36, - "endColumn": 81, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 72, - "endColumn": 80, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, @@ -4779,159 +4761,159 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 27, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 69, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 21, - "endColumn": 61, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 44, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 72, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 54, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { "startColumn": 25, - "endColumn": 51, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 48, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 76, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 11, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 55, + "startColumn": 25, + "endColumn": 68, "lineCount": 1 } }, @@ -4939,4208 +4921,402 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 51, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 82, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 78, + "startColumn": 25, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 29, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 22, + "startColumn": 26, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 28, + "startColumn": 54, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 64, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 40, - "lineCount": 1 + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 44, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 + "startColumn": 33, + "endColumn": 49, + "lineCount": 6 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 27, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 36, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 14, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 14, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 14, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 41, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 7, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 17, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 42, - "lineCount": 1 - } - } - ], - "./sumpy/derivative_taker.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 11, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 60, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 63, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - } - ], - "./sumpy/distributed.py": [ - { - "code": "reportUnsafeMultipleInheritance", - "range": { - "startColumn": 6, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 62, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 62, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 14, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 14, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 49, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 51, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 51, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 43, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 58, - "lineCount": 1 - } - } - ], - "./sumpy/e2e.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "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": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 20, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 66, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 45, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 64, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 68, - "lineCount": 5 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 45, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 6 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "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", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 45, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 65, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 65, - "lineCount": 4 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 56, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 46, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 46, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 74, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 75, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, + "startColumn": 23, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 73, - "lineCount": 3 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9152,416 +5328,392 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 46, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 73, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 67, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 59, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 59, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 31, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 63, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 56, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 12, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 71, + "startColumn": 12, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 75, - "endColumn": 81, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 36, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 60, - "lineCount": 1 + "startColumn": 33, + "endColumn": 65, + "lineCount": 4 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 54, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 25, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, + "startColumn": 25, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 52, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 52, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 24, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 29, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 52, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 76, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, @@ -9569,55 +5721,55 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 51, - "endColumn": 63, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 17, - "lineCount": 5 + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 34, + "endColumn": 44, "lineCount": 1 } }, @@ -9625,7 +5777,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 39, + "endColumn": 50, "lineCount": 1 } }, @@ -9633,14 +5785,14 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 46, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, + "startColumn": 56, "endColumn": 66, "lineCount": 1 } @@ -9648,72 +5800,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 68, + "startColumn": 49, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 23, + "endColumn": 67, "lineCount": 1 } }, @@ -9721,151 +5817,135 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 63, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 40, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 + "startColumn": 55, + "endColumn": 59, + "lineCount": 2 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 35, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 15, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, @@ -9873,20 +5953,12 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 18, @@ -9894,18 +5966,18 @@ } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, @@ -9918,10 +5990,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 44, + "endColumn": 60, "lineCount": 1 } }, @@ -9944,40 +6016,40 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 56, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 39, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -10025,231 +6097,239 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 76, - "lineCount": 1 + "endColumn": 73, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 21, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 48, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 24, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 29, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 35, - "endColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 27, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 32, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 23, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 44, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 75, + "endColumn": 81, "lineCount": 1 } }, @@ -10273,23 +6353,23 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, @@ -10301,163 +6381,139 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 44, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 76, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 12, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 53, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 40, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -10465,79 +6521,63 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 34, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 + "startColumn": 33, + "endColumn": 17, + "lineCount": 5 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, @@ -10549,477 +6589,411 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 48, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 48, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - } - ], - "./sumpy/e2p.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 29, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, + "startColumn": 14, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 27, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 22, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 59, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 19, - "endColumn": 32, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 59, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 29, - "endColumn": 51, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 76, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 53, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 38, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 45, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 70, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 72, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 33, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 67, + "endColumn": 75, "lineCount": 1 } }, @@ -11027,63 +7001,63 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 2 + "startColumn": 20, + "endColumn": 45, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, @@ -11146,362 +7120,312 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 27, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 26, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 54, - "lineCount": 4 + "startColumn": 26, + "endColumn": 44, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 + "startColumn": 16, + "endColumn": 58, + "lineCount": 19 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 + "startColumn": 16, + "endColumn": 20, + "lineCount": 26 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 44, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 65, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 33, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 67, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 20, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 47, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/__init__.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 47, + "range": { + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, @@ -11509,124 +7433,124 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 37, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 49, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 46, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 49, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 19, "endColumn": 24, @@ -11636,8 +7560,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, @@ -11645,127 +7569,129 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 50, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, + "startColumn": 50, "endColumn": 60, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 40, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } - }, + } + ], + "./sumpy/e2p.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 76, - "lineCount": 2 + "startColumn": 21, + "endColumn": 32, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 63, - "lineCount": 2 + "endColumn": 41, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 20, + "endColumn": 36, "lineCount": 1 } }, @@ -11773,336 +7699,334 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 20, - "endColumn": 50, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 53, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 39, - "endColumn": 64, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 22, - "endColumn": 24, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 22, - "endColumn": 24, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 23, - "endColumn": 65, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 41, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 47, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 48, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 44, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 55, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 56, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 53, + "startColumn": 29, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 20, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 55, + "startColumn": 38, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 24, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 24, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 24, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 24, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 15, - "endColumn": 56, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 17, - "endColumn": 50, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 50, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { "startColumn": 22, - "endColumn": 50, + "endColumn": 36, "lineCount": 1 } - } - ], - "./sumpy/expansion/diff_op.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 12, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 31, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 57, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 56, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 + "startColumn": 33, + "endColumn": 43, + "lineCount": 2 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 47, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 18, - "endColumn": 66, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, + "startColumn": 14, "endColumn": 35, "lineCount": 1 } @@ -12110,255 +8034,263 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 40, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, + "startColumn": 8, "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 2 + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 30, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 17, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 33, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 52, - "endColumn": 79, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 47, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 50, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 26, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 62, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 30, - "lineCount": 2 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 73, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 + "startColumn": 33, + "endColumn": 54, + "lineCount": 4 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportImplicitOverride", "range": { - "startColumn": 52, - "endColumn": 62, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, + "startColumn": 14, "endColumn": 35, "lineCount": 1 } @@ -12366,255 +8298,265 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 77, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 79, + "startColumn": 51, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 48, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 50, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 69, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 71, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 81, + "startColumn": 14, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 18, + "startColumn": 17, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 47, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/__init__.py": [ { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAssignmentType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 43, - "endColumn": 57, + "startColumn": 33, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } } ], - "./sumpy/expansion/level_to_order.py": [ + "./sumpy/expansion/diff_op.py": [ { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 7, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 7, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", "range": { "startColumn": 23, - "endColumn": 26, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 39, + "startColumn": 36, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 16, @@ -12622,508 +8564,500 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 17, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 18, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 31, - "endColumn": 42, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 55, - "lineCount": 1 + "startColumn": 26, + "endColumn": 36, + "lineCount": 2 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 9, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 20, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, + "startColumn": 21, "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 11, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 52, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 63, + "startColumn": 52, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 27, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 27, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 45, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 71, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 15, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 41, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 + "startColumn": 56, + "endColumn": 30, + "lineCount": 2 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 30, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 32, + "startColumn": 34, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 36, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 52, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 33, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 53, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 53, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, + "startColumn": 31, "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 31, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 52, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 26, - "lineCount": 6 + "startColumn": 52, + "endColumn": 71, + "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 5 + "startColumn": 8, + "endColumn": 22, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 56, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 70, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 11, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 34, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 34, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 66, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 64, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } - } - ], - "./sumpy/expansion/local.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 46, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 43, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 83, - "endColumn": 84, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 44, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/level_to_order.py": [ { "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 33, + "endColumn": 26, "lineCount": 1 } }, @@ -13131,548 +9065,550 @@ "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 33, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 28, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 64, - "lineCount": 3 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 52, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 43, - "endColumn": 53, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 44, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 52, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 59, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 47, + "startColumn": 59, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 35, + "startColumn": 57, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 44, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 28, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 52, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 49, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 52, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 44, - "endColumn": 52, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 54, - "endColumn": 62, + "startColumn": 13, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 54, - "endColumn": 62, + "startColumn": 13, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 13, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 65, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 69, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 84, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 48, - "lineCount": 1 + "startColumn": 28, + "endColumn": 26, + "lineCount": 6 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 16, + "endColumn": 25, + "lineCount": 5 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 72, + "startColumn": 31, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 20, + "startColumn": 18, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 32, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 82, + "startColumn": 42, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 82, + "startColumn": 49, + "endColumn": 64, "lineCount": 1 } } ], - "./sumpy/expansion/loopy.py": [ + "./sumpy/expansion/local.py": [ { "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 49, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 36, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 21, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/loopy.py": [ { "code": "reportUnknownMemberType", "range": { @@ -13684,16 +9620,8 @@ { "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, @@ -13746,191 +9674,87 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/m2l.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 25, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 74, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/m2l.py": [ { "code": "reportImplicitOverride", "range": { @@ -14867,14 +10691,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -16843,22 +12659,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 79, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -18219,6 +14019,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 69, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -18244,18 +14052,10 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, @@ -18325,62 +14125,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 67, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -18405,22 +14149,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -18441,79 +14169,23 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 29, - "endColumn": 34, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", "range": { "startColumn": 59, - "endColumn": 65, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 50, + "endColumn": 71, "lineCount": 1 } }, @@ -18549,355 +14221,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 44, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 61, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 61, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportUnusedParameter", "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 69, - "lineCount": 6 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 56, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 64, - "endColumn": 82, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } } @@ -24349,6 +19677,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 40, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -24409,23 +19745,23 @@ "code": "reportArgumentType", "range": { "startColumn": 29, - "endColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, @@ -24581,6 +19917,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 13 + } + }, { "code": "reportAny", "range": { @@ -24677,94 +20021,110 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 14, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 62, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 11 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 14, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 62, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -24782,11 +20142,11 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 + "startColumn": 12, + "endColumn": 21, + "lineCount": 21 } }, { @@ -25008,17 +20368,17 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 53, - "lineCount": 8 + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 + "startColumn": 29, + "endColumn": 53, + "lineCount": 8 } }, { @@ -25373,6 +20733,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 46, + "endColumn": 49, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -26481,22 +21849,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -26521,14 +21873,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 40, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -26545,14 +21889,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -26761,6 +22097,22 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 8 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 15 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -27041,6 +22393,22 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 6 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 13 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -27313,6 +22681,22 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 14 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 20 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -28315,22 +23699,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 5, - "endColumn": 11, - "lineCount": 1 - } - }, { "code": "reportUnusedFunction", "range": { @@ -31720,10 +27088,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 75, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, @@ -32863,14 +28231,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 71, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -34826,10 +30186,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 59, + "startColumn": 60, + "endColumn": 63, "lineCount": 1 } }, @@ -35505,22 +30865,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -38428,14 +33772,6 @@ "endColumn": 56, "lineCount": 1 } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } } ], "./sumpy/test/test_qbx.py": [ @@ -40984,10 +36320,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 75, + "startColumn": 32, + "endColumn": 48, "lineCount": 1 } }, From 835be80a6e2bbb7023b0478bd8da053837543dc2 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 18 Nov 2025 17:58:49 -0600 Subject: [PATCH 235/335] VkFFT: use public API --- sumpy/tools.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index ef9bde387..2cf064361 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -40,7 +40,6 @@ import loopy as lp import pytools.obj_array as obj_array from pymbolic.mapper.dependency import DependencyMapper -from pyopencl import MemoryObjectHolder from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -1033,17 +1032,9 @@ def run_opencl_fft( else: output_vec = cla.empty_like(input_vec, queue) - # FIXME: use the public API once - # https://github.com/vincefn/pyvkfft/pull/17 is in - from pyvkfft.opencl import _vkfft_opencl - if inverse: # noqa: SIM108 - meth = _vkfft_opencl.ifft - else: - meth = _vkfft_opencl.fft + meth = app.ifft if inverse else app.fft - assert isinstance(output_vec.data, MemoryObjectHolder) - meth(app.app, int(input_vec.data.int_ptr), - int(output_vec.data.int_ptr), int(queue.int_ptr)) + meth(input_vec, output_vec, queue=queue) if queue.device.platform.name == "NVIDIA CUDA": end_evt = cl.enqueue_marker(queue) From b4cac80a2c22e87e05ab5bd1674b274ae4b67cde Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 18 Nov 2025 17:59:12 -0600 Subject: [PATCH 236/335] VkFFT: Fall back to loopy FFT on pocl 7 --- sumpy/tools.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 2cf064361..c7f76d647 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -40,6 +40,7 @@ import loopy as lp import pytools.obj_array as obj_array from pymbolic.mapper.dependency import DependencyMapper +from pyopencl.characterize import get_pocl_version from pytools import memoize_method from pytools.tag import Tag, tag_dataclass @@ -955,15 +956,22 @@ def _get_fft_backend(queue: pyopencl.CommandQueue) -> FFTBackend: import platform import sys - if (sys.platform == "darwin" - and platform.machine() == "x86_64" - and queue.context.devices[0].platform.name - == "Portable Computing Language"): - warnings.warn( - "PoCL miscompiles some VkFFT kernels. " - "See https://github.com/inducer/sumpy/issues/129. " - "Falling back to slower implementation.", stacklevel=3) - return FFTBackend.loopy + pocl_ver = get_pocl_version(queue.device.platform) + if pocl_ver is not None: + if pocl_ver >= (7,): + warnings.warn( + "PoCL>=7 miscompiles VkFFT. " + "See https://github.com/pocl/pocl/issues/2069 for details. " + "Falling back to slower implementation.", stacklevel=3) + return FFTBackend.loopy + + if (sys.platform == "darwin" + and platform.machine() == "x86_64"): + warnings.warn( + "PoCL crashes on some VkFFT kernels on MacOS. " + "See https://github.com/inducer/sumpy/issues/129. " + "Falling back to slower implementation.", stacklevel=3) + return FFTBackend.loopy return FFTBackend.pyvkfft From becb9d2fde4bc4b3c5425e3cdff4e1ab36bfa6da Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 18 Nov 2025 17:59:28 -0600 Subject: [PATCH 237/335] Expansion toys: make compatible with Loopy FFT --- sumpy/toys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/toys.py b/sumpy/toys.py index 18460f986..e095a40a4 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -427,9 +427,9 @@ def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa from sumpy.tools import get_native_event, get_opencl_fft_app, run_opencl_fft if toy_ctx.use_fft: - fft_app = get_opencl_fft_app(queue, (expn_size,), + fft_app = get_opencl_fft_app(queue, (1, expn_size,), dtype=preprocessed_src_expansions.dtype, inverse=False) - ifft_app = get_opencl_fft_app(queue, (expn_size,), + ifft_app = get_opencl_fft_app(queue, (1, expn_size,), dtype=preprocessed_src_expansions.dtype, inverse=True) evt, preprocessed_src_expansions = run_opencl_fft(fft_app, queue, From d4a730ec6882c2e9b900384316e6e20a6800dc7c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 18 Nov 2025 18:12:02 -0600 Subject: [PATCH 238/335] Add CI job with Loopy FFT --- .github/workflows/ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae476b178..6ffb13184 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,6 +71,17 @@ jobs: curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh . ./build-and-test-py-project-within-miniconda.sh + pytest_symengine_loopy_fft: + name: Conda Pytest Symengine with Loopy FFT + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - name: "Main Script" + run: | + curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh + export SUMPY_FFT_BACKEND=loopy + . ./build-and-test-py-project-within-miniconda.sh + pytest_symengine: name: Conda Pytest Symengine runs-on: ubuntu-latest From 2dd8cddf4c9c969bf38df2cbd9298d3526c40ca6 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 18 Nov 2025 18:41:01 -0600 Subject: [PATCH 239/335] Loopy FFT: don't bake batch dimensions lengths into kernel --- sumpy/test/test_tools.py | 6 +++++- sumpy/tools.py | 41 +++++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/sumpy/test/test_tools.py b/sumpy/test/test_tools.py index e68cff4cc..89ec231d9 100644 --- a/sumpy/test/test_tools.py +++ b/sumpy/test/test_tools.py @@ -93,7 +93,11 @@ def test_fft(actx_factory: ArrayContextFactory, size: int): inp_dev = actx.from_numpy(inp) out = fft(inp) - fft_func = loopy_fft(inp.shape, inverse=False, complex_dtype=inp.dtype.type) + fft_func = loopy_fft( + inp.shape[-1], + n_batch_dims=len(inp.shape) - 1, + inverse=False, + complex_dtype=inp.dtype.type) _evt, (out_dev,) = fft_func(actx.queue, y=inp_dev) assert np.allclose(actx.to_numpy(out_dev), out) diff --git a/sumpy/tools.py b/sumpy/tools.py index c7f76d647..f644a3042 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -752,7 +752,8 @@ def wait(self): def loopy_fft( - shape: tuple[int, ...], + n: int, + *, n_batch_dims: int, inverse: bool, complex_dtype: DTypeLike, index_dtype: DTypeLike | None = None, @@ -766,7 +767,6 @@ def loopy_fft( complex_dtype = np.dtype(complex_dtype) sign = 1 if not inverse else -1 - n = shape[-1] m = n factors = [] @@ -776,13 +776,13 @@ def loopy_fft( nfft = n - broadcast_dims = tuple(var(f"j{d}") for d in range(len(shape) - 1)) + batch_dims = tuple(var(f"j{d}") for d in range(n_batch_dims)) domains = [ "{[i]: 0<=i Date: Tue, 18 Nov 2025 18:12:17 -0600 Subject: [PATCH 240/335] Update baseline --- .basedpyright/baseline.json | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index c362b12bf..8a15fab41 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -36153,8 +36153,8 @@ "code": "reportAny", "range": { "startColumn": 15, - "endColumn": 83, - "lineCount": 1 + "endColumn": 46, + "lineCount": 5 } }, { @@ -36229,43 +36229,27 @@ "lineCount": 1 } }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, @@ -37331,7 +37315,7 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 48, - "endColumn": 60, + "endColumn": 63, "lineCount": 1 } }, @@ -37355,7 +37339,7 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 49, - "endColumn": 61, + "endColumn": 64, "lineCount": 1 } }, From ff03774dfab4068f84fb5934a4aa62c56291b7be Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 12 Nov 2025 13:00:14 +0200 Subject: [PATCH 241/335] feat(typing): improve typing in expansion.diff_op --- sumpy/expansion/diff_op.py | 209 ++++++++++++++++++++++--------------- 1 file changed, 127 insertions(+), 82 deletions(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index fc67fb48d..4857af28b 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -1,5 +1,3 @@ -# mypy: disallow-untyped-defs - from __future__ import annotations @@ -31,19 +29,21 @@ from typing import TYPE_CHECKING, TypeAlias import numpy as np -import sympy as sp -import sympy.polys.agca.modules as sp_modules from constantdict import constantdict +from typing_extensions import override from pytools import memoize import sumpy.symbolic as sym -from sumpy.tools import add_mi if TYPE_CHECKING: from collections.abc import Mapping, Sequence + from sympy.polys.agca.modules import FreeModuleElement, SubModulePolyRing + + from pymbolic.typing import Number + logger = logging.getLogger(__name__) @@ -88,9 +88,6 @@ class DerivativeIdentifier: """ -Number_ish = int | float | complex | np.number - - @dataclass(frozen=True, eq=True) class LinearPDESystemOperator: r""" @@ -110,39 +107,49 @@ class LinearPDESystemOperator: """ dim: int - eqs: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] + eqs: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] if __debug__: + def __post_init__(self) -> None: - hash(self) + # NOTE: this will raise a TypeError if it's not hashable + _ = hash(self) @property def order(self) -> int: deg = 0 for eq in self.eqs: deg = max(deg, max(sum(ident.mi) for ident in eq)) + return deg - def __mul__(self, param: Number_ish | sym.Expr) -> LinearPDESystemOperator: - eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] + def __mul__(self, other: Number | sym.Expr) -> LinearPDESystemOperator: + import numbers + if not isinstance(other, (numbers.Number, np.number, sym.Expr)): + return NotImplemented + + eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] for eq in self.eqs: - deriv_ident_to_coeff = {} + deriv_ident_to_coeff: Mapping[DerivativeIdentifier, sym.Expr] = {} for k, v in eq.items(): - deriv_ident_to_coeff[k] = v * param + deriv_ident_to_coeff[k] = v * other + eqs.append(constantdict(deriv_ident_to_coeff)) return LinearPDESystemOperator(self.dim, tuple(eqs)) - __rmul__ = __mul__ + def __rmul__(self, param: Number | sym.Expr) -> LinearPDESystemOperator: + return self.__mul__(param) - def __add__( - self, other_diff_op: LinearPDESystemOperator - ) -> LinearPDESystemOperator: - assert self.dim == other_diff_op.dim - assert len(self.eqs) == len(other_diff_op.eqs) + def __add__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: + if not isinstance(other, LinearPDESystemOperator): + return NotImplemented - eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] - for eq, other_eq in zip(self.eqs, other_diff_op.eqs, strict=True): + assert self.dim == other.dim + assert len(self.eqs) == len(other.eqs) + + eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] + for eq, other_eq in zip(self.eqs, other.eqs, strict=True): res = dict(eq) for k, v in other_eq.items(): if k in res: @@ -153,13 +160,16 @@ def __add__( return LinearPDESystemOperator(self.dim, tuple(eqs)) - __radd__ = __add__ + def __radd__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: + return self.__add__(other) + + def __sub__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: + return self + (-1)*other - def __sub__( - self, other_diff_op: LinearPDESystemOperator - ) -> LinearPDESystemOperator: - return self + (-1)*other_diff_op + def __neg__(self) -> LinearPDESystemOperator: + return (-1) * self + @override def __repr__(self) -> str: return f"LinearPDESystemOperator({self.dim}, {self.eqs!r})" @@ -176,10 +186,9 @@ def total_dims(self) -> int: did = next(iter(self.eqs[0].keys())) return len(did.mi) - def to_sym(self, fnames: Sequence[str] | None = None) -> list[sp.Expr]: - from sumpy.symbolic import Function, make_sym_vector - x = list(make_sym_vector("x", self.dim)) - x += list(make_sym_vector("t", self.total_dims - self.dim)) + def to_sym(self, fnames: Sequence[str] | None = None) -> list[sym.Expr]: + x: list[sym.Expr] = list(sym.make_sym_vector("x", self.dim)) + x.extend(sym.make_sym_vector("t", self.total_dims - self.dim)) if fnames is None: noutputs = 0 @@ -188,45 +197,52 @@ def to_sym(self, fnames: Sequence[str] | None = None) -> list[sp.Expr]: noutputs = max(noutputs, deriv_ident.vec_idx) fnames = [f"f{i}" for i in range(noutputs+1)] - funcs = [Function(fname)(*x) for fname in fnames] + funcs = [sym.Function(fname)(*x) for fname in fnames] - res = [] + res: list[sym.Expr] = [] for eq in self.eqs: - sym_eq: sp.Expr = sp.sympify(0) + sym_eq: sym.Expr = sym.sympify(0) for deriv_ident, coeff in eq.items(): expr = funcs[deriv_ident.vec_idx] for i, val in enumerate(deriv_ident.mi): for _ in range(val): expr = expr.diff(x[i]) + sym_eq += expr * coeff + res.append(sym_eq) + return res def convert_module_to_matrix( - module: Sequence[sp_modules.FreeModuleElement], - generators: Sequence[sp.Expr] - ) -> sp.Matrix: - import sympy + module: Sequence[FreeModuleElement], + generators: Sequence[sym.Expr] + ) -> sym.Matrix: + import sympy as sp + # poly is a sympy DMP (dense multi-variate polynomial) # type and we convert it to a sympy expression because # sympy matrices with polynomial entries are not supported. # see https://github.com/sympy/sympy/issues/21497 - return sympy.Matrix([[sympy.Poly(poly.to_dict(), *generators, - domain=sympy.EX).as_expr() for poly in ideal.data] for ideal in module]) + return sp.Matrix([ + [sp.Poly(poly.to_dict(), *generators, domain=sp.EX).as_expr() + for poly in ideal.data] + for ideal in module]) @memoize def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOperator]: - import sympy + import sympy as sp from sympy.polys.orderings import grevlex - gens = [sympy.symbols(f"_x{i}") for i in range(pde.dim)] - gens += [sympy.symbols(f"_t{i}") for i in range(pde.total_dims - pde.dim)] + + gens = [sp.Symbol(f"_x{i}") for i in range(pde.dim)] + gens += [sp.Symbol(f"_t{i}") for i in range(pde.total_dims - pde.dim)] max_vec_idx = max(deriv_ident.vec_idx for eq in pde.eqs for deriv_ident in eq) - pde_system_mat = sympy.zeros(len(pde.eqs), max_vec_idx + 1) + pde_system_mat = sp.zeros(len(pde.eqs), max_vec_idx + 1) for row, eq in enumerate(pde.eqs): for deriv_ident, coeff in eq.items(): deriv_as_poly = 1 @@ -234,12 +250,12 @@ def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOp deriv_as_poly *= gens[i]**val pde_system_mat[row, deriv_ident.vec_idx] += coeff * deriv_as_poly - ring = sympy.EX.old_poly_ring(*gens, order=grevlex) - column_ideals = [ring.free_module(1).submodule(*pde_system_mat[:, i].tolist(), - order=grevlex) - for i in range(pde_system_mat.shape[1])] + ring = sp.EX.old_poly_ring(*gens, order=grevlex) + column_ideals = [ + ring.free_module(1).submodule(*pde_system_mat[:, i].tolist(), order=grevlex) + for i in range(pde_system_mat.shape[1]) + ] column_syzygy_modules = [ideal.syzygy_module() for ideal in column_ideals] - ncols = len(column_syzygy_modules) # For each column i, we need to get the intersection of all the syzygy modules @@ -250,15 +266,13 @@ def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOp # for each column we calculate the intersection of the left modules and the # right modules. This requires only $3*(n-2)$ work. - def intersect( - a: sp_modules.SubModulePolyRing, - b: sp_modules.SubModulePolyRing, - ) -> sp_modules.SubModulePolyRing: + def intersect(a: SubModulePolyRing, b: SubModulePolyRing) -> SubModulePolyRing: return a.intersect(b) - left_intersections = list(accumulate(column_syzygy_modules, func=intersect)) - right_intersections = list(reversed(list(accumulate(reversed( - column_syzygy_modules), func=intersect)))) + left_intersections = list( + accumulate(column_syzygy_modules, func=intersect)) + right_intersections = list(reversed(list( + accumulate(reversed(column_syzygy_modules), func=intersect)))) # At the end, calculate the intersection of the left modules and right modules # and calculate a groebner basis for it. @@ -272,27 +286,30 @@ def intersect( # column. scalar_pdes_vec = [ (convert_module_to_matrix(module_intersections[i]._groebner_vec(), - gens) * pde_system_mat)[:, i] + gens) * pde_system_mat)[:, i] for i in range(ncols) ] - results = [] + results: list[LinearPDESystemOperator] = [] for col in range(ncols): - scalar_pde_polys = [sympy.Poly(pde, *gens, domain=sympy.EX) for - pde in scalar_pdes_vec[col]] + scalar_pde_polys = [sp.Poly(pde, *gens, domain=sp.EX) + for pde in scalar_pdes_vec[col]] scalar_pdes = [pde for pde in scalar_pde_polys if pde.degree() > 0] scalar_pde = min(scalar_pdes, key=lambda x: x.degree()).monic() + pde_dict = { - DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for - (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs(), strict=True) + DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) + for (mi, coeff) in zip(scalar_pde.monoms(), + scalar_pde.coeffs(), strict=True) } results.append(LinearPDESystemOperator(pde.dim, (constantdict(pde_dict),))) return results -def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ - -> LinearPDESystemOperator: +def as_scalar_pde( + pde: LinearPDESystemOperator, comp_idx: int, + ) -> LinearPDESystemOperator: r""" Returns a scalar PDE that is satisfied by the *comp_idx* component of *pde*. @@ -350,7 +367,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ :arg comp_idx: the index of the component of the PDE solution vector for which a scalar PDE is requested. """ - indices = set() + indices: set[int] = set() for eq in pde.eqs: for deriv_ident in eq: indices.add(deriv_ident.vec_idx) @@ -364,8 +381,9 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: dim = diff_op.dim - empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = ( + empty: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] = ( (constantdict(),) * len(diff_op.eqs)) + res = LinearPDESystemOperator(dim, empty) for j in range(dim): mi = [0]*diff_op.total_dims @@ -377,19 +395,25 @@ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: def diff( diff_op: LinearPDESystemOperator, mi: tuple[int, ...] ) -> LinearPDESystemOperator: - eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] + from sumpy.tools import add_mi + + eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] for eq in diff_op.eqs: - res = {} + res: Mapping[DerivativeIdentifier, sym.Expr] = {} for deriv_ident, v in eq.items(): new_mi = add_mi(deriv_ident.mi, mi) res[DerivativeIdentifier(new_mi, deriv_ident.vec_idx)] = v + eqs.append(constantdict(res)) return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - assert len(diff_op.eqs) == diff_op.dim + if len(diff_op.eqs) != diff_op.dim: + raise ValueError( + "number of equations does not match system dimension: " + f"got {len(diff_op.eqs)} equations for {diff_op.dim}d system") res = LinearPDESystemOperator(diff_op.dim, (constantdict(),)) for i in range(diff_op.dim): @@ -401,47 +425,66 @@ def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: def gradient(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - assert len(diff_op.eqs) == 1 - eqs = [] + if len(diff_op.eqs) != 1: + raise ValueError( + f"can only take gradient of scalar system: got {len(diff_op.eqs)}d") + + eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] dim = diff_op.dim for i in range(dim): mi = [0]*diff_op.total_dims mi[i] = 1 eqs.append(diff(diff_op, tuple(mi)).eqs[0]) + return LinearPDESystemOperator(dim, tuple(eqs)) def curl(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - assert len(diff_op.eqs) == 3 - assert diff_op.dim == 3 - eqs = [] - mis = [] + if len(diff_op.eqs) != diff_op.dim: + raise ValueError( + "number of equations does not match system dimension: " + f"got {len(diff_op.eqs)} equations for {diff_op.dim}d system") + + if diff_op.dim != 3: + raise ValueError(f"can only take curl of 3d system: got {diff_op.dim}d") + + eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] + mis: list[MultiIndex] = [] for i in range(3): mi = [0]*diff_op.total_dims mi[i] = 1 mis.append(tuple(mi)) for i in range(3): - new_pde = diff(diff_op[(i+2) % 3], mis[(i+1) % 3]) - \ - diff(diff_op[(i+1) % 3], mis[(i+2) % 3]) + new_pde = ( + diff(diff_op[(i+2) % 3], mis[(i+1) % 3]) + - diff(diff_op[(i+1) % 3], mis[(i+2) % 3])) eqs.append(new_pde.eqs[0]) return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) def concat(*ops: LinearPDESystemOperator) -> LinearPDESystemOperator: - assert len(ops) >= 1 + if not ops: + raise TypeError("concat() takes at least 1 positional argument (0 given)") + + if len(ops) == 1: + return ops[0] + dim = ops[0].dim - for op in ops: - assert op.dim == dim + if not all(op.dim == dim for op in ops): + raise ValueError(f"operators must have the same dimension (expected {dim}d)") + eqs = list(ops[0].eqs) for op in ops[1:]: eqs.extend(list(op.eqs)) + return LinearPDESystemOperator(dim, tuple(eqs)) def make_identity_diff_op( - ninput: int, noutput: int = 1, time_dependent: bool = False + ninput: int, noutput: int = 1, *, + time_dependent: bool = False ) -> LinearPDESystemOperator: """ Returns the identity as a linear PDE system operator. @@ -452,10 +495,12 @@ def make_identity_diff_op( :arg noutput: number of output values of function :arg time_dependent: include time as a dimension """ + if time_dependent: # noqa: SIM108 mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) + return LinearPDESystemOperator(ninput, tuple( - constantdict({DerivativeIdentifier(mi, i): sp.sympify(1)}) + constantdict({DerivativeIdentifier(mi, i): sym.sympify(1)}) for i in range(noutput))) From 9744715e73874d9b084467597a4ee5db736873da Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 12 Nov 2025 13:00:34 +0200 Subject: [PATCH 242/335] docs: improve docs in expansion.diff_op --- sumpy/expansion/diff_op.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 4857af28b..b71d88b58 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -92,17 +92,18 @@ class DerivativeIdentifier: class LinearPDESystemOperator: r""" Represents a constant-coefficient linear differential operator of a - vector-valued function with `dim` spatial variables. It is represented by a - tuple of immutable dictionaries. The dictionary maps a - :class:`DerivativeIdentifier` to the coefficient. This object is immutable. - Optionally supports a time variable as the last variable in the multi-index - of the :class:`DerivativeIdentifier`. + vector-valued function with `dim` spatial variables. + + It is represented by a tuple of immutable dictionaries. The dictionary maps a + :class:`DerivativeIdentifier` to the coefficient. Optionally supports a + time variable as the last variable in the multi-index of the + :class:`DerivativeIdentifier`. .. autoattribute:: dim .. autoattribute:: eqs - .. autoattribute:: order - .. autoattribute:: total_dims + .. autoproperty:: order + .. autoproperty:: total_dims .. automethod:: to_sym """ @@ -322,14 +323,16 @@ def as_scalar_pde( eg: .. math:: - \frac{\partial^2 u}{\partial x^2} + \ + + \frac{\partial^2 u}{\partial x^2} + 2 \frac{\partial^2 v}{\partial x y} = 0 \\ - 3 \frac{\partial^2 u}{\partial y^2} + \ + 3 \frac{\partial^2 u}{\partial y^2} + \frac{\partial^2 v}{\partial x^2} = 0 - is converted into, + is converted into .. math:: + \begin{bmatrix} x^2 & 2xy \\ 2y^2 & x^2 @@ -487,13 +490,11 @@ def make_identity_diff_op( time_dependent: bool = False ) -> LinearPDESystemOperator: """ - Returns the identity as a linear PDE system operator. - if *include_time* is true, then the last dimension of the - multi-index is time. - - :arg ninput: number of spatial variables of the function - :arg noutput: number of output values of function - :arg time_dependent: include time as a dimension + :arg ninput: number of spatial variables of the function. + :arg noutput: number of output values of function. + :arg time_dependent: include time as a dimension. + :returns: the identity as a linear PDE system operator. If *time_dependent* + is *True*, then the last dimension of the multi-index is time. """ if time_dependent: # noqa: SIM108 From d9e4587a9ea1cb37d5059a29ae22b1be119437a2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 12 Nov 2025 13:17:40 +0200 Subject: [PATCH 243/335] feat(typing): add types to expansion.level_to_order --- sumpy/expansion/level_to_order.py | 111 +++++++++++++++++++----------- sumpy/test/test_misc.py | 3 +- 2 files changed, 73 insertions(+), 41 deletions(-) diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 76a3a05fe..0c975da6f 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -24,39 +24,58 @@ """ __doc__ = """ +.. autoclass:: TreeLike + :members: + :undoc-members: + .. autoclass:: FMMLibExpansionOrderFinder .. autoclass:: SimpleExpansionOrderFinder """ import math +from dataclasses import dataclass +from typing import TYPE_CHECKING, Protocol, cast import numpy as np +if TYPE_CHECKING: + from collections.abc import Sequence + + import sumpy.symbolic as sym + from sumpy.kernel import Kernel + + +class TreeLike(Protocol): + dimensions: int + root_extent: float + stick_out_factor: float + + +@dataclass(frozen=True) class FMMLibExpansionOrderFinder: r"""Return expansion orders that meet the tolerance for a given level using routines wrapped from ``pyfmmlib``. - .. automethod:: __init__ + .. autoattribute:: tol + .. autoattribute:: extra_order + .. automethod:: __call__ """ - def __init__(self, tol, extra_order=0): - """ - :arg tol: error tolerance - :arg extra_order: order increase to accommodate, say, the taking of - derivatives of the FMM expansions. - """ - self.tol = tol - self.extra_order = extra_order - - def __call__(self, kernel, kernel_args, tree, level): - from pyfmmlib import ( - h2dterms, - h3dterms, - l2dterms, - l3dterms, - ) + tol: float + """Error tolerance.""" + extra_order: int = 0 + """Order increase to accommodate, say, the taking of derivatives of the FMM + expansion. + """ + + def __call__(self, + kernel: Kernel, + kernel_args: dict[str, sym.Expr] | Sequence[tuple[str, sym.Expr]], + tree: TreeLike, + level: int) -> int: + from pyfmmlib import h2dterms, h3dterms, l2dterms, l3dterms from sumpy.kernel import HelmholtzKernel, LaplaceKernel @@ -76,7 +95,7 @@ def __call__(self, kernel, kernel_args, tree, level): elif isinstance(kernel, HelmholtzKernel): helmholtz_k = dict(kernel_args)[kernel.helmholtz_k_name] - size = tree.root_extent / 2 ** level + size = cast("int", tree.root_extent / 2 ** level) if tree.dimensions == 2: nterms, ier = h2dterms(size, helmholtz_k, self.tol) @@ -97,6 +116,7 @@ def __call__(self, kernel, kernel_args, tree, level): return nterms + self.extra_order +@dataclass(frozen=True) class SimpleExpansionOrderFinder: r""" This models the Laplace truncation error as: @@ -109,42 +129,53 @@ class SimpleExpansionOrderFinder: .. math:: - C_{\text{helm}} \frac 1{p!} - \left(C_{\text{helmscale}} \cdot \frac{hk}{2\pi}\right)^{p+1}, + C_{\text{helm}} \frac{1}{p!} + \left(C_{\text{helmscale}} \cdot \frac{hk}{2\pi}\right)^{p+1}, where :math:`d` is the number of dimensions, :math:`p` is the expansion order, :math:`h` is the box size, and :math:`k` is the wave number. - .. automethod:: __init__ + .. autoattribute:: tol + .. autoattribute:: extra_order + .. autoattribute:: err_const_laplace + .. autoattribute:: err_const_helmholtz + .. autoattribute:: scaling_const_helmholtz + .. automethod:: __call__ """ - def __init__(self, tol, err_const_laplace=0.01, err_const_helmholtz=100, - scaling_const_helmholtz=4, - extra_order=1): - """ - :arg extra_order: order increase to accommodate, say, the taking of - derivatives of the FMM expansions. - """ - self.tol = tol - - self.err_const_laplace = err_const_laplace - self.err_const_helmholtz = err_const_helmholtz - self.scaling_const_helmholtz = scaling_const_helmholtz + tol: float + """Error tolerance.""" + + err_const_laplace: float = 0.01 + """Constant :math:`C_{\text{lap}}` used in the Laplace truncation error.""" + err_const_helmholtz: float = 100.0 + """Constant :math:`C_{\text{helm}}` used in the Helmholtz truncation error.""" + scaling_const_helmholtz: float = 4.0 + """Constant :math:`C_{\text{helmscale}}` used in the Helmholtz truncation error. + This can be used to tweak the scaling with respect to the box size or wave + number. + """ - self.extra_order = extra_order + extra_order: int = 1 + """Order increase to accommodate, say, the taking of derivatives of the FMM + expansion. + """ - def __call__(self, kernel, kernel_args, tree, level): + def __call__(self, + kernel: Kernel, + kernel_args: dict[str, sym.Expr] | Sequence[tuple[str, sym.Expr]], + tree: TreeLike, + level: int) -> int: from sumpy.kernel import HelmholtzKernel, LaplaceKernel assert isinstance(kernel, LaplaceKernel | HelmholtzKernel) - laplace_order = int(np.ceil( - (np.log(self.tol) - np.log(self.err_const_laplace)) + laplace_order = math.ceil( + (math.log(self.tol) - math.log(self.err_const_laplace)) / - np.log( - np.sqrt(tree.dimensions)/3 - ) - 1)) + math.log(math.sqrt(tree.dimensions) / 3.0) + - 1) if isinstance(kernel, HelmholtzKernel): helmholtz_k = dict(kernel_args)[kernel.helmholtz_k_name] diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 76ab911c5..6cede60aa 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -60,6 +60,7 @@ ElasticityKernel, ExpressionKernel, HelmholtzKernel, + Kernel, LaplaceKernel, LineOfCompressionKernel, StokesletKernel, @@ -199,7 +200,7 @@ class FakeTree: @pytest.mark.parametrize("knl", [ LaplaceKernel(2), HelmholtzKernel(2), LaplaceKernel(3), HelmholtzKernel(3)]) -def test_order_finder(knl): +def test_order_finder(knl: Kernel) -> None: from sumpy.expansion.level_to_order import SimpleExpansionOrderFinder ofind = SimpleExpansionOrderFinder(1e-5) From 9335ccb97031d1c57ffe1df30d2a2abba9cf2792 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 18 Nov 2025 15:53:08 +0200 Subject: [PATCH 244/335] feat(typing): add types to Toeplitz matrix helpers --- sumpy/tools.py | 49 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index f644a3042..036b745cb 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -635,7 +635,13 @@ def nullspace(m: Array2D[Any], atol: float = 0): # {{{ FFT -def fft(seq, inverse=False, sac=None): +# FIXME(pyright): this function can take `ndarrays` and sequences of other types +# as well. The current types are just for uses in `sumpy.expansion.m2l` (same +# for `fft_toeplitz_upper_triangular` and `matvec_toeplitz_upper_triangular`) + +def fft(seq: Sequence[sym.Expr], + inverse: bool = False, + sac: SymbolicAssignmentCollection | None = None) -> Sequence[sym.Expr]: """ Return the discrete fourier transform of the sequence seq. seq should be a python iterable with tuples of length 2 @@ -644,21 +650,31 @@ def fft(seq, inverse=False, sac=None): from pymbolic.algorithm import fft as _fft, ifft as _ifft - def wrap(level, expr): + def wrap(level: int, expr: sym.Expr) -> sym.Expr: if isinstance(expr, np.ndarray): res = [wrap(level, a) for a in expr] return np.array(res, dtype=object).reshape(expr.shape) - return add_to_sac(sac, expr) + else: + return add_to_sac(sac, expr) if inverse: - return _ifft(np.array(seq), wrap_intermediate_with_level=wrap, - complex_dtype=np.complex128).tolist() + result = _ifft( + np.array(seq), + wrap_intermediate_with_level=wrap, + complex_dtype=np.complex128) else: - return _fft(np.array(seq), wrap_intermediate_with_level=wrap, - complex_dtype=np.complex128).tolist() + result = _fft( + np.array(seq), + wrap_intermediate_with_level=wrap, + complex_dtype=np.complex128) + return result.tolist() -def fft_toeplitz_upper_triangular(first_row, x, sac=None): + +def fft_toeplitz_upper_triangular( + first_row: Sequence[sym.Expr], + x: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None = None) -> Sequence[sym.Expr]: """ Returns the matvec of the Toeplitz matrix given by the first row and the vector x using a Fourier transform @@ -668,23 +684,28 @@ def fft_toeplitz_upper_triangular(first_row, x, sac=None): v = list(first_row) v += [0]*(n-1) - x = list(reversed(x)) - x += [0]*(n-1) + y = list(reversed(x)) + y += [0]*(n-1) - v_fft = fft(v, sac) - x_fft = fft(x, sac) + v_fft = fft(v, sac=sac) # pyright: ignore[reportArgumentType] + x_fft = fft(y, sac=sac) # pyright: ignore[reportArgumentType] res_fft = [add_to_sac(sac, a * b) for a, b in zip(v_fft, x_fft, strict=True)] res = fft(res_fft, inverse=True, sac=sac) return list(reversed(res[:n])) -def matvec_toeplitz_upper_triangular(first_row, vector): +def matvec_toeplitz_upper_triangular( + first_row: Sequence[sym.Expr], + vector: Sequence[sym.Expr], + ) -> Sequence[sym.Expr]: n = len(first_row) assert len(vector) == n - output = [0]*n + + output: list[sym.Expr] = [sym.sympify(0)] * n for row in range(n): terms = tuple(first_row[col-row]*vector[col] for col in range(row, n)) output[row] = sym.Add(*terms) + return output From a38965fb55195b7a802e326d6cd5a1ce4462b8f7 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 18 Nov 2025 15:53:44 +0200 Subject: [PATCH 245/335] feat(typing): expand types for get_storage_index --- sumpy/expansion/__init__.py | 64 +++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index da5dba7d2..47087acb6 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -25,7 +25,7 @@ import logging from abc import ABC, abstractmethod from dataclasses import dataclass, field, replace -from typing import TYPE_CHECKING, Any, ClassVar, Protocol, TypeAlias +from typing import TYPE_CHECKING, Any, ClassVar, Protocol, TypeAlias, overload from warnings import warn from typing_extensions import Self, override @@ -388,9 +388,24 @@ def _split_coeffs_into_hyperplanes( class FullExpansionTermsWrangler(ExpansionTermsWrangler): - def get_storage_index(self, mi: MultiIndex, order: int | None = None) -> int: + @overload + def get_storage_index(self, + mi: MultiIndex, + order: int | None = None) -> int: ... + + @overload + def get_storage_index(self, + mi: tuple[prim.ExpressionNode, ...], + order: int | prim.ExpressionNode | None = None, + ) -> prim.ExpressionNode: ... + + def get_storage_index(self, + mi: MultiIndex | tuple[prim.ExpressionNode, ...], + order: int | prim.ExpressionNode | None = None, + ) -> int | prim.ExpressionNode: if not order: order = sum(mi) + if self.dim == 3: return (order*(order + 1)*(order + 2))//6 + \ (order + 2)*mi[2] - (mi[2]*(mi[2] + 1))//2 + mi[1] @@ -670,8 +685,22 @@ def get_full_coefficient_identifiers(self) -> Sequence[MultiIndex]: key, _ = self._get_mi_ordering_key_and_axis_permutation() return sorted(identifiers, key=key) - def get_storage_index(self, mi: MultiIndex, order: int | None = None): - if not order: + @overload + def get_storage_index(self, + mi: MultiIndex, + order: int | None = None) -> int: ... + + @overload + def get_storage_index(self, + mi: tuple[prim.ExpressionNode, ...], + order: int | prim.ExpressionNode | None = None, + ) -> prim.ExpressionNode: ... + + def get_storage_index(self, + mi: MultiIndex | tuple[prim.ExpressionNode, ...], + order: int | prim.ExpressionNode | None = None, + ) -> int | prim.ExpressionNode: + if order is None: order = sum(mi) ordering_key, axis_permutation = \ @@ -684,23 +713,32 @@ def get_storage_index(self, mi: MultiIndex, order: int | None = None): c = max_mi[axis_permutation[0]] - mi = list(mi) - mi[axis_permutation[0]], mi[0] = mi[0], mi[axis_permutation[0]] + new_mi = list(mi) + new_mi[axis_permutation[0]], new_mi[0] = mi[0], mi[axis_permutation[0]] + mi = tuple(new_mi) if self.dim == 3: if all(isinstance(axis, int) for axis in mi): if order < c - 1: - return (order*(order + 1)*(order + 2))//6 + \ - (order + 2)*mi[0] - (mi[0]*(mi[0] + 1))//2 + mi[1] + return ( + (order*(order + 1)*(order + 2))//6 + + (order + 2)*mi[0] + - (mi[0]*(mi[0] + 1))//2 + + mi[1]) else: - return (c*(c-1)*(c-2))//6 + (c * order * (2 + order - c) - + mi[0]*(3 - mi[0]+2*order))//2 + mi[1] + return ( + (c*(c-1)*(c-2))//6 + + (c * order * (2 + order - c) + mi[0]*(3 - mi[0]+2*order))//2 + + mi[1]) else: return prim.If(prim.Comparison(order, "<", c - 1), (order*(order + 1)*(order + 2))//6 - + (order + 2)*mi[0] - (mi[0]*(mi[0] + 1))//2 + mi[1], - (c*(c-1)*(c-2))//6 + (c * order * (2 + order - c) - + mi[0]*(3 - mi[0]+2*order))//2 + mi[1] + + (order + 2)*mi[0] + - (mi[0]*(mi[0] + 1))//2 + + mi[1], + (c*(c-1)*(c-2))//6 + + (c * order * (2 + order - c) + mi[0]*(3 - mi[0]+2*order))//2 + + mi[1] ) elif self.dim == 2: if all(isinstance(axis, int) for axis in mi): From dabfcd18563e4dcc683f348ebf91bc0e90e73841 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 18 Nov 2025 15:54:03 +0200 Subject: [PATCH 246/335] feat(typing): add types to expansion.m2l --- sumpy/expansion/m2l.py | 802 ++++++++++++++++++++++++++--------------- 1 file changed, 502 insertions(+), 300 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 9eb1293a1..14dfd0c58 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -26,39 +26,39 @@ import logging from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Any, ClassVar, TypeAlias, cast +from typing import TYPE_CHECKING, ClassVar, TypeAlias, cast import numpy as np from typing_extensions import override import loopy as lp -import pymbolic import pymbolic.primitives as p import sumpy.symbolic as sym from sumpy.expansion.local import ( FourierBesselLocalExpansionMixin, + LocalExpansionBase, VolumeTaylorLocalExpansionBase, ) from sumpy.expansion.multipole import ( HankelBased2DMultipoleExpansion, + MultipoleExpansionBase, VolumeTaylorMultipoleExpansionBase, ) from sumpy.tools import add_to_sac, matvec_toeplitz_upper_triangular if TYPE_CHECKING: - from collections.abc import Sequence + from collections.abc import Callable, Sequence + + from numpy.typing import DTypeLike + + from pymbolic.typing import ArithmeticExpression + from pytools import Hash + from pytools.persistent_dict import KeyBuilder from sumpy.assignment_collection import SymbolicAssignmentCollection - from sumpy.expansion.local import ( - LocalExpansionBase, - VolumeTaylorLocalExpansion, - ) - from sumpy.expansion.multipole import ( - MultipoleExpansionBase, - VolumeTaylorMultipoleExpansion, - ) + from sumpy.expansion.diff_op import MultiIndex from sumpy.kernel import Kernel @@ -173,7 +173,8 @@ def get_m2l_translation_class( # {{{ M2LTranslationBase -TranslationClassesDepData: TypeAlias = tuple[Any, ...] +TranslationClassesDepData: TypeAlias = tuple[sym.Expr, ...] +OptimizationCallable: TypeAlias = "Callable[[lp.TranslationUnit], lp.TranslationUnit]" class M2LTranslationBase(ABC): @@ -194,12 +195,15 @@ class M2LTranslationBase(ABC): use_fft: ClassVar[bool] = False use_preprocessing: ClassVar[bool] = False - def __setattr__(self, name, value): + # Don't convert to frozen dataclass: plain (non-dc) subclasses wind up mutable. + @override + def __setattr__(self, name: str, value: object) -> None: # These are intended to be stateless. - raise AttributeError(f"{type(self)} is stateless and does not permit " - "attribute modification.") + raise AttributeError( + f"{type(self)} is stateless and does not permit attribute modification") - def __eq__(self, other): + @override + def __eq__(self, other: object) -> bool: return type(self) is type(other) @abstractmethod @@ -260,46 +264,64 @@ def translation_classes_dependent_ndata(self, """ return 0 - def loopy_translation_classes_dependent_data(self, tgt_expansion, - src_expansion, result_dtype): - """Return a :mod:`loopy` kernel that calculates the data described by - :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. - :arg result_dtype: The :mod:`numpy` type of the result. + def loopy_translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + result_dtype: DTypeLike) -> lp.TranslationUnit: + """ + :arg result_dtype: the :mod:`numpy` type of the result. + :returns: a :mod:`loopy` kernel that calculates the data described by + :func:`~sumpy.expansion.m2l.M2LTranslationBase.translation_classes_dependent_data`. """ - return loopy_translation_classes_dependent_data(tgt_expansion, - src_expansion, result_dtype) + return loopy_translation_classes_dependent_data( + tgt_expansion, src_expansion, result_dtype + ) @abstractmethod - def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, - src_coeff_exprs, sac, src_rscale): - """Return the preprocessed multipole expansion for an optimized M2L. + def preprocess_multipole_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None, + src_rscale: sym.Expr, + ) -> Sequence[sym.Expr]: + """Preprocess the multipole expansion for an optimized M2L. + Preprocessing happens once per source box before M2L translation is done. - These expressions are used in a separate :mod:`loopy` kernel - to avoid having to process for each target and source box pair. - When FFT is turned on, the output expressions are assumed to be - transformed into Fourier space at the end by the caller. - When FFT is turned off, the output expressions are equal to the multipole - expansion coefficients with zeros added to make the M2L computation a - circulant matvec. + These expressions are used in a separate :mod:`loopy` kernel to avoid + having to process for each target and source box pair. When FFT is + turned on, the output expressions are assumed to be transformed into + Fourier space at the end by the caller. When FFT is turned off, the + output expressions are equal to the multipole expansion coefficients + with zeros added to make the M2L computation a circulant matrix. """ - def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): + def preprocess_multipole_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> int: """Return the number of expressions returned by :func:`~sumpy.expansion.m2l.M2LTranslationBase.preprocess_multipole_exprs`. + This method exists because calculating the number of expressions using the above method might be costly and it cannot be memoized due to it having side effects through the argument *sac*. """ # For all use-cases we have right now, this is equal to the number of # translation classes dependent exprs. Use that as a default. - return self.translation_classes_dependent_ndata(tgt_expansion, - src_expansion) + return self.translation_classes_dependent_ndata(tgt_expansion, src_expansion) @abstractmethod - def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, - src_rscale, tgt_rscale, sac): - """Return postprocessed local expansion for an optimized M2L. + def postprocess_local_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + m2l_result: Sequence[sym.Expr], + src_rscale: sym.Expr, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None) -> Sequence[sym.Expr]: + """Postprocess the local expansion for an optimized M2L. + Postprocessing happens once per target box just after the M2L translation is done and before storing the expansion coefficients for the local expansion. @@ -308,22 +330,29 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, transformed from Fourier space back to the original space by the caller. """ - def postprocess_local_nexprs(self, tgt_expansion, src_expansion): + def postprocess_local_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase + ) -> int: """Return the number of expressions given as input to :func:`~sumpy.expansion.m2l.M2LTranslationBase.postprocess_local_exprs`. + This method exists because calculating the number of expressions using the above method might be costly and it cannot be memoized due to it having side effects through the argument *sac*. """ # For all use-cases we have right now, this is equal to the number of # translation classes dependent exprs. Use that as a default. - return self.translation_classes_dependent_ndata(tgt_expansion, - src_expansion) + return self.translation_classes_dependent_ndata(tgt_expansion, src_expansion) - def update_persistent_hash(self, key_hash, key_builder): + def update_persistent_hash(self, key_hash: Hash, key_builder: KeyBuilder) -> None: key_hash.update(type(self).__name__.encode("utf8")) - def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): + def optimize_loopy_kernel(self, + knl: lp.TranslationUnit, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> lp.TranslationUnit: return lp.tag_inames(knl, {"itgt_box": "g.0"}) @@ -332,9 +361,17 @@ def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): # {{{ VolumeTaylorM2LTranslation class VolumeTaylorM2LTranslation(M2LTranslationBase): - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - + @override + def translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None) -> Sequence[sym.Expr]: if translation_classes_dependent_data: derivatives = translation_classes_dependent_data else: @@ -347,25 +384,28 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, # Returns a big symbolic sum of matrix entries # (FIXME? Though this is just the correctness-checking # fallback for the FFT anyhow) - result = matvec_toeplitz_upper_triangular(src_coeff_exprs, - derivatives) - + result = matvec_toeplitz_upper_triangular(src_coeff_exprs, derivatives) result = self.postprocess_local_exprs(tgt_expansion, src_expansion, result, src_rscale, tgt_rscale, sac) return result - def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + @override + def translation_classes_dependent_ndata(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> int: """Returns number of expressions in M2L global precomputation step. """ - mis_with_dummy_rows, _, _ = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + mis_with_dummy_rows, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) return len(mis_with_dummy_rows) - def _translation_classes_dependent_data_mis(self, tgt_expansion, - src_expansion): + def _translation_classes_dependent_data_mis(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> tuple[Sequence[MultiIndex], Sequence[MultiIndex], MultiIndex]: """We would like to compute the M2L by way of a circulant matrix below. To get the matrix representing the M2L into circulant form, a certain numbering of rows and columns (as identified by multi-indices) is @@ -393,10 +433,8 @@ def _translation_classes_dependent_data_mis(self, tgt_expansion, # element-wise maximum of target multi-indices. max_mi = [0]*dim for i in range(dim): - max_mi[i] = max(mi[i] for mi in - src_expansion.get_coefficient_identifiers()) - max_mi[i] += max(mi[i] for mi in - tgt_expansion.get_coefficient_identifiers()) + max_mi[i] = max(mi[i] for mi in src_expansion.get_coefficient_identifiers()) + max_mi[i] += max(mi[i] for mi in tgt_expansion.get_coefficient_identifiers()) # noqa: E501 # These are the multi-indices representing the rows # in the circulant matrix. Note that to get the circulant @@ -410,7 +448,8 @@ def _translation_classes_dependent_data_mis(self, tgt_expansion, # These are the multi-indices representing the rows # in the M2L translation matrix without the additional # multi-indices in the circulant matrix - needed_vector_terms = set() + needed_vector_terms: set[MultiIndex] = set() + # For eg: 2D full Taylor Laplace, we only need kernel derivatives # (n1+n2, m1+m2), n1+m1<=p, n2+m2<=p for tgt_deriv in tgt_expansion.get_coefficient_identifiers(): @@ -419,11 +458,16 @@ def _translation_classes_dependent_data_mis(self, tgt_expansion, if needed not in needed_vector_terms: needed_vector_terms.add(needed) - return circulant_matrix_mis, tuple(needed_vector_terms), max_mi - - def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac): + return circulant_matrix_mis, tuple(needed_vector_terms), tuple(max_mi) + @override + def translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_rscale: sym.Expr, + dvec: sym.Matrix, + sac: SymbolicAssignmentCollection | None = None, + ) -> TranslationClassesDepData: assert isinstance(tgt_expansion, VolumeTaylorLocalExpansionBase) assert isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase) @@ -445,106 +489,126 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, if not tgt_expansion.use_rscale: src_rscale = sym.sympify(1) - circulant_matrix_mis, needed_vector_terms, max_mi = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + circulant_matrix_mis, needed_vector_terms, max_mi = ( + self._translation_classes_dependent_data_mis(tgt_expansion, + src_expansion)) - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} + circulant_matrix_ident_to_index = { + ident: i for i, ident in enumerate(circulant_matrix_mis)} # Create a expansion terms wrangler for derivatives up to order # (tgt order)+(src order) including a corresponding reduction matrix # For eg: 2D full Taylor Laplace, this is (n, m), # n+m<=2*p, n<=2*p, m<=2*p - srcplusderiv_terms_wrangler = \ - src_expansion.expansion_terms_wrangler.copy( + srcplusderiv_terms_wrangler = ( + src_expansion.expansion_terms_wrangler.copy( order=tgt_expansion.order + src_expansion.order, - max_mi=tuple(max_mi)) - srcplusderiv_full_coeff_ids = \ - srcplusderiv_terms_wrangler.get_full_coefficient_identifiers() - srcplusderiv_ident_to_index = {ident: i for i, ident in - enumerate(srcplusderiv_full_coeff_ids)} + max_mi=tuple(max_mi))) + srcplusderiv_full_coeff_ids = ( + srcplusderiv_terms_wrangler.get_full_coefficient_identifiers()) + srcplusderiv_ident_to_index = { + ident: i for i, ident in enumerate(srcplusderiv_full_coeff_ids)} # The vector has the kernel derivatives and depends only on the distance # between the two centers taker = src_expansion.kernel.get_derivative_taker(dvec, src_rscale, sac) - vector_stored = [] + vector_stored: list[sym.Expr] = [] + # Calculate the kernel derivatives for the compressed set - for term in \ - srcplusderiv_terms_wrangler.get_coefficient_identifiers(): + for term in srcplusderiv_terms_wrangler.get_coefficient_identifiers(): kernel_deriv = taker.diff(term) vector_stored.append(kernel_deriv) + # Calculate the kernel derivatives for the full set - vector_full = \ + vector_full = ( srcplusderiv_terms_wrangler.get_full_kernel_derivatives_from_stored( - vector_stored, src_rscale) + vector_stored, src_rscale)) for term in srcplusderiv_full_coeff_ids: assert term in needed_vector_terms - vector = [0]*len(needed_vector_terms) + vector: list[sym.Expr] = [sym.sympify(0)] * len(needed_vector_terms) for i, term in enumerate(needed_vector_terms): - vector[i] = add_to_sac(sac, - vector_full[srcplusderiv_ident_to_index[term]]) + vector[i] = add_to_sac(sac, vector_full[srcplusderiv_ident_to_index[term]]) # Add zero values needed to make the translation matrix circulant - derivatives_full = [0]*len(circulant_matrix_mis) + derivatives_full: list[sym.Expr] = [sym.sympify(0)] * len(circulant_matrix_mis) for expr, mi in zip(vector, needed_vector_terms, strict=True): derivatives_full[circulant_matrix_ident_to_index[mi]] = expr - return derivatives_full + return tuple(derivatives_full) - def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, - src_coeff_exprs, sac, src_rscale): - circulant_matrix_mis, _, _ = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} + @override + def preprocess_multipole_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None, + src_rscale: sym.Expr) -> Sequence[sym.Expr]: + circulant_matrix_mis, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) + circulant_matrix_ident_to_index = { + ident: i for i, ident in enumerate(circulant_matrix_mis)} # Calculate the input vector for the circulant matrix - input_vector = [0] * len(circulant_matrix_mis) + input_vector: list[sym.Expr] = [sym.sympify(0)] * len(circulant_matrix_mis) for coeff, term in zip( src_coeff_exprs, src_expansion.get_coefficient_identifiers(), strict=True): - input_vector[circulant_matrix_ident_to_index[term]] = \ - add_to_sac(sac, coeff) + input_vector[circulant_matrix_ident_to_index[term]] = add_to_sac(sac, coeff) return input_vector - def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): - circulant_matrix_mis, _, _ = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + @override + def preprocess_multipole_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> int: + circulant_matrix_mis, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) + return len(circulant_matrix_mis) - def loopy_preprocess_multipole(self, tgt_expansion, src_expansion, - result_dtype): + def loopy_preprocess_multipole(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + # FIXME: why is result_dtype unused here? + result_dtype: DTypeLike, + ) -> tuple[lp.TranslationUnit, Sequence[OptimizationCallable]]: + assert isinstance(tgt_expansion, VolumeTaylorLocalExpansionBase) + assert isinstance(src_expansion, VolumeTaylorMultipoleExpansionBase) - _circulant_matrix_mis, _, max_mi = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + _, _, max_mi = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) ncoeff_src = len(src_expansion.get_coefficient_identifiers()) - ncoeff_preprocessed = self.preprocess_multipole_nexprs(tgt_expansion, - src_expansion) + ncoeff_preprocessed = self.preprocess_multipole_nexprs( + tgt_expansion, src_expansion) order = src_expansion.order - output_coeffs = pymbolic.var("output_coeffs") - input_coeffs = pymbolic.var("input_coeffs") - output_icoeff = pymbolic.var("output_icoeff") - input_icoeff = pymbolic.var("input_icoeff") - input_coeffs_copy = pymbolic.var("input_coeffs_copy") + output_coeffs = p.Variable("output_coeffs") + input_coeffs = p.Variable("input_coeffs") + output_icoeff = p.Variable("output_icoeff") + input_icoeff = p.Variable("input_icoeff") + input_coeffs_copy = p.Variable("input_coeffs_copy") dim = tgt_expansion.dim - v = [pymbolic.var(f"x{i}") for i in range(dim)] + v = tuple(p.Variable(f"x{i}") for i in range(dim)) + + from sumpy.expansion import ( + FullExpansionTermsWrangler, + LinearPDEBasedExpansionTermsWrangler, + ) wrangler = src_expansion.expansion_terms_wrangler + assert isinstance(wrangler, (FullExpansionTermsWrangler, + LinearPDEBasedExpansionTermsWrangler)) + _, axis_permutation = wrangler._get_mi_ordering_key_and_axis_permutation() slowest_idx = axis_permutation[0] + # max_mi[slowest_idx] = 2*(c - 1) c = max_mi[slowest_idx] // 2 + 1 - noutput_coeffs = c * (2*order + 1) ** (dim - 1) + noutput_coeffs = cast("int", c * (2*order + 1) ** (dim - 1)) domains = [ "{[output_icoeff]: 0<=output_icoeff Sequence[sym.Expr]: + circulant_matrix_mis, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) + circulant_matrix_ident_to_index = { + ident: i for i, ident in enumerate(circulant_matrix_mis)} # Filter out the dummy rows and scale them for target rscale_ratio = add_to_sac(sac, tgt_rscale/src_rscale) @@ -631,21 +702,26 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, return result - def postprocess_local_nexprs(self, tgt_expansion, src_expansion): - return self.translation_classes_dependent_ndata( - tgt_expansion, src_expansion) + @override + def postprocess_local_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> int: + return self.translation_classes_dependent_ndata(tgt_expansion, src_expansion) - def loopy_postprocess_local(self, tgt_expansion, src_expansion, - result_dtype): - circulant_matrix_mis, _needed_vector_terms, _ = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) - circulant_matrix_ident_to_index = {ident: i for i, ident in - enumerate(circulant_matrix_mis)} + def loopy_postprocess_local(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + result_dtype: DTypeLike, + ) -> tuple[lp.TranslationUnit, Sequence[OptimizationCallable]]: + circulant_matrix_mis, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) + circulant_matrix_ident_to_index = { + ident: i for i, ident in enumerate(circulant_matrix_mis)} ncoeff_tgt = len(tgt_expansion.get_coefficient_identifiers()) - ncoeff_before_postprocessed = self.postprocess_local_nexprs(tgt_expansion, - src_expansion) + ncoeff_before_postprocessed = self.postprocess_local_nexprs( + tgt_expansion, src_expansion) order = tgt_expansion.order fixed_parameters = { @@ -660,9 +736,9 @@ def loopy_postprocess_local(self, tgt_expansion, src_expansion, insns = ["<> rscale_ratio = tgt_rscale / src_rscale {id=rscale_ratio}"] - rscale_arr = pymbolic.var("rscale_arr") - rscale_ratio = pymbolic.var("rscale_ratio") - iorder = pymbolic.var("iorder") + rscale_arr = p.Variable("rscale_arr") + rscale_ratio = p.Variable("rscale_ratio") + iorder = p.Variable("iorder") insns += [ lp.Assignment( @@ -679,18 +755,17 @@ def loopy_postprocess_local(self, tgt_expansion, src_expansion, ), ] - if self.use_fft and result_dtype in \ - (np.float64, np.float32): - result_func = pymbolic.var("real") + if self.use_fft and result_dtype in (np.float64, np.float32): + result_func = p.Variable("real") else: - def result_func(x): + def result_func(x: ArithmeticExpression) -> ArithmeticExpression: return x - output_coeffs = pymbolic.var("output_coeffs") - input_coeffs = pymbolic.var("input_coeffs") - src_idx_sym = pymbolic.var("src_idx") - rscale_idx_arr_sym = pymbolic.var("rscale_idx_arr") - output_icoeff_sym = pymbolic.var("output_icoeff") + output_coeffs = p.Variable("output_coeffs") + input_coeffs = p.Variable("input_coeffs") + src_idx_sym = p.Variable("src_idx") + rscale_idx_arr_sym = p.Variable("rscale_idx_arr") + output_icoeff_sym = p.Variable("output_icoeff") src_idx = np.full(ncoeff_tgt, -1, dtype=np.int32) for output_icoeff, term in enumerate( @@ -712,7 +787,8 @@ def result_func(x): insns += [ lp.Assignment( assignee=output_coeffs[output_icoeff_sym], - expression=(result_func(input_coeffs[src_idx_sym[output_icoeff_sym]]) + expression=( + result_func(input_coeffs[src_idx_sym[output_icoeff_sym]]) * rscale_arr[rscale_idx_arr_sym[output_icoeff_sym]]), id="coeff_insn", happens_after=frozenset(["rscale_arr"]), @@ -723,12 +799,9 @@ def result_func(x): "{[output_icoeff]: 0<=output_icoeff Sequence[sym.Expr]: assert translation_classes_dependent_data + derivatives = translation_classes_dependent_data # Returns a big symbolic sum of matrix entries # (FIXME? Though this is just the correctness-checking # fallback for the FFT anyhow) - result = matvec_toeplitz_upper_triangular(src_coeff_exprs, - derivatives) + result = matvec_toeplitz_upper_triangular(src_coeff_exprs, derivatives) + return result - def loopy_translate(self, tgt_expansion, src_expansion): - ncoeff_src = self.preprocess_multipole_nexprs(tgt_expansion, - src_expansion) + @override + def loopy_translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> lp.TranslationUnit: + ncoeff_src = self.preprocess_multipole_nexprs(tgt_expansion, src_expansion) ncoeff_tgt = self.postprocess_local_nexprs(tgt_expansion, src_expansion) - icoeff_src = pymbolic.var("icoeff_src") - icoeff_tgt = pymbolic.var("icoeff_tgt") + + icoeff_src = p.Variable("icoeff_src") + icoeff_tgt = p.Variable("icoeff_tgt") domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] - tgt_coeffs = pymbolic.var("tgt_coeffs") - src_coeffs = pymbolic.var("src_coeffs") - translation_classes_dependent_data = pymbolic.var("data") + tgt_coeffs = p.Variable("tgt_coeffs") + src_coeffs = p.Variable("src_coeffs") + translation_classes_dependent_data = p.Variable("data") if self.use_fft: - expr = src_coeffs[icoeff_tgt] \ - * translation_classes_dependent_data[icoeff_tgt] + expr = src_coeffs[icoeff_tgt]*translation_classes_dependent_data[icoeff_tgt] else: toeplitz_first_row = src_coeffs[icoeff_src-icoeff_tgt] vector = translation_classes_dependent_data[icoeff_src] expr = toeplitz_first_row * vector - domains.append( - f"{{[icoeff_src]: icoeff_tgt<=icoeff_src<{ncoeff_src} }}") - expr = src_coeffs[icoeff_tgt] \ - * translation_classes_dependent_data[icoeff_tgt] + domains.append(f"{{[icoeff_src]: icoeff_tgt<=icoeff_src<{ncoeff_src} }}") + + expr = src_coeffs[icoeff_tgt] * translation_classes_dependent_data[icoeff_tgt] insns = [ lp.Assignment( @@ -804,17 +896,23 @@ def loopy_translate(self, tgt_expansion, src_expansion): expression=tgt_coeffs[icoeff_tgt] + expr ), ] - return lp.make_function(domains, insns, - kernel_data=[ - lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, - is_output=True), - lp.GlobalArg("src_coeffs, data", - shape=lp.auto, is_input=True, is_output=False), - lp.ValueArg("src_rscale, tgt_rscale", is_input=True), - ...], - name="e2e", - lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - ) + + knl = lp.make_function( + domains, + insns, + kernel_data=[ + lp.GlobalArg("tgt_coeffs", + shape=lp.auto, is_input=True, is_output=True), + lp.GlobalArg("src_coeffs, data", + shape=lp.auto, is_input=True, is_output=False), + lp.ValueArg("src_rscale, tgt_rscale", is_input=True), + ...], + name="e2e", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + ) + + return knl + # }}} VolumeTaylorM2LWithPreprocessedMultipoles @@ -824,24 +922,34 @@ def loopy_translate(self, tgt_expansion, src_expansion): class VolumeTaylorM2LWithFFT(VolumeTaylorM2LWithPreprocessedMultipoles): use_fft: ClassVar[bool] = True + @override def translate(self, - tgt_expansion: VolumeTaylorLocalExpansion, - src_expansion: VolumeTaylorMultipoleExpansion, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, src_coeff_exprs: Sequence[sym.Expr], src_rscale: sym.Expr, dvec: sym.Matrix, tgt_rscale: sym.Expr, sac: SymbolicAssignmentCollection | None = None, - translation_classes_dependent_data=None): - + translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None, + ) -> Sequence[sym.Expr]: assert translation_classes_dependent_data + derivatives = translation_classes_dependent_data assert len(src_coeff_exprs) == len(derivatives) + result = [a*b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] return result - def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac): + @override + def translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_rscale: sym.Expr, + dvec: sym.Matrix, + sac: SymbolicAssignmentCollection | None = None, + ) -> TranslationClassesDepData: """Return an iterable of expressions that needs to be precomputed for multipole-to-local translations that depend only on the distance between the multipole center and the local center which @@ -851,19 +959,27 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, """ derivatives_full = super().translation_classes_dependent_data( tgt_expansion, src_expansion, src_rscale, dvec, sac) + # Note that the matrix we have now is a mirror image of a # circulant matrix. We reverse the first column to get the # first column for the circulant matrix and then finally # use the FFT for convolution represented by the circulant # matrix. - return list(reversed(derivatives_full)) + return tuple(reversed(derivatives_full)) - def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, - src_rscale, tgt_rscale, sac): - circulant_matrix_mis, _, _ = \ - self._translation_classes_dependent_data_mis(tgt_expansion, - src_expansion) + @override + def postprocess_local_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + m2l_result: Sequence[sym.Expr], + src_rscale: sym.Expr, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + ) -> Sequence[sym.Expr]: + circulant_matrix_mis, _, _ = self._translation_classes_dependent_data_mis( + tgt_expansion, src_expansion) n = len(circulant_matrix_mis) + # since we reversed the M2L matrix, we reverse the result # to get the correct result m2l_result = list(reversed(m2l_result[:n])) @@ -871,7 +987,12 @@ def postprocess_local_exprs(self, tgt_expansion, src_expansion, m2l_result, return super().postprocess_local_exprs(tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) - def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): + @override + def optimize_loopy_kernel(self, + knl: lp.TranslationUnit, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> lp.TranslationUnit: # Transform the kernel so that icoeff_tgt and its duplicates # become the outermost iname inames = knl.default_entrypoint.all_inames() @@ -881,12 +1002,14 @@ def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): knl = lp.add_inames_to_insn(knl, "icoeff_tgt", None) # unprivatize icoeff_tgt because it is the outermost iname - knl = lp.unprivatize_temporaries_with_inames(knl, - {"icoeff_tgt"}, {"tgt_expansion"}) + knl = lp.unprivatize_temporaries_with_inames( + knl, + frozenset({"icoeff_tgt"}), frozenset({"tgt_expansion"})) knl = lp.split_iname(knl, "icoeff_tgt", 64, inner_iname="inner", - inner_tag="l.0", outer_tag="g.1") + inner_tag="l.0", outer_tag="g.1") knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) + return knl @@ -895,9 +1018,17 @@ def optimize_loopy_kernel(self, knl, tgt_expansion, src_expansion): # {{{ FourierBesselM2LTranslation class FourierBesselM2LTranslation(M2LTranslationBase): - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - + @override + def translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None) -> Sequence[sym.Expr]: if translation_classes_dependent_data is None: derivatives = self.translation_classes_dependent_data(tgt_expansion, src_expansion, src_rscale, dvec, sac=sac) @@ -908,9 +1039,10 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, src_expansion, src_coeff_exprs, sac, src_rscale) translated_coeffs = [ - sum(derivatives[m + j + tgt_expansion.order + src_expansion.order] - * src_coeff_exprs[src_expansion.get_storage_index((m,))] - for m, in src_expansion.get_coefficient_identifiers()) + sum((derivatives[m + j + tgt_expansion.order + src_expansion.order] + * src_coeff_exprs[src_expansion.get_storage_index((m,))] + for m, in src_expansion.get_coefficient_identifiers()), + sym.sympify(0)) for j, in tgt_expansion.get_coefficient_identifiers()] translated_coeffs = self.postprocess_local_exprs(tgt_expansion, @@ -919,7 +1051,11 @@ def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, return translated_coeffs - def translation_classes_dependent_ndata(self, tgt_expansion, src_expansion): + @override + def translation_classes_dependent_ndata(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + ) -> int: nexpr = 2 * tgt_expansion.order + 2 * src_expansion.order + 1 return nexpr @@ -929,19 +1065,18 @@ def translation_classes_dependent_data(self, src_expansion: MultipoleExpansionBase, src_rscale: sym.Expr, dvec: sym.Matrix, - sac: SymbolicAssignmentCollection | None = None): - + sac: SymbolicAssignmentCollection | None = None, + ) -> TranslationClassesDepData: assert isinstance(tgt_expansion, FourierBesselLocalExpansionMixin) assert isinstance(src_expansion, HankelBased2DMultipoleExpansion) - from sumpy.symbolic import Hankel1, sym_real_norm_2 - - dvec_len = sym_real_norm_2(dvec) + dvec_len = sym.sym_real_norm_2(dvec) new_center_angle_rel_old_center = sym.atan2(dvec[1], dvec[0]) arg_scale = tgt_expansion.get_bessel_arg_scaling() + # [-(src_order+tgt_order), ..., 0, ..., (src_order + tgt_order)] - translation_classes_dependent_data: list[sym.Expr] = \ - [sym.sympify(0)] * (2*tgt_expansion.order + 2 * src_expansion.order + 1) + translation_classes_dependent_data: list[sym.Expr] = ( + [sym.sympify(0)] * (2*tgt_expansion.order + 2 * src_expansion.order + 1)) # The M2L is a mirror image of a Toeplitz matvec with Hankel function # evaluations. https://dlmf.nist.gov/10.23.F1 @@ -952,34 +1087,51 @@ def translation_classes_dependent_data(self, for m, in src_expansion.get_coefficient_identifiers(): idx_m = src_expansion.get_storage_index((m,)) translation_classes_dependent_data[idx_j + idx_m] = ( - Hankel1(m + j, arg_scale * dvec_len, 0) + sym.Hankel1(m + j, arg_scale * dvec_len, 0) * sym.exp(sym.I * (m + j) * new_center_angle_rel_old_center)) return tuple(translation_classes_dependent_data) - def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, - src_coeff_exprs, sac, src_rscale): - + @override + def preprocess_multipole_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None, + src_rscale: sym.Expr) -> Sequence[sym.Expr]: src_coeff_exprs = list(src_coeff_exprs) for m, in src_expansion.get_coefficient_identifiers(): src_coeff_exprs[src_expansion.get_storage_index((m,))] *= src_rscale**abs(m) + return src_coeff_exprs - def preprocess_multipole_nexprs(self, tgt_expansion, src_expansion): + @override + def preprocess_multipole_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> int: return 2*src_expansion.order + 1 - def postprocess_local_exprs(self, tgt_expansion, src_expansion, - m2l_result, src_rscale, tgt_rscale, sac): - + @override + def postprocess_local_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + m2l_result: Sequence[sym.Expr], + src_rscale: sym.Expr, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None) -> Sequence[sym.Expr]: # Filter out the dummy rows and scale them for target - result = [] + result: list[sym.Expr] = [] for j, in tgt_expansion.get_coefficient_identifiers(): - result.append(m2l_result[tgt_expansion.get_storage_index((j,))] + result.append( + m2l_result[tgt_expansion.get_storage_index((j,))] * tgt_rscale**(abs(j)) * sym.Integer(-1)**j) return result - def postprocess_local_nexprs(self, tgt_expansion, src_expansion): + @override + def postprocess_local_nexprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> int: return 2*tgt_expansion.order + 1 # }}} FourierBesselM2LTranslation @@ -990,58 +1142,72 @@ def postprocess_local_nexprs(self, tgt_expansion, src_expansion): class FourierBesselM2LWithPreprocessedMultipoles(FourierBesselM2LTranslation): use_preprocessing: ClassVar[bool] = True - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - + @override + def translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None) -> Sequence[sym.Expr]: assert translation_classes_dependent_data derivatives = translation_classes_dependent_data translated_coeffs = [ - sum(derivatives[m + j + tgt_expansion.order + src_expansion.order] - * src_coeff_exprs[src_expansion.get_storage_index(m)] - for m in src_expansion.get_coefficient_identifiers()) - for j in tgt_expansion.get_coefficient_identifiers()] + sum((derivatives[m + j + tgt_expansion.order + src_expansion.order] + * src_coeff_exprs[src_expansion.get_storage_index((m,))] + for m, in src_expansion.get_coefficient_identifiers()), + sym.sympify(0)) + for j, in tgt_expansion.get_coefficient_identifiers() + ] return translated_coeffs - def loopy_translate(self, tgt_expansion, src_expansion): + @override + def loopy_translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> lp.TranslationUnit: ncoeff_src = self.preprocess_multipole_nexprs(tgt_expansion, src_expansion) ncoeff_tgt = self.postprocess_local_nexprs(tgt_expansion, src_expansion) - icoeff_src = pymbolic.var("icoeff_src") - icoeff_tgt = pymbolic.var("icoeff_tgt") + icoeff_src = p.Variable("icoeff_src") + icoeff_tgt = p.Variable("icoeff_tgt") domains = [f"{{[icoeff_tgt]: 0<=icoeff_tgt<{ncoeff_tgt} }}"] - tgt_coeffs = pymbolic.var("tgt_coeffs") - src_coeffs = pymbolic.var("src_coeffs") - translation_classes_dependent_data = pymbolic.var("data") + tgt_coeffs = p.Variable("tgt_coeffs") + src_coeffs = p.Variable("src_coeffs") + translation_classes_dependent_data = p.Variable("data") if self.use_fft: - expr = src_coeffs[icoeff_tgt] \ - * translation_classes_dependent_data[icoeff_tgt] + expr = (src_coeffs[icoeff_tgt] + * translation_classes_dependent_data[icoeff_tgt]) else: - expr = src_coeffs[icoeff_src] \ - * translation_classes_dependent_data[ - icoeff_tgt + icoeff_src] - domains.append( - f"{{[icoeff_src]: 0<=icoeff_src<{ncoeff_src} }}") + expr = (src_coeffs[icoeff_src] + * translation_classes_dependent_data[icoeff_tgt + icoeff_src]) + domains.append(f"{{[icoeff_src]: 0<=icoeff_src<{ncoeff_src} }}") insns = [ lp.Assignment( assignee=tgt_coeffs[icoeff_tgt], expression=tgt_coeffs[icoeff_tgt] + expr), ] - return lp.make_function(domains, insns, - kernel_data=[ - lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, - is_output=True), - lp.GlobalArg("src_coeffs, data", - shape=lp.auto, is_input=True, is_output=False), - lp.ValueArg("src_rscale, tgt_rscale", is_input=True), - ...], - name="e2e", - lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, - ) + + knl = lp.make_function(domains, insns, + kernel_data=[ + lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, + is_output=True), + lp.GlobalArg("src_coeffs, data", + shape=lp.auto, is_input=True, is_output=False), + lp.ValueArg("src_rscale, tgt_rscale", is_input=True), + ...], + name="e2e", + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + ) + + return knl # }}} FourierBesselM2LWithPreprocessedMultipoles @@ -1051,7 +1217,7 @@ def loopy_translate(self, tgt_expansion, src_expansion): class FourierBesselM2LWithFFT(FourierBesselM2LWithPreprocessedMultipoles): use_fft: ClassVar[bool] = True - def __init__(self): + def __init__(self) -> None: # FIXME: expansion with FFT is correct symbolically and can be verified # with sympy. However there are numerical issues that we have to deal # with. Greengard and Rokhlin 1988 attributes this to numerical @@ -1060,24 +1226,43 @@ def __init__(self): # might be the reason for this numerical issue. raise ValueError("Bessel based expansions with FFT are not supported yet.") - def translate(self, tgt_expansion, src_expansion, src_coeff_exprs, src_rscale, - dvec, tgt_rscale, sac=None, translation_classes_dependent_data=None): - + @override + def translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + src_rscale: sym.Expr, + dvec: sym.Matrix, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None, + translation_classes_dependent_data: ( + TranslationClassesDepData | None) = None) -> Sequence[sym.Expr]: assert translation_classes_dependent_data is not None + derivatives = translation_classes_dependent_data assert len(derivatives) == len(src_coeff_exprs) + return [a * b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] - def loopy_translate(self, tgt_expansion, src_expansion): + @override + def loopy_translate(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase) -> lp.TranslationUnit: raise NotImplementedError - def translation_classes_dependent_data(self, tgt_expansion, src_expansion, - src_rscale, dvec, sac=None): - - translation_classes_dependent_data = \ - super().translation_classes_dependent_data(tgt_expansion, - src_expansion, src_rscale, dvec, sac) + @override + def translation_classes_dependent_data(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_rscale: sym.Expr, + dvec: sym.Matrix, + sac: SymbolicAssignmentCollection | None = None, + ) -> TranslationClassesDepData: + translation_classes_dependent_data = ( + super().translation_classes_dependent_data( + tgt_expansion, src_expansion, src_rscale, dvec, sac)) order = src_expansion.order + # For this expansion, we have a mirror image of a Toeplitz matrix. # First, we have to take the mirror image of the M2L matrix. # @@ -1087,74 +1272,91 @@ def translation_classes_dependent_data(self, tgt_expansion, src_expansion, # the last column of the M2L matrix. The second part is the # reverse of the first row of the Toeplitz matrix which # is the reverse of the first row of the M2L matrix. - first_row_m2l, last_column_m2l = \ - translation_classes_dependent_data[:2*order], \ - translation_classes_dependent_data[2*order:] + first_row_m2l, last_column_m2l = ( + translation_classes_dependent_data[:2*order], + translation_classes_dependent_data[2*order:]) + first_column_toeplitz = last_column_m2l first_row_toeplitz = list(reversed(first_row_m2l)) - first_column_circulant = list(first_column_toeplitz) + \ - list(reversed(first_row_toeplitz)) - return tuple(first_column_circulant) + first_column_circulant = ( + list(first_column_toeplitz) + + list(reversed(first_row_toeplitz))) - def preprocess_multipole_exprs(self, tgt_expansion, src_expansion, - src_coeff_exprs, sac, src_rscale): + return tuple(first_column_circulant) - result = super().preprocess_multipole_exprs(tgt_expansion, - src_expansion, src_coeff_exprs, sac, src_rscale) + @override + def preprocess_multipole_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + src_coeff_exprs: Sequence[sym.Expr], + sac: SymbolicAssignmentCollection | None, + src_rscale: sym.Expr) -> Sequence[sym.Expr]: + result = super().preprocess_multipole_exprs( + tgt_expansion, src_expansion, src_coeff_exprs, sac, src_rscale) result = list(reversed(result)) - result += [0] * (len(result) - 1) - return result + result += [sym.sympify(0)] * (len(result) - 1) - def postprocess_local_exprs(self, tgt_expansion, src_expansion, - m2l_result, src_rscale, tgt_rscale, sac): + return result - m2l_result = m2l_result[:2*tgt_expansion.order+1] - return super().postprocess_local_exprs(tgt_expansion, - src_expansion, m2l_result, src_rscale, tgt_rscale, sac) + @override + def postprocess_local_exprs(self, + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + m2l_result: Sequence[sym.Expr], + src_rscale: sym.Expr, + tgt_rscale: sym.Expr, + sac: SymbolicAssignmentCollection | None = None) -> Sequence[sym.Expr]: + m2l_result = m2l_result[:2*tgt_expansion.order + 1] + return super().postprocess_local_exprs( + tgt_expansion, src_expansion, m2l_result, src_rscale, tgt_rscale, sac) # }}} FourierBesselM2LWithFFT # {{{ loopy_translation_classes_dependent_data -def loopy_translation_classes_dependent_data(tgt_expansion, src_expansion, - result_dtype): +def loopy_translation_classes_dependent_data( + tgt_expansion: LocalExpansionBase, + src_expansion: MultipoleExpansionBase, + result_dtype: DTypeLike) -> lp.TranslationUnit: """ This is a helper function to create a loopy kernel to generate translation classes dependent data. This function uses symbolic expressions given by the - M2L translation, converts them to pymbolic expressions and generates a loopy + M2L translation, converts them to pymboltc expressions and generates a loopy kernel. Note that the loopy kernel returned has lots of expressions in it and takes a long time. Therefore, this function should be used only as a fallback when there is no "loop-y" kernel to calculate the data. """ src_rscale = sym.Symbol("src_rscale") dvec = sym.make_sym_vector("d", tgt_expansion.dim) + from sumpy.assignment_collection import SymbolicAssignmentCollection + sac = SymbolicAssignmentCollection() derivatives = tgt_expansion.m2l_translation.translation_classes_dependent_data( tgt_expansion, src_expansion, src_rscale, dvec, sac) vec_name = "m2l_translation_classes_dependent_data" - tgt_coeff_names = [ - sac.assign_unique(f"m2l_translation_classes_dependent_data{i}", - coeff_i) + sac.assign_unique(f"m2l_translation_classes_dependent_data{i}", coeff_i) for i, coeff_i in enumerate(derivatives)] sac.run_global_cse() from sumpy.codegen import to_loopy_insns from sumpy.tools import to_complex_dtype + insns = to_loopy_insns( sac.assignments.items(), - vector_names=frozenset({"d"}), + vector_names=frozenset(["d"]), pymbolic_expr_maps=[tgt_expansion.get_code_transformer()], - retain_names=tgt_coeff_names, + retain_names=frozenset(tgt_coeff_names), complex_dtype=to_complex_dtype(result_dtype), ) + insns = list(insns) - data = pymbolic.var("m2l_translation_classes_dependent_data") + data = p.Variable("m2l_translation_classes_dependent_data") happens_after = None for i in range(len(insns)): insn = insns[i] From 29acae25ca0515f25c7aa6c3c527ef52fa91e0f3 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 18 Nov 2025 16:24:59 +0200 Subject: [PATCH 247/335] feat(typing): add types to expansion.loopy --- sumpy/expansion/loopy.py | 132 +++++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 60 deletions(-) diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index 79b28beee..b662808c3 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -29,7 +29,7 @@ import numpy as np import loopy as lp -import pymbolic +import pymbolic.primitives as prim import sumpy.symbolic as sym from sumpy.assignment_collection import SymbolicAssignmentCollection @@ -39,6 +39,8 @@ if TYPE_CHECKING: from collections.abc import Sequence + from pymbolic.typing import ArithmeticExpression + from sumpy.expansion import ExpansionBase from sumpy.kernel import Kernel @@ -49,27 +51,30 @@ def make_e2p_loopy_kernel( expansion: ExpansionBase, kernels: Sequence[Kernel]) -> lp.TranslationUnit: """ - This is a helper function to create a loopy kernel for multipole/local - evaluation. This function uses symbolic expressions given by the expansion class, - converts them to pymbolic expressions and generates a loopy - kernel. Note that the loopy kernel returned has lots of expressions in it and - takes a long time. Therefore, this function should be used only as a fallback - when there is no "loop-y" kernel to evaluate the expansion. + A helper function that creates a :mod:`loopy` kernel for multipole/local evaluation. + + This function uses symbolic expressions given by the expansion class, + converts them to :mod:`pymbolic` expressions and generates a :mod:`loopy` + kernel. Note that the :mod:`loopy` kernel returned has lots of expressions + in it and (likely) takes a long time. Therefore, this function should be + used only as a fallback when there is no "loop-y" kernel to evaluate the + expansion. """ - dim = expansion.dim - bvec = sym.make_sym_vector("b", dim) + sac = SymbolicAssignmentCollection() + + dim = expansion.dim ncoeffs = len(expansion.get_coefficient_identifiers()) + bvec = sym.make_sym_vector("b", dim) rscale = sym.Symbol("rscale") - sac = SymbolicAssignmentCollection() - domains = [ "{[idim]: 0<=idim lp.TranslationUnit: + expansion: ExpansionBase, + kernels: Sequence[Kernel], + strength_usage: Sequence[int], + nstrengths: int) -> lp.TranslationUnit: """ - This is a helper function to create a loopy kernel for multipole/local - expression. This function uses symbolic expressions given by the expansion - class, converts them to pymbolic expressions and generates a loopy - kernel. Note that the loopy kernel returned has lots of expressions in it and - takes a long time. Therefore, this function should be used only as a fallback - when there is no "loop-y" kernel to evaluate the expansion. + A helper function that creates a :mod:`loopy` kernel for multipole/local evaluation. + + This function uses symbolic expressions given by the expansion class, + converts them to :mod:`pymbolic` expressions and generates a :mod:`loopy` + kernel. Note that the :mod:`loopy` kernel returned has lots of expressions + in it and (likely) takes a long time. Therefore, this function should be + used only as a fallback when there is no "loop-y" kernel to evaluate the + expansion. """ - dim = expansion.dim + sac = SymbolicAssignmentCollection() - avec = sym.make_sym_vector("a", dim) + dim = expansion.dim ncoeffs = len(expansion.get_coefficient_identifiers()) + avec = sym.make_sym_vector("a", dim) rscale = sym.Symbol("rscale") - sac = SymbolicAssignmentCollection() - domains = [ "{[idim]: 0<=idim Date: Fri, 21 Nov 2025 15:13:17 +0200 Subject: [PATCH 248/335] feat(typing): update call type in p2p --- sumpy/p2p.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 683c30acf..a5d2bb89a 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -763,7 +763,7 @@ def get_optimized_kernel(self, max_nsources_in_one_box, # be as large as before. Need to simplify before unprivatizing knl = lp.simplify_indices(knl) knl = lp.unprivatize_temporaries_with_inames(knl, - "iprefetch", only_var_names=local_arrays) + "iprefetch", only_var_names=frozenset(local_arrays)) knl = lp.add_inames_to_insn(knl, "inner", "id:init_* or id:*_scaling or id:src_box_insn_*") From bf6dd8e4fe304a5ef2953df0b74798b36e24c539 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 21 Nov 2025 15:55:31 +0200 Subject: [PATCH 249/335] chore: update baseline --- .basedpyright/baseline.json | 9860 ++++++++--------------------------- 1 file changed, 2314 insertions(+), 7546 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 8a15fab41..f56903c82 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -8453,23 +8453,7 @@ "code": "reportAssignmentType", "range": { "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 8, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 33, - "endColumn": 35, + "endColumn": 26, "lineCount": 1 } }, @@ -8510,80 +8494,24 @@ { "code": "reportMissingTypeStubs", "range": { - "startColumn": 7, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 7, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 9, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 47, + "startColumn": 33, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 18, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 17, + "endColumn": 69, "lineCount": 1 } }, @@ -8598,16 +8526,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, @@ -8622,24 +8542,24 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 2 + "startColumn": 9, + "endColumn": 67, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 17, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 17, + "endColumn": 31, "lineCount": 1 } }, @@ -8659,34 +8579,10 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, "endColumn": 29, "lineCount": 1 } @@ -8695,63 +8591,55 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 11, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 35, - "endColumn": 39, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 79, + "startColumn": 39, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 81, + "startColumn": 39, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 47, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 50, + "startColumn": 23, + "endColumn": 46, "lineCount": 1 } }, @@ -8782,24 +8670,24 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 62, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 30, - "lineCount": 2 + "startColumn": 19, + "endColumn": 50, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, @@ -8814,16 +8702,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, @@ -8870,40 +8750,32 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 48, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 50, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 69, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, @@ -8924,122 +8796,126 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/level_to_order.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 11, - "endColumn": 18, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 47, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 39, - "endColumn": 46, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 49, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 59, + "endColumn": 67, + "lineCount": 1 + } + } + ], + "./sumpy/expansion/local.py": [ + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 49, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 46, - "endColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 21, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 43, - "endColumn": 57, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, @@ -9047,5039 +8923,299 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 54, - "endColumn": 57, + "endColumn": 62, "lineCount": 1 } } ], - "./sumpy/expansion/level_to_order.py": [ + "./sumpy/expansion/loopy.py": [ { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/m2l.py": [ { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnusedParameter", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, + "startColumn": 16, "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 53, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 31, - "endColumn": 42, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 35, - "lineCount": 1 + "startColumn": 27, + "endColumn": 18, + "lineCount": 4 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 74, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 63, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 45, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 71, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 14, "endColumn": 35, "lineCount": 1 } }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 44, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 44, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 26, - "lineCount": 6 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 5 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/local.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 42, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 46, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/loopy.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 36, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/m2l.py": [ - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 55, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 55, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 65, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 52, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 52, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 73, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 73, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 64, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 27, - "endColumn": 18, - "lineCount": 4 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 72, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 58, - "lineCount": 2 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 64, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 64, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "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": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 68, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 69, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 65, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 86, - "endColumn": 87, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 68, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 58, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 64, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 60, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 60, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 14, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 59, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -14092,10 +9228,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 37, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } } @@ -15279,14 +10415,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 72, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -29140,265 +24268,41 @@ { "code": "reportArgumentType", "range": { - "startColumn": 46, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 53, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 32, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 36, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 18, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 + "startColumn": 19, + "endColumn": 53, + "lineCount": 2 } }, { @@ -29436,79 +24340,79 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 69, + "startColumn": 34, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 45, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, + "startColumn": 30, "endColumn": 40, "lineCount": 1 } @@ -29516,215 +24420,191 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 68, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 50, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 2 + "startColumn": 12, + "endColumn": 34, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 61, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 34, + "startColumn": 55, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 14, "endColumn": 26, "lineCount": 1 } @@ -29732,7 +24612,7 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, + "startColumn": 14, "endColumn": 26, "lineCount": 1 } @@ -29740,7 +24620,7 @@ { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 21, + "startColumn": 19, "endColumn": 26, "lineCount": 1 } @@ -29748,391 +24628,367 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 28, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { "startColumn": 16, - "endColumn": 26, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 22, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 54, + "startColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 52, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 + "startColumn": 23, + "endColumn": 57, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 49, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, + "startColumn": 34, "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 30, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 19, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 69, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 49, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 51, + "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, + "startColumn": 12, "endColumn": 23, "lineCount": 1 } @@ -30140,64 +24996,64 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 15 + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 46, - "lineCount": 15 + "startColumn": 12, + "endColumn": 14, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 7, - "endColumn": 14, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 60, - "endColumn": 63, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, @@ -30205,398 +25061,406 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 17, - "endColumn": 24, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 2 + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 32, + "startColumn": 64, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 32, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 42, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 57, - "lineCount": 1 + "startColumn": 14, + "endColumn": 41, + "lineCount": 15 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 44, - "lineCount": 1 + "startColumn": 14, + "endColumn": 46, + "lineCount": 15 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 41, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 7, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 60, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 37, - "lineCount": 1 + "startColumn": 29, + "endColumn": 57, + "lineCount": 2 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 80, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 14, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 25, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, + "startColumn": 40, "endColumn": 53, "lineCount": 1 } @@ -30604,32 +25468,32 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 8, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 18, + "endColumn": 32, "lineCount": 1 } }, @@ -30637,254 +25501,238 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 40, - "endColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 8, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 44, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 37, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 35, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 70, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 65, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, + "startColumn": 30, "endColumn": 43, "lineCount": 1 } @@ -30892,841 +25740,833 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 57, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 61, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 58, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 11, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 33, - "endColumn": 63, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 62, + "startColumn": 17, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 77, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 20, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 41, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 40, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 48, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 18, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 58, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 19, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } - } - ], - "./sumpy/test/test_matrixgen.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 19, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 33, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 40, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 24, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 23, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, + "startColumn": 22, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 31, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 23, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_matrixgen.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 4, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 20, - "endColumn": 30, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 63, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, + "startColumn": 30, "endColumn": 38, "lineCount": 1 } @@ -31734,135 +26574,135 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 72, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, + "startColumn": 30, "endColumn": 38, "lineCount": 1 } @@ -31870,56 +26710,56 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 11, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, @@ -31927,31 +26767,47 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 41, - "endColumn": 53, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 53, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, @@ -31998,96 +26854,72 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 20, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 31, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 80, + "startColumn": 49, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 43, - "endColumn": 55, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, @@ -32139,27 +26971,19 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, @@ -32186,1390 +27010,1326 @@ "endColumn": 38, "lineCount": 1 } - } - ], - "./sumpy/test/test_misc.py": [ - { - "code": "reportUnusedImport", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 1 - } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 18, - "endColumn": 48, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 41, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, + "startColumn": 12, "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 25, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 67, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 63, + "startColumn": 33, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 74, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 68, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 62, - "endColumn": 70, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 70, + "startColumn": 43, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 72, - "endColumn": 77, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 25, + "startColumn": 36, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 53, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 36, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 29, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 53, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 38, - "endColumn": 53, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 53, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 53, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_misc.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnusedImport", "range": { - "startColumn": 46, - "endColumn": 62, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, + "startColumn": 23, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 63, + "startColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 43, - "endColumn": 62, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 32, - "endColumn": 51, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 18, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 41, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 19, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 13, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 23, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 23, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 50, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 26, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 29, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 26, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 36, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 36, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 28, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 44, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 43, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 26, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 62, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 62, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 72, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 10, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 24, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 24, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, + "startColumn": 28, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 14, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 46, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 18, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 21, + "startColumn": 36, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 43, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 21, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 29, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 54, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 38, - "endColumn": 54, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 57, - "endColumn": 5, - "lineCount": 7 + "startColumn": 19, + "endColumn": 40, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 28, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 37, + "startColumn": 20, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 4, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 41, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 41, + "startColumn": 38, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 14, + "startColumn": 30, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 37, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 30, + "startColumn": 11, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 42, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 54, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 53, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 15, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 70, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 70, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 59, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 52, + "startColumn": 23, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 38, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 8, + "startColumn": 10, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 10, - "endColumn": 11, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 18, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 10, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 7, - "endColumn": 8, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 + "startColumn": 57, + "endColumn": 5, + "lineCount": 7 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 17, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 17, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 11, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 25, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 25, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 4, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 31, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 15, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 61, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 16, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 28, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 40, + "startColumn": 22, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 22, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 70, + "startColumn": 29, + "endColumn": 53, "lineCount": 1 } }, @@ -33577,934 +28337,944 @@ "code": "reportAny", "range": { "startColumn": 4, - "endColumn": 7, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 9, - "endColumn": 11, + "startColumn": 33, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 33, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOperatorIssue", "range": { "startColumn": 22, - "endColumn": 25, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 12, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 49, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 23, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 7, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 14, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 7, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 17, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 61, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 63, - "endColumn": 66, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 78, - "endColumn": 81, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } - } - ], - "./sumpy/test/test_qbx.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 45, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 67, + "startColumn": 25, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 48, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 55, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 10, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 45, + "startColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 34, - "endColumn": 45, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 39, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 72, + "startColumn": 9, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 12, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 4, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 76, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 29, - "endColumn": 41, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 76, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 67, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 48, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 10, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 41, + "startColumn": 63, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 36, + "startColumn": 78, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_qbx.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 47, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 31, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 22, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 31, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 32, - "endColumn": 47, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 33, - "endColumn": 72, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 71, + "startColumn": 34, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 70, + "startColumn": 34, + "endColumn": 45, "lineCount": 1 } - } - ], - "./sumpy/test/test_target_deriv.py": [ + }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 33, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 50, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 55, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 54, + "startColumn": 34, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } - } - ], - "./sumpy/test/test_tools.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 53, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 53, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", "range": { "startColumn": 32, - "endColumn": 42, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 44, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } - } - ], - "./sumpy/tools.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 19, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 19, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 26, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 33, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 35, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, + "startColumn": 16, "endColumn": 23, "lineCount": 1 } @@ -34512,7 +29282,7 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, + "startColumn": 25, "endColumn": 32, "lineCount": 1 } @@ -34520,509 +29290,507 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 45, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 20, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 33, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 40, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 47, + "endColumn": 70, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_target_deriv.py": [ { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 30, + "startColumn": 35, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 42, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 28, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 37, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 44, + "endColumn": 54, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_tools.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 46, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 41, + "startColumn": 43, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, + "startColumn": 14, "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingTypeArgument", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 37, + "endColumn": 44, "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", "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 4, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, + "startColumn": 21, "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 46, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 39, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, + "startColumn": 4, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 16, @@ -35030,450 +29798,458 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 41, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 28, - "endColumn": 50, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeArgument", "range": { - "startColumn": 35, - "endColumn": 49, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 73, - "endColumn": 82, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 38, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 44, - "endColumn": 53, + "startColumn": 13, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, + "startColumn": 19, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 28, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 22, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 13, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 35, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 64, - "endColumn": 83, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 41, + "startColumn": 22, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 18, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 13, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 18, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 13, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 32, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 43, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 52, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 57, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 11, - "endColumn": 38, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 18, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, + "startColumn": 8, "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 21, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 32, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 29, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 28, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 39, + "startColumn": 35, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 73, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 23, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 51, - "lineCount": 2 + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 44, + "endColumn": 53, "lineCount": 1 } }, @@ -35481,263 +30257,263 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 51, - "lineCount": 2 + "endColumn": 27, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 33, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 4, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 46, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 46, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 30, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 64, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 34, + "startColumn": 32, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 4, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 59, + "startColumn": 22, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 61, - "endColumn": 66, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 40, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 54, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 11, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 21, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 77, + "startColumn": 38, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 19, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 19, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 11, + "endColumn": 24, "lineCount": 1 } }, @@ -36311,14 +31087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { From e4fa17aa9492397e4d0445b5f1e88aba1db4a98f Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 24 Nov 2025 11:21:09 -0600 Subject: [PATCH 250/335] M2L preprocess: respect result_dtype --- sumpy/expansion/m2l.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 14dfd0c58..209b4947e 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -571,7 +571,6 @@ def preprocess_multipole_nexprs(self, def loopy_preprocess_multipole(self, tgt_expansion: LocalExpansionBase, src_expansion: MultipoleExpansionBase, - # FIXME: why is result_dtype unused here? result_dtype: DTypeLike, ) -> tuple[lp.TranslationUnit, Sequence[OptimizationCallable]]: assert isinstance(tgt_expansion, VolumeTaylorLocalExpansionBase) @@ -659,7 +658,7 @@ def loopy_preprocess_multipole(self, knl = lp.make_function(domains, insns, kernel_data=[ lp.ValueArg("src_rscale", None), - lp.GlobalArg("output_coeffs", None, shape=ncoeff_preprocessed, + lp.GlobalArg("output_coeffs", result_dtype, shape=ncoeff_preprocessed, is_input=False, is_output=True), lp.GlobalArg("input_coeffs", None, shape=ncoeff_src), ...], @@ -805,7 +804,7 @@ def result_func(x: ArithmeticExpression) -> ArithmeticExpression: kernel_data=[ lp.ValueArg("src_rscale", None), lp.ValueArg("tgt_rscale", None), - lp.GlobalArg("output_coeffs", None, + lp.GlobalArg("output_coeffs", result_dtype, shape=ncoeff_tgt, is_input=False, is_output=True), lp.GlobalArg("input_coeffs", None, From b6d0310b5bcb2bff941f75d6604ac3ce3883a016 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 20:26:08 +0000 Subject: [PATCH 251/335] build(deps): bump actions/checkout from 5 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/autopush.yml | 2 +- .github/workflows/ci.yml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index e1dfec1a9..469280898 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -10,7 +10,7 @@ jobs: if: startsWith(github.repository, 'inducer/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ffb13184..f2e9b132b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: name: Ruff runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: astral-sh/setup-uv@v7 - name: "Main Script" run: | @@ -26,13 +26,13 @@ jobs: name: Typos runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: crate-ci/typos@master basedpyright: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-python@v6 with: @@ -50,7 +50,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" run: | CONDA_ENVIRONMENT=.test-conda-env-py3.yml @@ -63,7 +63,7 @@ jobs: name: Conda Pytest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -75,7 +75,7 @@ jobs: name: Conda Pytest Symengine with Loopy FFT runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -86,7 +86,7 @@ jobs: name: Conda Pytest Symengine runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -96,7 +96,7 @@ jobs: name: Conda Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -114,7 +114,7 @@ jobs: name: Tests for downstream project ${{ matrix.downstream_project }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: "Main Script" env: DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }} From 5216e4ab96fb7df8c15c140d0d2afbae32ed90c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kl=C3=B6ckner?= Date: Thu, 1 Jan 2026 12:11:45 -0600 Subject: [PATCH 252/335] Towards array context (2025 merge) (#256) * Initial work towards using array contexts * update tests to pass actx * sumpy.array_context additions * port p2p to arraycontext * port p2e to arraycontext * port e2p to arraycontext * port e2e to arraycontext * port tools and toys to arraycontext * port test_tools to arraycontext * port test_misc to arraycontext * bump requirements * start porting test_kernels to arraycontext * more porting in test_kernels * add arraycontext to docs * add some annotations to make_loopy_program * finish porting in test_kernels * port qbx to arraycontext * port curve-pot to arraycontext * add pytools to intersphinx * add assumptions at kernel creation * port expansion-toys to arraycontext * move get_kernel calls to separate line for debugging * add fixed_parameters to make_loopy_program * port test_qbx to arraycontext * port test_matrixgen to arraycontext * continue porting fmm to arraycontext * update drive_fmm from boxtree * more work towards getting the fmm working * fix up fmm tests * port distributed to arraycontext * add missing actx * fix kernel return values * actually loop over all results * back up some more dictionary kernel accesses * fix matrix generation * rip out timing collection * remove unused imports (flake8) * fix return value for form_locals * remove ctx arg in KernelComputation * back out some unneeded changes * point ci to updated pytential * fix kwargs name * fix merge * docs: add pytools to intersphinx * fix device handling in p2p * fix bad merge * fix bad merge * fix some type annotations * fix some pylint errors * Drop register_optimization_preambles, handle FP contract in actx * Fix some make_obj_array stragglers * get_cached_kernel_executor -> get_cached_kernel * Fix toys * Fix jump and target derivative tests * Fix test_unified_single_and_double * Address pocl 7.x pyvkfft miscompilation https://github.com/pocl/pocl/issues/2069 * Fix docs * Use ArrayContext+assert instead of PyOpenCLActx in annotations * Fix some type annotations in P2P * Deal with DTypeLike no longer allowing None * Revert boxtree req back to main * Update baseline * Port to actx.np.zeros * Update downstream repo on CI --------- Co-authored-by: Alexandru Fikl --- .basedpyright/baseline.json | 15040 ++++++++++++------------------ .github/workflows/ci.yml | 4 +- .test-conda-env-py3.yml | 3 +- doc/conf.py | 3 + examples/curve-pot.py | 13 +- examples/expansion-toys.py | 15 +- sumpy/__init__.py | 6 +- sumpy/array_context.py | 84 +- sumpy/codegen.py | 24 +- sumpy/distributed.py | 75 +- sumpy/e2e.py | 301 +- sumpy/e2p.py | 69 +- sumpy/fmm.py | 552 +- sumpy/p2e.py | 60 +- sumpy/p2p.py | 211 +- sumpy/qbx.py | 155 +- sumpy/test/test_distributed.py | 56 +- sumpy/test/test_fmm.py | 146 +- sumpy/test/test_kernels.py | 70 +- sumpy/test/test_matrixgen.py | 105 +- sumpy/test/test_misc.py | 14 +- sumpy/test/test_qbx.py | 32 +- sumpy/test/test_target_deriv.py | 27 +- sumpy/test/test_tools.py | 2 +- sumpy/tools.py | 98 +- sumpy/toys.py | 314 +- 26 files changed, 6953 insertions(+), 10526 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index f56903c82..bc73d2bb9 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -87,14 +87,6 @@ "lineCount": 1 } }, - { - "code": "reportConstantRedefinition", - "range": { - "startColumn": 0, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -337,67 +329,59 @@ } ], "./sumpy/array_context.py": [ - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 46, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 36, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 35, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 56, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, @@ -677,14 +661,6 @@ "lineCount": 1 } }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -2587,91 +2563,67 @@ } ], "./sumpy/distributed.py": [ - { - "code": "reportUnsafeMultipleInheritance", - "range": { - "startColumn": 6, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 78, + "startColumn": 47, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 78, + "startColumn": 47, + "endColumn": 63, "lineCount": 1 } }, @@ -2719,7 +2671,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 14, - "endColumn": 19, + "endColumn": 20, "lineCount": 1 } }, @@ -2727,7 +2679,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 14, - "endColumn": 19, + "endColumn": 20, "lineCount": 1 } }, @@ -2735,7 +2687,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 45, + "endColumn": 39, "lineCount": 1 } }, @@ -2743,111 +2695,111 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 18, - "endColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 49, + "startColumn": 47, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 54, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 72, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 13, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 13, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 76, - "endColumn": 81, + "startColumn": 13, + "endColumn": 45, "lineCount": 1 } }, @@ -2862,40 +2814,40 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 74, + "startColumn": 49, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 74, + "startColumn": 49, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 46, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, @@ -2918,32 +2870,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 40, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 28, + "endColumn": 44, "lineCount": 1 } }, @@ -2956,18 +2892,10 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 44, - "endColumn": 59, + "startColumn": 8, + "endColumn": 32, "lineCount": 1 } }, @@ -2982,40 +2910,40 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 68, + "startColumn": 44, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 68, - "lineCount": 1 + "startColumn": 44, + "endColumn": 61, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, @@ -3038,56 +2966,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 83, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 48, + "startColumn": 43, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 32, + "endColumn": 56, "lineCount": 1 } }, @@ -3126,16 +3014,24 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 42, + "startColumn": 32, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 61, + "startColumn": 32, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 32, + "endColumn": 74, "lineCount": 1 } }, @@ -3195,6 +3091,30 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 69, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -3230,32 +3150,32 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 57, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, @@ -3266,182 +3186,134 @@ "endColumn": 42, "lineCount": 1 } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 58, - "lineCount": 1 - } } ], "./sumpy/e2e.py": [ { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportUnusedImport", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 26, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 56, + "startColumn": 23, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 38, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 53, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 53, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 69, + "startColumn": 16, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 53, + "startColumn": 16, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 53, + "startColumn": 16, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 74, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, @@ -3493,22 +3365,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -3552,16 +3408,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, @@ -3672,16 +3528,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 + "startColumn": 37, + "endColumn": 55, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 57, + "endColumn": 75, "lineCount": 1 } }, @@ -3702,7 +3558,7 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 28, @@ -3710,146 +3566,26 @@ } }, { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 58, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, @@ -3880,16 +3616,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, @@ -4109,14 +3845,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -4190,7 +3918,7 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, "endColumn": 28, @@ -4205,67 +3933,19 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -4329,111 +4009,71 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, @@ -5077,14 +4717,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 6 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -5141,6 +4773,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -5229,38 +4869,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -5272,32 +4880,16 @@ { "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, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -5369,71 +4961,23 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", "range": { "startColumn": 50, - "endColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, @@ -5589,14 +5133,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 65, - "lineCount": 4 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -5709,59 +5245,19 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -5817,79 +5313,39 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 71, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, @@ -6093,14 +5549,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 73, - "lineCount": 3 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -6149,6 +5597,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -6213,67 +5669,19 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -6297,39 +5705,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 71, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 81, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, @@ -6565,14 +5949,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 17, - "lineCount": 5 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -6637,6 +6013,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -6709,67 +6093,19 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -6793,39 +6129,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 55, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 65, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, @@ -6973,14 +6285,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7064,48 +6368,16 @@ { "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, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -7166,42 +6438,10 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, @@ -7357,14 +6597,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7448,48 +6680,16 @@ { "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, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -7550,132 +6750,68 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } } ], "./sumpy/e2p.py": [ { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportUnusedImport", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 26, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 32, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, @@ -7690,16 +6826,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 46, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 36, + "startColumn": 46, + "endColumn": 62, "lineCount": 1 } }, @@ -7719,14 +6855,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7767,22 +6895,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7856,15 +6968,7 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 38, "endColumn": 76, @@ -7927,6 +7031,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -7999,14 +7111,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 2 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8016,7 +7120,7 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, "endColumn": 28, @@ -8024,10 +7128,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, @@ -8035,46 +7139,14 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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, + "startColumn": 14, "endColumn": 28, "lineCount": 1 } @@ -8082,24 +7154,16 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -8136,39 +7200,23 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 20, @@ -8176,10 +7224,10 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 18, "lineCount": 1 } }, @@ -8263,14 +7311,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 54, - "lineCount": 4 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8280,7 +7320,7 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, "endColumn": 28, @@ -8288,10 +7328,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, @@ -8299,46 +7339,14 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 62, - "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, + "startColumn": 14, "endColumn": 28, "lineCount": 1 } @@ -8346,24 +7354,16 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -8400,34 +7400,10 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 66, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } } @@ -9011,22 +7987,6 @@ } ], "./sumpy/expansion/m2l.py": [ - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnusedParameter", "range": { @@ -9108,21 +8068,13 @@ } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { "startColumn": 16, "endColumn": 28, "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 27, - "endColumn": 18, - "lineCount": 4 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9142,16 +8094,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -9166,40 +8118,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 52, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } }, @@ -9818,16 +8738,8 @@ { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 15, + "endColumn": 82, "lineCount": 1 } }, @@ -9843,231 +8755,231 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 59, - "endColumn": 66, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 74, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 25, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 36, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 38, + "startColumn": 24, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 64, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 60, + "startColumn": 64, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 33, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 33, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 33, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 26, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 37, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 55, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 49, + "startColumn": 13, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 48, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 74, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 78, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 74, + "startColumn": 29, + "endColumn": 58, "lineCount": 1 } }, @@ -10075,39 +8987,39 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 29, - "endColumn": 77, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 + "startColumn": 12, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 + "startColumn": 12, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 13, + "endColumn": 63, "lineCount": 1 } }, @@ -10115,7 +9027,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 36, - "endColumn": 48, + "endColumn": 40, "lineCount": 1 } }, @@ -10123,23 +9035,23 @@ "code": "reportMissingParameterType", "range": { "startColumn": 36, - "endColumn": 48, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, @@ -10152,50 +9064,58 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 27, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 46, + "startColumn": 27, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", + "range": { + "startColumn": 37, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 45, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 76, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, @@ -10256,10 +9176,18 @@ } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 59, + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, @@ -10328,10 +9256,18 @@ } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 59, + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, @@ -10383,6 +9319,22 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 33, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -10426,56 +9378,80 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnusedParameter", "range": { - "startColumn": 34, - "endColumn": 63, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 59, + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 59, + "startColumn": 27, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 45, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, @@ -10520,18 +9496,18 @@ } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 52, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 23, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, @@ -10539,7 +9515,7 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 4, - "endColumn": 24, + "endColumn": 23, "lineCount": 1 } }, @@ -10547,22 +9523,22 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 4, - "endColumn": 31, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 4, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, + "startColumn": 30, "endColumn": 39, "lineCount": 1 } @@ -10570,16 +9546,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 30, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 30, + "endColumn": 48, "lineCount": 1 } }, @@ -10626,16 +9602,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 57, + "startColumn": 28, + "endColumn": 53, "lineCount": 1 } }, @@ -10696,113 +9672,113 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 42, + "startColumn": 21, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 21, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 + "startColumn": 15, + "endColumn": 20, + "lineCount": 3 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 12, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 24, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 24, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 64, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 64, - "lineCount": 1 + "startColumn": 15, + "endColumn": 20, + "lineCount": 3 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 12, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 44, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, + "startColumn": 24, "endColumn": 60, "lineCount": 1 } @@ -10810,112 +9786,128 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, + "startColumn": 24, "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 77, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 77, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 37, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 46, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 46, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 60, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 70, + "startColumn": 27, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 37, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 46, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 46, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 27, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, @@ -10923,7 +9915,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 21, "lineCount": 1 } }, @@ -10931,95 +9923,111 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 47, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 32, "endColumn": 40, "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 14, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 74, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, @@ -11027,23 +10035,39 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 42, - "endColumn": 47, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 60, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, @@ -11051,7 +10075,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 23, "lineCount": 1 } }, @@ -11059,7 +10083,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 23, "lineCount": 1 } }, @@ -11067,7 +10091,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 45, + "endColumn": 38, "lineCount": 1 } }, @@ -11075,23 +10099,23 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 45, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, @@ -11099,7 +10123,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 27, "lineCount": 1 } }, @@ -11107,79 +10131,87 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 51, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 44, + "endColumn": 74, "lineCount": 1 } }, @@ -11187,55 +10219,63 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 64, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 55, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 26, "lineCount": 1 } }, @@ -11243,39 +10283,39 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 57, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 57, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, @@ -11283,7 +10323,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 18, "lineCount": 1 } }, @@ -11291,423 +10331,407 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 26, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 18, - "endColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 69, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 79, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 72, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 73, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 33, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 67, + "startColumn": 33, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 52, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 80, - "lineCount": 2 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 25, - "endColumn": 79, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 83, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 67, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 70, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 73, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 66, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 71, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 64, + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 67, + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 42, - "endColumn": 79, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 16, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 69, "lineCount": 1 } }, @@ -11715,110 +10739,110 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 32, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 47, - "lineCount": 1 + "startColumn": 30, + "endColumn": 64, + "lineCount": 2 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 20, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 19, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 65, - "lineCount": 1 + "startColumn": 38, + "endColumn": 76, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 29, - "endColumn": 54, + "startColumn": 21, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 73, + "startColumn": 48, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 59, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 65, - "lineCount": 1 + "startColumn": 55, + "endColumn": 64, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 61, + "startColumn": 37, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 63, + "startColumn": 16, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 54, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 24, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, + "startColumn": 12, "endColumn": 25, "lineCount": 1 } @@ -11826,304 +10850,296 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 76, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 56, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 16, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 64, + "startColumn": 64, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 38, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 12, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 42, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 63, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 47, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 69, - "endColumn": 73, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 30, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 33, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 51, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 64, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 50, + "startColumn": 61, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 29, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 69, + "startColumn": 35, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 35, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 35, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 68, + "startColumn": 35, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 68, - "endColumn": 82, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, @@ -12131,150 +11147,150 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 43, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 24, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 48, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 40, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 40, + "startColumn": 28, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 63, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 63, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 65, - "endColumn": 75, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 75, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 62, + "startColumn": 35, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 59, + "startColumn": 34, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, + "startColumn": 28, "endColumn": 37, "lineCount": 1 } @@ -12282,120 +11298,112 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 73, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 20, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 24, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 28, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, @@ -12403,7 +11411,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 23, "lineCount": 1 } }, @@ -12411,7 +11419,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 23, "lineCount": 1 } }, @@ -12419,7 +11427,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 55, + "endColumn": 40, "lineCount": 1 } }, @@ -12427,119 +11435,119 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 55, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 65, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 65, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 73, + "startColumn": 41, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 73, + "startColumn": 19, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 47, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, @@ -12547,79 +11555,71 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 74, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 38, - "endColumn": 58, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, @@ -12627,7 +11627,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 21, + "endColumn": 19, "lineCount": 1 } }, @@ -12635,7 +11635,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 21, + "endColumn": 19, "lineCount": 1 } }, @@ -12674,1363 +11674,1339 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 26, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 46, + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 74, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", + "range": { + "startColumn": 18, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 59, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 52, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 52, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 66, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 66, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 68, - "endColumn": 78, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 25, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 26, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, + "startColumn": 35, "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 52, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 44, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 68, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 68, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 35, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 2 + "startColumn": 35, + "endColumn": 59, + "lineCount": 1 } - } - ], - "./sumpy/kernel.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 35, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 15, + "startColumn": 8, "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 51, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 22, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 50, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 25, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 63, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 63, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 67, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 53, - "endColumn": 67, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 67, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 24, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 21, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 34, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 24, + "startColumn": 16, + "endColumn": 40, + "lineCount": 2 + } + } + ], + "./sumpy/kernel.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 22, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnusedParameter", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportReturnType", "range": { - "startColumn": 4, - "endColumn": 24, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 21, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 34, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 24, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 65, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportArgumentType", "range": { - "startColumn": 40, - "endColumn": 66, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportReturnType", "range": { - "startColumn": 4, - "endColumn": 30, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportArgumentType", "range": { - "startColumn": 33, - "endColumn": 59, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } - } - ], - "./sumpy/p2e.py": [ + }, { - "code": "reportImplicitAbstractClass", + "code": "reportReturnType", "range": { - "startColumn": 6, - "endColumn": 13, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 35, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, + "startColumn": 22, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 36, - "endColumn": 50, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 36, - "endColumn": 50, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 39, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 39, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 41, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 17, + "startColumn": 4, "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 30, - "endColumn": 36, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 29, - "endColumn": 51, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 17, - "endColumn": 31, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 40, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 4, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAssignmentType", "range": { - "startColumn": 48, - "endColumn": 62, + "startColumn": 33, + "endColumn": 59, "lineCount": 1 } - }, + } + ], + "./sumpy/p2e.py": [ { - "code": "reportIncompatibleMethodOverride", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 34, + "endColumn": 41, "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, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 59, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 59, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 81, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, + "startColumn": 27, "endColumn": 41, "lineCount": 1 } @@ -14038,56 +13014,56 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 17, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 73, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 77, - "endColumn": 83, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -14095,63 +13071,63 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 32, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 29, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 17, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 3 + "startColumn": 48, + "endColumn": 62, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, @@ -14199,95 +13175,103 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 42, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 68, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 31, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, @@ -14299,6 +13283,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -14374,24 +13366,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 53, - "lineCount": 3 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, @@ -14459,14 +13435,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -14478,32 +13446,16 @@ { "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, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, @@ -14518,266 +13470,410 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } - } - ], - "./sumpy/p2p.py": [ + }, { - "code": "reportImplicitAbstractClass", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 6, - "endColumn": 13, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 72, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 72, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 48, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 48, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 69, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 69, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 14, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 79, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/p2p.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 72, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, + "startColumn": 23, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 63, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 53, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 53, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 31, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 42, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 42, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 72, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, @@ -14957,14 +14053,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -14974,34 +14062,10 @@ } }, { - "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", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, @@ -15021,6 +14085,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -15056,8 +14128,8 @@ { "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, @@ -15065,15 +14137,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 18, - "endColumn": 24, + "endColumn": 36, "lineCount": 1 } }, @@ -15133,6 +14197,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -15169,15 +14241,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 62, - "endColumn": 68, + "endColumn": 36, "lineCount": 1 } }, @@ -15237,6 +14301,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -15277,6 +14349,14 @@ "lineCount": 21 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -15337,79 +14417,47 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 73, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 73, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -15446,146 +14494,146 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 18, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 61, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 72, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 53, - "lineCount": 8 + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 42, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 58, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 58, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, + "startColumn": 32, "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 38, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 57, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 65, + "startColumn": 18, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 65, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, @@ -15593,1115 +14641,867 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 18, - "endColumn": 33, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 48, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 67, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 33, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 27, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 43, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 48, + "startColumn": 29, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, + "startColumn": 14, + "endColumn": 36, + "lineCount": 1 + } + } + ], + "./sumpy/point_calculus.py": [ + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 39, "endColumn": 66, - "lineCount": 2 + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 34, - "endColumn": 52, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 13, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 49, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 + "startColumn": 33, + "endColumn": 30, + "lineCount": 3 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 41, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 45, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 66, - "endColumn": 74, + "startColumn": 22, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 63, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 53, - "endColumn": 61, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 41, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 56, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 60, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 18, - "endColumn": 39, - "lineCount": 1 + "startColumn": 15, + "endColumn": 70, + "lineCount": 3 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 43, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 39, + "startColumn": 11, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 43, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 30, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 57, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 45, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 68, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } - } - ], - "./sumpy/point_calculus.py": [ + }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 66, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 60, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 27, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 43, - "lineCount": 1 + "startColumn": 15, + "endColumn": 56, + "lineCount": 4 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 + "startColumn": 15, + "endColumn": 60, + "lineCount": 4 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 34, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportReturnType", "range": { "startColumn": 15, - "endColumn": 40, - "lineCount": 1 + "endColumn": 31, + "lineCount": 5 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, + "startColumn": 8, "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 51, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 70, - "lineCount": 3 + "startColumn": 19, + "endColumn": 35, + "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 27, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 32, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 66, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 56, - "lineCount": 4 + "startColumn": 12, + "endColumn": 42, + "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 60, - "lineCount": 4 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 5 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 22, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 4, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } - }, + } + ], + "./sumpy/qbx.py": [ { "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, + "startColumn": 12, "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 35, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 38, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 42, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 46, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 42, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 46, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 17, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 21, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - } - ], - "./sumpy/qbx.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 65, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 62, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, @@ -17084,24 +15884,24 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 25, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnusedVariable", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 64, + "startColumn": 57, + "endColumn": 69, "lineCount": 1 } }, @@ -17138,7 +15938,7 @@ } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 28, @@ -17146,63 +15946,23 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 56, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, "endColumn": 44, @@ -17244,15 +16004,23 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 21, "endColumn": 28, "lineCount": 1 } @@ -17260,7 +16028,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 23, + "startColumn": 21, "endColumn": 28, "lineCount": 1 } @@ -17285,7 +16053,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 39, - "endColumn": 46, + "endColumn": 48, "lineCount": 1 } }, @@ -17293,55 +16061,23 @@ "code": "reportMissingParameterType", "range": { "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 66, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 68, - "endColumn": 83, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 68, - "endColumn": 83, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, @@ -17365,7 +16101,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, @@ -17401,54 +16137,6 @@ "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": 67, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -17505,6 +16193,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -17540,15 +16236,23 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 12, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 21, "endColumn": 28, "lineCount": 1 } @@ -17556,7 +16260,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 23, + "startColumn": 21, "endColumn": 28, "lineCount": 1 } @@ -17581,7 +16285,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 39, - "endColumn": 46, + "endColumn": 54, "lineCount": 1 } }, @@ -17589,55 +16293,23 @@ "code": "reportMissingParameterType", "range": { "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 76, - "endColumn": 82, + "startColumn": 58, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 76, - "endColumn": 82, + "startColumn": 58, + "endColumn": 64, "lineCount": 1 } }, @@ -17645,7 +16317,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 45, + "endColumn": 36, "lineCount": 1 } }, @@ -17674,95 +16346,55 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 74, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 47, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 40, "endColumn": 50, @@ -17770,10 +16402,10 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, @@ -17884,1930 +16516,280 @@ { "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": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "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": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", "range": { "startColumn": 30, - "endColumn": 40, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 30, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 50, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 67, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 55, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 42, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnusedClass", - "range": { - "startColumn": 6, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - } - ], - "./sumpy/symbolic.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnusedImport", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 11, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 7, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 10, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnusedFunction", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 88, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 5, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - } - ], - "./sumpy/test/curve.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - } - ], - "./sumpy/test/geometries.py": [ - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnusedExpression", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_codegen.py": [ - { - "code": "reportArgumentType", "range": { "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 75, - "endColumn": 76, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_cse.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 0, - "endColumn": 1, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 3, - "endColumn": 4, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 6, - "endColumn": 7, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 9, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 0, - "endColumn": 2, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 6, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 20, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 45, - "endColumn": 48, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 67, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 4, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 24, - "endColumn": 29, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, + "startColumn": 12, "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 43, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 45, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, @@ -19815,86 +16797,94 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 37, - "endColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 67, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 46, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 60, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 40, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 34, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, + "startColumn": 40, "endColumn": 51, "lineCount": 1 } @@ -19902,776 +16892,798 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 55, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 26, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, + "range": { + "startColumn": 41, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 51, + "startColumn": 22, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 42, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 27, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 31, + "startColumn": 56, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 33, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 64, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, + "startColumn": 22, "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedClass", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 6, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 59, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 39, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 36, + "startColumn": 39, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 39, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, + "startColumn": 27, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 13, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 35, - "endColumn": 37, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 49, - "endColumn": 51, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 29, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 52, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 48, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 37, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 39, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 53, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 32, + "startColumn": 40, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 35, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 18, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 27, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 25 + "startColumn": 29, + "endColumn": 48, + "lineCount": 1 } - }, + } + ], + "./sumpy/symbolic.py": [ { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedImport", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 7, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedFunction", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportCallIssue", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { "startColumn": 39, - "endColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 4, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 13, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 52, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 41, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, + "startColumn": 16, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 32, + "endColumn": 88, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportReturnType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportReturnType", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 5, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/test/curve.py": [ { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 13, + "startColumn": 19, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 22, + "endColumn": 55, "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + } + ], + "./sumpy/test/geometries.py": [ { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 28, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 19, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, @@ -20679,84 +17691,92 @@ "code": "reportAny", "range": { "startColumn": 28, - "endColumn": 46, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { "startColumn": 27, - "endColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 38, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnusedExpression", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", "range": { "startColumn": 14, "endColumn": 27, @@ -20764,1222 +17784,1214 @@ } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 14, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 22, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 22, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_codegen.py": [ { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 41, + "startColumn": 75, + "endColumn": 76, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_cse.py": [ { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 30, - "endColumn": 49, + "startColumn": 9, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 9, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 9, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 0, + "endColumn": 1, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 3, + "endColumn": 4, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 6, + "endColumn": 7, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 9, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 0, + "endColumn": 2, "lineCount": 1 } }, { - "code": "reportConstantRedefinition", + "code": "reportAny", "range": { "startColumn": 4, - "endColumn": 8, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 34, + "startColumn": 8, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 25, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 28, - "endColumn": 40, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } - } - ], - "./sumpy/test/test_distributed.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 63, - "endColumn": 70, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 56, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 73, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, + "startColumn": 23, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 30, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 30, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 42, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 44, - "endColumn": 48, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 55, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 37, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 53, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 26, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 37, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 60, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 57, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 75, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 67, + "startColumn": 34, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 59, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 42, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 41, + "startColumn": 25, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 48, + "startColumn": 29, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 53, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 60, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 71, + "startColumn": 62, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 46, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 58, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 29, - "endColumn": 37, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 35, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 15, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 15, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } - } - ], - "./sumpy/test/test_fmm.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportAny", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 49, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 46, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 15, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 51, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 15, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 39, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 41, - "endColumn": 64, + "startColumn": 9, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 66, - "endColumn": 73, + "startColumn": 26, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 61, - "endColumn": 77, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 + "startColumn": 8, + "endColumn": 14, + "lineCount": 25 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 60, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 69, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, + "startColumn": 34, "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 39, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 23, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 82, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 36, - "endColumn": 46, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { "startColumn": 41, - "endColumn": 46, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 73, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, @@ -21987,1967 +18999,2003 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 33, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, + "startColumn": 19, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 45, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 28, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 71, + "startColumn": 28, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 39, - "endColumn": 71, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 30, - "endColumn": 52, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 30, - "endColumn": 70, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 68, - "endColumn": 84, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportIndexIssue", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 22, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportRedeclaration", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 32, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 35, + "startColumn": 40, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, + "startColumn": 30, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnusedParameter", - "range": { - "startColumn": 43, - "endColumn": 54, + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 32, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportConstantRedefinition", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 11, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 41, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 41, + "startColumn": 17, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_distributed.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 71, + "startColumn": 63, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 37, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 41, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 14, - "endColumn": 78, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 62, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 62, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 38, - "endColumn": 45, + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 42, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 39, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 25, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 53, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 54, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 36, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 53, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 45, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 28, - "endColumn": 40, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 14, - "endColumn": 38, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 51, + "startColumn": 15, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 22, + "startColumn": 37, "endColumn": 42, "lineCount": 1 } }, + { + "code": "reportOptionalSubscript", + "range": { + "startColumn": 40, + "endColumn": 55, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 74, + "startColumn": 40, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 46, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 46, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 70, - "endColumn": 79, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { "startColumn": 23, - "endColumn": 33, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 78, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_fmm.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnusedImport", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 57, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 41, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 66, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 61, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 37, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 62, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownParameterType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 70, - "endColumn": 76, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 64, - "endColumn": 73, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 68, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalOperand", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 24, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 76, + "startColumn": 35, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 39, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 49, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 39, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 39, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 49, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 21, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 21, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportAttributeAccessIssue", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 31, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 42, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 30, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 37, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, + "startColumn": 21, "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 68, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportRedeclaration", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 10, - "endColumn": 11, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 46, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 39, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 15, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 64, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, + "startColumn": 45, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 33, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 33, + "startColumn": 22, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -23960,9 +21008,9 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, + "startColumn": 27, "endColumn": 31, "lineCount": 1 } @@ -23970,290 +21018,296 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 31, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 54, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 79, - "endColumn": 83, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 14, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 17, + "endColumn": 51, "lineCount": 1 } - } - ], - "./sumpy/test/test_kernels.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 19, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 8, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 8, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 8, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 22, + "startColumn": 8, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 61, + "startColumn": 70, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 58, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, @@ -24290,705 +21344,707 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 64, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 53, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 63, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 36, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 40, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 49, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 64, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 59, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportGeneralTypeIssues", "range": { "startColumn": 12, - "endColumn": 17, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 67, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 27, - "endColumn": 39, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 59, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 11, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 69, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 22, + "endColumn": 29, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 42, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 63, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 15, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 68, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 22, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 50, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 2 + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 61, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 10, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 49, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 34, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 59, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 23, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 37, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 58, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 79, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_kernels.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnusedImport", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 54, + "startColumn": 66, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 14, "endColumn": 23, "lineCount": 1 } @@ -24996,8 +22052,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, @@ -25005,60 +22061,52 @@ "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, + "startColumn": 30, "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 23, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, "endColumn": 22, @@ -25066,82 +22114,82 @@ } }, { - "code": "reportAny", + "code": "reportCallIssue", "range": { "startColumn": 12, - "endColumn": 14, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 18, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 45, - "lineCount": 1 + "startColumn": 19, + "endColumn": 53, + "lineCount": 2 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 69, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, @@ -25149,7 +22197,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 15, + "endColumn": 20, "lineCount": 1 } }, @@ -25157,7 +22205,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 15, + "endColumn": 20, "lineCount": 1 } }, @@ -25165,7 +22213,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 22, "lineCount": 1 } }, @@ -25173,7 +22221,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 22, "lineCount": 1 } }, @@ -25181,7 +22229,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 17, "lineCount": 1 } }, @@ -25189,7 +22237,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 17, "lineCount": 1 } }, @@ -25197,7 +22245,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 34, "lineCount": 1 } }, @@ -25205,15 +22253,55 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 42, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, @@ -25242,689 +22330,729 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 42, - "endColumn": 49, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", "range": { "startColumn": 51, - "endColumn": 54, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 15 + "startColumn": 22, + "endColumn": 68, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 46, - "lineCount": 15 + "startColumn": 69, + "endColumn": 76, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 69, + "endColumn": 76, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 52, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 23, + "endColumn": 57, + "lineCount": 2 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 49, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 14, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 63, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 34, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 2 + "startColumn": 19, + "endColumn": 34, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 24, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 32, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 50, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 32, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 53, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 57, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 37, - "endColumn": 44, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 64, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 80, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 42, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 51, - "lineCount": 1 + "startColumn": 14, + "endColumn": 41, + "lineCount": 15 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 53, - "lineCount": 1 + "startColumn": 14, + "endColumn": 46, + "lineCount": 15 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 43, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 41, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 7, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 60, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 + "startColumn": 29, + "endColumn": 57, + "lineCount": 2 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, + "startColumn": 35, "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, + "startColumn": 35, "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 31, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 46, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 8, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 35, + "startColumn": 46, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 8, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, + "startColumn": 55, "endColumn": 58, "lineCount": 1 } @@ -25932,1121 +23060,1137 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 50, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, + "startColumn": 43, "endColumn": 50, "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 42, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 65, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, + "startColumn": 36, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 70, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 57, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 61, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 58, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 63, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 62, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 41, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 40, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 11, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 48, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 44, - "endColumn": 47, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 17, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 77, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 49, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 20, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 38, + "endColumn": 43, "lineCount": 1 } - } - ], - "./sumpy/test/test_matrixgen.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 19, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, - "endColumn": 34, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 18, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 58, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 19, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 50, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 65, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 9, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 27, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 46, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 33, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 40, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 24, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 30, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 23, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 38, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 11, + "startColumn": 12, "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 31, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 42, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 30, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 14, + "endColumn": 35, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_matrixgen.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 63, + "startColumn": 4, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 20, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 39, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 52, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 4, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 38, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 38, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 56, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 72, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 30, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 11, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, + "startColumn": 21, "endColumn": 38, "lineCount": 1 } @@ -27054,264 +24198,272 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 53, + "startColumn": 32, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 21, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 20, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 53, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 27, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 27, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 45, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 80, + "startColumn": 32, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 49, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 47, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 55, + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 72, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 38, + "startColumn": 32, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 49, + "endColumn": 67, "lineCount": 1 } } @@ -27609,7 +24761,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 24, - "endColumn": 36, + "endColumn": 39, "lineCount": 1 } }, @@ -27617,31 +24769,7 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 24, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 29, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 53, + "endColumn": 39, "lineCount": 1 } }, @@ -27854,210 +24982,82 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 38, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 11, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 4, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 30, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 22, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 30, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 41, + "startColumn": 37, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 11, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, @@ -28189,30 +25189,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -28256,8 +25232,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, @@ -28272,8 +25248,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, @@ -28288,8 +25264,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 44, + "endColumn": 56, "lineCount": 1 } }, @@ -28305,7 +25281,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 42, + "endColumn": 48, "lineCount": 1 } }, @@ -28911,30 +25887,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29000,42 +25952,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportArgumentType", "range": { "startColumn": 33, - "endColumn": 72, + "endColumn": 38, "lineCount": 1 } }, @@ -29079,34 +25999,10 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, + "startColumn": 18, "endColumn": 41, "lineCount": 1 } @@ -29114,19 +26010,11 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, + "startColumn": 18, "endColumn": 41, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -29207,19 +26095,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 26, + "endColumn": 20, "lineCount": 1 } }, @@ -29255,19 +26135,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 26, + "endColumn": 20, "lineCount": 1 } }, @@ -29280,103 +26152,63 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 33, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 71, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 70, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } - } - ], - "./sumpy/test/test_target_deriv.py": [ + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 32, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 45, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 24, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 47, + "startColumn": 31, + "endColumn": 54, "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_target_deriv.py": [ { "code": "reportAny", "range": { @@ -29491,38 +26323,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -29662,178 +26462,42 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 15, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 15, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 22, - "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": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 44, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, @@ -30174,34 +26838,50 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 32, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 37, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 34, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 34, + "endColumn": 40, "lineCount": 1 } }, @@ -30229,14 +26909,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -30253,14 +26925,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -30941,14 +27605,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -30984,8 +27640,8 @@ { "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 24, + "startColumn": 13, + "endColumn": 23, "lineCount": 1 } }, @@ -30997,14 +27653,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 40, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -31030,26 +27678,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, @@ -31060,25 +27692,9 @@ "endColumn": 30, "lineCount": 1 } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 33, - "lineCount": 1 - } } ], "./sumpy/toys.py": [ - { - "code": "reportUnusedImport", - "range": { - "startColumn": 16, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -31099,7 +27715,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 9, - "endColumn": 16, + "endColumn": 13, "lineCount": 1 } }, @@ -31107,143 +27723,151 @@ "code": "reportMissingParameterType", "range": { "startColumn": 9, - "endColumn": 16, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 49, + "startColumn": 32, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 52, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 52, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 74, + "startColumn": 57, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 74, + "startColumn": 57, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 69, + "endColumn": 80, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 69, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 19, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 33, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 39, + "startColumn": 18, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 45, + "startColumn": 18, + "endColumn": 38, "lineCount": 1 } }, @@ -31256,10 +27880,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, @@ -31298,128 +27922,120 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 60, + "startColumn": 36, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 60, + "startColumn": 23, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 47, + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 64, + "startColumn": 14, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 64, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 52, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 67, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 9, - "endColumn": 16, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 16, + "startColumn": 15, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, @@ -31431,14 +28047,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -31448,34 +28056,34 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 24, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 33, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, @@ -31520,34 +28128,26 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 13, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 63, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, @@ -31560,18 +28160,18 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 68, + "startColumn": 53, + "endColumn": 60, "lineCount": 1 } }, @@ -31587,7 +28187,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 11, - "endColumn": 18, + "endColumn": 24, "lineCount": 1 } }, @@ -31719,46 +28319,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 13, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -31794,32 +28354,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 63, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, @@ -31840,10 +28384,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 69, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, @@ -31906,104 +28450,104 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 40, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 72, - "endColumn": 83, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 72, - "endColumn": 83, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 9, - "endColumn": 35, + "startColumn": 67, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 35, + "startColumn": 67, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 9, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 9, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 37, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 64, + "startColumn": 38, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 63, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, @@ -32018,16 +28562,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 74, + "startColumn": 52, + "endColumn": 66, "lineCount": 1 } }, @@ -32074,16 +28610,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 63, + "startColumn": 47, + "endColumn": 62, "lineCount": 1 } }, @@ -32096,50 +28624,26 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 17, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 69, + "startColumn": 48, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 18, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, @@ -32167,43 +28671,27 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 76, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 69, + "startColumn": 63, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, @@ -32242,48 +28730,48 @@ { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 55, + "startColumn": 18, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 73, - "endColumn": 80, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 34, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 45, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 48, + "startColumn": 56, + "endColumn": 64, "lineCount": 1 } }, @@ -32314,48 +28802,32 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 70, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 59, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 40, + "startColumn": 49, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 75, + "startColumn": 42, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 75, + "startColumn": 42, + "endColumn": 67, "lineCount": 1 } }, @@ -32370,24 +28842,16 @@ { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 29, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 62, + "startColumn": 22, + "endColumn": 30, "lineCount": 1 } }, @@ -32426,56 +28890,56 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 72, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 26, + "startColumn": 21, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 32, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 48, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 63, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 75, + "startColumn": 58, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 27, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, @@ -32491,7 +28955,15 @@ "code": "reportUnusedParameter", "range": { "startColumn": 19, - "endColumn": 26, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, @@ -32623,14 +29095,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -32719,22 +29183,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -33127,14 +29575,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -33143,40 +29583,16 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 25, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 10, "endColumn": 21, @@ -33184,7 +29600,7 @@ } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 10, "endColumn": 21, @@ -33194,16 +29610,16 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, @@ -33218,40 +29634,40 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 47, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 50, + "startColumn": 47, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 71, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 71, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 71, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, @@ -33338,16 +29754,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 25, + "endColumn": 34, "lineCount": 1 } }, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2e9b132b..6f3dd2f1d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,8 +121,8 @@ jobs: run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 - if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "e2p" ]]; then - DOWNSTREAM_PROJECT=https://github.com/isuruf/pytential.git@e2p + if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "towards-array-context-merge" ]]; then + DOWNSTREAM_PROJECT=https://github.com/alexfikl/pytential.git@towards-array-context fi test_downstream "$DOWNSTREAM_PROJECT" diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index 2249501e3..46ddbbee7 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -8,7 +8,8 @@ dependencies: - numpy - scipy - sympy -- pocl +# https://github.com/pocl/pocl/issues/2069 +- pocl<7 - pocl-cuda - islpy - pyopencl diff --git a/doc/conf.py b/doc/conf.py index 2e3b8ce20..21e6be08b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -26,6 +26,7 @@ nitpick_ignore_regex = [ ["py:class", r"symengine\.(.+)"], # :cry: + ["py:class", r"ToTagSetConvertible"], # :cry: ] sphinxconfig_missing_reference_aliases = { @@ -36,6 +37,7 @@ "np.complexfloating": "class:numpy.complexfloating", "np.inexact": "class:numpy.inexact", "np.dtype": "class:numpy.dtype", + "np.number": "class:numpy.number", # pytools "obj_array.ObjectArray1D": "obj:pytools.obj_array.ObjectArray1D", # sympy @@ -53,6 +55,7 @@ "CallInstruction": "class:loopy.kernel.instruction.CallInstruction", # arraycontext "Array": "obj:arraycontext.Array", + "ArrayContext": "class:arraycontext.ArrayContext", # boxtree "FMMTraversalInfo": "class:boxtree.traversal.FMMTraversalInfo", # sumpy diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 101758517..a2669da43 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -91,7 +91,7 @@ def draw_pot_figure(aspect_ratio, knl_kwargs = {} vol_source_knl, vol_target_knl = process_kernel(knl, what_operator) - p2p = P2P(actx.context, + p2p = P2P( source_kernels=(vol_source_knl,), target_kernels=(vol_target_knl,), exclude_self=False, @@ -100,7 +100,7 @@ def draw_pot_figure(aspect_ratio, lpot_source_knl, lpot_target_knl = process_kernel(knl, what_operator_lpot) from sumpy.qbx import LayerPotential - lpot = LayerPotential(actx.context, + lpot = LayerPotential( expansion=expn_class(knl, order=order), source_kernels=(lpot_source_knl,), target_kernels=(lpot_target_knl,), @@ -184,7 +184,8 @@ def map_to_curve(t: NDArray[np.floating]): def apply_lpot(x: NDArray[np.inexact]) -> NDArray[np.inexact]: xovsmp = fim @ x - _evt, (y,) = lpot(actx.queue, + y, = lpot( + actx, sources, ovsmp_sources, actx.from_numpy(centers), @@ -209,7 +210,8 @@ def apply_lpot(x: NDArray[np.inexact]) -> NDArray[np.inexact]: density = np.cos(mode_nr*2*np.pi*native_t).astype(np.complex128) strength = actx.from_numpy(native_curve.speed * native_weights * density) - _evt, (vol_pot,) = p2p(actx.queue, + vol_pot, = p2p( + actx, targets, sources, [strength], **volpot_kwargs) @@ -219,7 +221,8 @@ def apply_lpot(x: NDArray[np.inexact]) -> NDArray[np.inexact]: ovsmp_strength = actx.from_numpy( ovsmp_curve.speed * ovsmp_weights * ovsmp_density) - _evt, (curve_pot,) = lpot(actx.queue, + curve_pot, = lpot( + actx, sources, ovsmp_sources, actx.from_numpy(centers), diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index b61aafcf5..4d1483aef 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -21,7 +21,6 @@ def main(): actx = PyOpenCLArrayContext(queue) tctx = t.ToyContext( - actx.context, # LaplaceKernel(2), YukawaKernel(2), extra_kernel_kwargs={"lam": 5}, # HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3}, @@ -36,22 +35,22 @@ def main(): fp = FieldPlotter([3, 0], extent=8) if USE_MATPLOTLIB: - t.logplot(fp, pt_src, cmap="jet") + t.logplot(actx, fp, pt_src, cmap="jet") plt.colorbar() plt.show() - mexp = t.multipole_expand(pt_src, [0, 0], 5) - mexp2 = t.multipole_expand(mexp, [0, 0.25]) # noqa: F841 - lexp = t.local_expand(mexp, [3, 0]) - lexp2 = t.local_expand(lexp, [3, 1], 3) + mexp = t.multipole_expand(actx, pt_src, [0, 0], order=5) + mexp2 = t.multipole_expand(actx, mexp, [0, 0.25]) # noqa: F841 + lexp = t.local_expand(actx, mexp, [3, 0]) + lexp2 = t.local_expand(actx, lexp, [3, 1], order=3) # diff = mexp - pt_src # diff = mexp2 - pt_src diff = lexp2 - pt_src - print(t.l_inf(diff, 1.2, center=lexp2.center)) + print(t.l_inf(actx, diff, 1.2, center=lexp2.center)) if USE_MATPLOTLIB: - t.logplot(fp, diff, cmap="jet", vmin=-3, vmax=0) + t.logplot(actx, fp, diff, cmap="jet", vmin=-3, vmax=0) plt.colorbar() plt.show() diff --git a/sumpy/__init__.py b/sumpy/__init__.py index 5a25a161e..3acd93aa1 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -66,8 +66,8 @@ ] -code_cache: WriteOncePersistentDict[Hashable, lp.TranslationUnit] = \ - WriteOncePersistentDict("sumpy-code-cache-v6-"+VERSION_TEXT, safe_sync=False) +code_cache: WriteOncePersistentDict[Hashable, lp.TranslationUnit] = ( + WriteOncePersistentDict(f"sumpy-code-cache-v8-{VERSION_TEXT}", safe_sync=False)) # {{{ optimization control @@ -87,8 +87,6 @@ def set_optimization_enabled(flag): # {{{ cache control -CACHING_ENABLED = True - CACHING_ENABLED = ( "SUMPY_NO_CACHE" not in os.environ and "CG_NO_CACHE" not in os.environ) diff --git a/sumpy/array_context.py b/sumpy/array_context.py index cc54048a8..68d1bdc00 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -23,36 +23,102 @@ THE SOFTWARE. """ +from typing import TYPE_CHECKING, Any + from boxtree.array_context import PyOpenCLArrayContext as PyOpenCLArrayContextBase +from typing_extensions import override +import loopy as lp from arraycontext.pytest import ( _PytestPyOpenCLArrayContextFactoryWithClass, register_pytest_array_context_factory, ) +if TYPE_CHECKING: + from collections.abc import Iterator + + from numpy.typing import DTypeLike + + from arraycontext import ArrayContext + from loopy import TranslationUnit + from loopy.codegen import PreambleInfo + from pytools.tag import ToTagSetConvertible + + __doc__ = """ Array Context ------------- +.. autofunction:: make_loopy_program .. autoclass:: PyOpenCLArrayContext """ # {{{ PyOpenCLArrayContext +def make_loopy_program( + domains, statements, + kernel_data: list[Any] | None = None, *, + name: str = "sumpy_loopy_kernel", + silenced_warnings: list[str] | str | None = None, + assumptions: str = "", + fixed_parameters: dict[str, Any] | None = None, + index_dtype: DTypeLike | None = None, + tags: ToTagSetConvertible = None): + """Return a :class:`loopy.LoopKernel` suitable for use with + :meth:`arraycontext.ArrayContext.call_loopy`. + """ + if kernel_data is None: + kernel_data = [...] + + if silenced_warnings is None: + silenced_warnings = [] + + import loopy as lp + from arraycontext.loopy import _DEFAULT_LOOPY_OPTIONS + + return lp.make_kernel( + domains, + statements, + kernel_data=kernel_data, + options=_DEFAULT_LOOPY_OPTIONS, + default_offset=lp.auto, + name=name, + lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, + assumptions=assumptions, + fixed_parameters=fixed_parameters, + silenced_warnings=silenced_warnings, + index_dtype=index_dtype, + tags=tags) + + +def _fp_contract_fast_preamble( + preamble_info: PreambleInfo + ) -> Iterator[tuple[str, str]]: + yield ("fp_contract_fast_pocl", "#pragma clang fp contract(fast)") + + class PyOpenCLArrayContext(PyOpenCLArrayContextBase): - def transform_loopy_program(self, t_unit): - default_ep = t_unit.default_entrypoint - options = default_ep.options + @override + def transform_loopy_program(self, t_unit: TranslationUnit): + import pyopencl as cl + device = self.queue.device + if (device.platform.name == "Portable Computing Language" + and (device.type & cl.device_type.GPU)): + t_unit = lp.register_preamble_generators( + t_unit, + [_fp_contract_fast_preamble]) + + return t_unit - if not (options.return_dict and options.no_numpy): - raise ValueError("Loopy kernel passed to call_loopy must " - "have return_dict and no_numpy options set. " - "Did you use arraycontext.make_loopy_program " - "to create this kernel?") - return super().transform_loopy_program(t_unit) +def is_cl_cpu(actx: ArrayContext) -> bool: + if not isinstance(actx, PyOpenCLArrayContext): + return False + + import pyopencl as cl + return all(dev.type & cl.device_type.CPU for dev in actx.context.devices) # }}} diff --git a/sumpy/codegen.py b/sumpy/codegen.py index e3e071a62..aa8637667 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -47,8 +47,6 @@ from numpy.typing import DTypeLike - import pyopencl as cl - from loopy.codegen import PreambleInfo from loopy.target import TargetBase from loopy.translation_unit import CallablesInferenceContext from loopy.types import LoopyType @@ -249,26 +247,6 @@ def register_bessel_callables(loopy_knl: lp.TranslationUnit) -> lp.TranslationUn return loopy_knl - -def _fp_contract_fast_preamble( - preamble_info: PreambleInfo - ) -> Iterator[tuple[str, str]]: - yield ("fp_contract_fast_pocl", "#pragma clang fp contract(fast)") - - -def register_optimization_preambles( - loopy_knl: lp.TranslationUnit, device: cl.Device - ) -> lp.TranslationUnit: - if isinstance(loopy_knl.target, lp.PyOpenCLTarget): - import pyopencl as cl - if (device.platform.name == "Portable Computing Language" - and (device.type & cl.device_type.GPU)): - loopy_knl = lp.register_preamble_generators( - loopy_knl, - [_fp_contract_fast_preamble]) - - return loopy_knl - # }}} @@ -753,7 +731,7 @@ def to_loopy_insns( assignments: Iterable[tuple[str, sym.Expr]], vector_names: Set[str] | None = None, pymbolic_expr_maps: Sequence[Callable[[Expression], Expression]] = (), - complex_dtype: DTypeLike = None, + complex_dtype: DTypeLike | None = None, retain_names: Set[str] | None = None, ) -> Sequence[Assignment | CallInstruction]: if vector_names is None: diff --git a/sumpy/distributed.py b/sumpy/distributed.py index df66f308f..a7a5e1941 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -23,66 +23,78 @@ THE SOFTWARE. """ -from boxtree.distributed.calculation import DistributedExpansionWrangler +from typing import TYPE_CHECKING + +from boxtree.distributed.calculation import DistributedExpansionWranglerMixin -import pyopencl.array as cl_array import pytools.obj_array as obj_array from sumpy.fmm import SumpyExpansionWrangler +if TYPE_CHECKING: + from arraycontext import ArrayContext + + class DistributedSumpyExpansionWrangler( - DistributedExpansionWrangler, SumpyExpansionWrangler): + DistributedExpansionWranglerMixin, SumpyExpansionWrangler): def __init__( - self, context, comm, tree_indep, local_traversal, global_traversal, + self, actx: ArrayContext, + comm, tree_indep, local_traversal, global_traversal, dtype, fmm_level_to_order, communicate_mpoles_via_allreduce=False, - **kwarg): - DistributedExpansionWrangler.__init__( - self, context, comm, global_traversal, True, - communicate_mpoles_via_allreduce=communicate_mpoles_via_allreduce) + **kwargs): SumpyExpansionWrangler.__init__( - self, tree_indep, local_traversal, dtype, fmm_level_to_order, **kwarg) + self, tree_indep, local_traversal, dtype, fmm_level_to_order, + **kwargs) - def distribute_source_weights(self, src_weight_vecs, src_idx_all_ranks): - src_weight_vecs_host = [src_weight.get() for src_weight in src_weight_vecs] + self.comm = comm + self.traversal_in_device_memory = True + self.global_traversal = global_traversal + self.communicate_mpoles_via_allreduce = communicate_mpoles_via_allreduce + + def distribute_source_weights(self, + actx: ArrayContext, src_weight_vecs, src_idx_all_ranks): + src_weight_vecs_host = [ + actx.to_numpy(src_weight) for src_weight in src_weight_vecs + ] local_src_weight_vecs_host = super().distribute_source_weights( - src_weight_vecs_host, src_idx_all_ranks) + actx, src_weight_vecs_host, src_idx_all_ranks) local_src_weight_vecs_device = [ - cl_array.to_device(src_weight.queue, local_src_weight) - for local_src_weight, src_weight in - zip(local_src_weight_vecs_host, src_weight_vecs, strict=True)] + actx.from_numpy(local_src_weight) + for local_src_weight in local_src_weight_vecs_host] return local_src_weight_vecs_device - def gather_potential_results(self, potentials, tgt_idx_all_ranks): - mpi_rank = self.comm.Get_rank() - - potentials_host_vec = [potentials_dev.get() for potentials_dev in potentials] + def gather_potential_results(self, + actx: ArrayContext, potentials, tgt_idx_all_ranks): + potentials_host_vec = [ + actx.to_numpy(potentials_dev) for potentials_dev in potentials + ] gathered_potentials_host_vec = [] for potentials_host in potentials_host_vec: gathered_potentials_host_vec.append( - super().gather_potential_results(potentials_host, tgt_idx_all_ranks)) + super().gather_potential_results( + actx, potentials_host, tgt_idx_all_ranks)) - if mpi_rank == 0: + if self.is_mpi_root: return obj_array.new_1d([ - cl_array.to_device(potentials_dev.queue, gathered_potentials_host) - for gathered_potentials_host, potentials_dev in - zip(gathered_potentials_host_vec, potentials, strict=True)]) + actx.from_numpy(gathered_potentials_host) + for gathered_potentials_host in gathered_potentials_host_vec + ]) else: return None def reorder_sources(self, source_array): - if self.comm.Get_rank() == 0: - return source_array.with_queue(source_array.queue)[ - self.global_traversal.tree.user_source_ids] + if self.is_mpi_root: + return source_array[self.global_traversal.tree.user_source_ids] else: return source_array def reorder_potentials(self, potentials): - if self.comm.Get_rank() == 0: + if self.is_mpi_root: import numpy as np assert ( @@ -96,8 +108,9 @@ def reorder(x): else: return None - def communicate_mpoles(self, mpole_exps, return_stats=False): - mpole_exps_host = mpole_exps.get() - stats = super().communicate_mpoles(mpole_exps_host, return_stats) + def communicate_mpoles(self, + actx: ArrayContext, mpole_exps, return_stats=False): + mpole_exps_host = actx.to_numpy(mpole_exps) + stats = super().communicate_mpoles(actx, mpole_exps_host, return_stats) mpole_exps[:] = mpole_exps_host return stats diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 4f5162f0a..34b888deb 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -25,19 +25,24 @@ import logging from abc import ABC, abstractmethod +from typing import TYPE_CHECKING import numpy as np +from typing_extensions import override import loopy as lp -import pymbolic -from loopy.version import MOST_RECENT_LANGUAGE_VERSION +from loopy.version import MOST_RECENT_LANGUAGE_VERSION # noqa: F401 from pytools import memoize_method import sumpy.symbolic as sym -from sumpy.codegen import register_optimization_preambles +from sumpy.array_context import make_loopy_program from sumpy.tools import KernelCacheMixin, to_complex_dtype +if TYPE_CHECKING: + from arraycontext import ArrayContext + + logger = logging.getLogger(__name__) @@ -50,15 +55,13 @@ .. autoclass:: E2EFromCSR .. autoclass:: E2EFromParent .. autoclass:: E2EFromChildren - """ -# {{{ translation base class +# {{{ E2EBase: base class class E2EBase(KernelCacheMixin, ABC): - def __init__(self, ctx, src_expansion, tgt_expansion, - name=None, device=None): + def __init__(self, src_expansion, tgt_expansion, name=None): """ :arg expansion: a subclass of :class:`sympy.expansion.ExpansionBase` :arg strength_usage: A list of integers indicating which expression @@ -66,37 +69,25 @@ def __init__(self, ctx, src_expansion, tgt_expansion, number of strength arrays that need to be passed. Default: all kernels use the same strength. """ - - if device is None: - device = ctx.devices[0] + from sumpy.kernel import ( + SourceTransformationRemover, + TargetTransformationRemover, + ) + txr = TargetTransformationRemover() + sxr = SourceTransformationRemover() if src_expansion is tgt_expansion: - from sumpy.kernel import ( - SourceTransformationRemover, - TargetTransformationRemover, - ) - tgt_expansion = src_expansion = src_expansion.with_kernel( - SourceTransformationRemover()( - TargetTransformationRemover()(src_expansion.kernel))) - + tgt_expansion = src_expansion = ( + src_expansion.with_kernel(sxr(txr(src_expansion.kernel)))) else: + src_expansion = ( + src_expansion.with_kernel(sxr(txr(src_expansion.kernel)))) + tgt_expansion = ( + tgt_expansion.with_kernel(sxr(txr(tgt_expansion.kernel)))) - from sumpy.kernel import ( - SourceTransformationRemover, - TargetTransformationRemover, - ) - src_expansion = src_expansion.with_kernel( - SourceTransformationRemover()( - TargetTransformationRemover()(src_expansion.kernel))) - tgt_expansion = tgt_expansion.with_kernel( - SourceTransformationRemover()( - TargetTransformationRemover()(tgt_expansion.kernel))) - - self.context = ctx self.src_expansion = src_expansion self.tgt_expansion = tgt_expansion self.name = name or self.default_name - self.device = device if src_expansion.dim != tgt_expansion.dim: raise ValueError("source and target expansions must have " @@ -111,8 +102,8 @@ def default_name(self): @memoize_method def get_translation_loopy_insns(self): - from sumpy.symbolic import make_sym_vector - dvec = make_sym_vector("d", self.dim) + import sumpy.symbolic as sym + dvec = sym.make_sym_vector("d", self.dim) src_coeff_exprs = [ sym.Symbol(f"src_coeff{i}") @@ -141,11 +132,7 @@ def get_translation_loopy_insns(self): ) def get_cache_key(self): - return ( - type(self).__name__, - self.src_expansion, - self.tgt_expansion, - ) + return (type(self).__name__, self.src_expansion, self.tgt_expansion) @abstractmethod def get_kernel(self): @@ -155,32 +142,25 @@ def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") - knl = register_optimization_preambles(knl, self.device) return knl # }}} -# {{{ translation from "compressed sparse row"-like source box lists +# {{{ E2EFromCSR: translation from "compressed sparse row"-like source box lists class E2EFromCSR(E2EBase): """Implements translation from a "compressed sparse row"-like source box list. """ - def __init__(self, ctx, src_expansion, tgt_expansion, - name=None, device=None): - super().__init__(ctx, src_expansion, tgt_expansion, - name=name, device=device) - @property def default_name(self): return "e2e_from_csr" def get_translation_loopy_insns(self): - from sumpy.symbolic import make_sym_vector - dvec = make_sym_vector("d", self.dim) + dvec = sym.make_sym_vector("d", self.dim) src_rscale = sym.Symbol("src_rscale") tgt_rscale = sym.Symbol("tgt_rscale") @@ -219,12 +199,11 @@ def get_kernel(self): # (same for itgt_box, tgt_ibox) from sumpy.tools import gather_loopy_arguments - loopy_knl = lp.make_kernel( - [ - "{[itgt_box]: 0<=itgt_box tgt_ibox = target_boxes[itgt_box] @@ -253,7 +232,7 @@ def get_kernel(self): """ for coeffidx in range(ncoeff_tgt)] + [""" end """], - [ + kernel_data=[ lp.GlobalArg("centers", None, shape="dim, aligned_nboxes"), lp.ValueArg("src_rscale,tgt_rscale", None), lp.GlobalArg("src_box_starts, src_box_lists", @@ -273,9 +252,7 @@ def get_kernel(self): name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - default_offset=lp.auto, fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION ) for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: @@ -287,15 +264,15 @@ def get_kernel(self): return loopy_knl + @override def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") - knl = register_optimization_preambles(knl, self.device) return knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: :arg src_box_starts: @@ -310,13 +287,18 @@ def __call__(self, queue, **kwargs): src_rscale = centers.dtype.type(kwargs.pop("src_rscale")) tgt_rscale = centers.dtype.type(kwargs.pop("tgt_rscale")) - knl = self.get_cached_kernel_executor() + knl = self.get_cached_kernel() + result = actx.call_loopy( + knl, + centers=centers, + src_rscale=src_rscale, tgt_rscale=tgt_rscale, + **kwargs) + + return result["tgt_expansions"] +# }}} - return knl(queue, - centers=centers, - src_rscale=src_rscale, tgt_rscale=tgt_rscale, - **kwargs) +# {{{ M2LUsingTranslationClassesDependentData class M2LUsingTranslationClassesDependentData(E2EFromCSR): """Implements translation from a "compressed sparse row"-like source box @@ -328,8 +310,8 @@ def default_name(self): return "m2l_using_translation_classes_dependent_data" def get_translation_loopy_insns(self, result_dtype): - from sumpy.symbolic import make_sym_vector - dvec = make_sym_vector("d", self.dim) + import sumpy.symbolic as sym + dvec = sym.make_sym_vector("d", self.dim) src_rscale = sym.Symbol("src_rscale") tgt_rscale = sym.Symbol("tgt_rscale") @@ -387,11 +369,13 @@ def get_inner_loopy_kernel(self, result_dtype): ncoeff_src = len(self.src_expansion) ncoeff_tgt = len(self.tgt_expansion) + import pymbolic as prim + domains: list[str] = [] insns = self.get_translation_loopy_insns(result_dtype) - tgt_coeffs = pymbolic.var("tgt_coeffs") + tgt_coeffs = prim.var("tgt_coeffs") for i in range(ncoeff_tgt): - expr = pymbolic.var(f"tgt_coeff{i}") + expr = prim.var(f"tgt_coeff{i}") insn = lp.Assignment(assignee=tgt_coeffs[i], expression=tgt_coeffs[i] + expr) insns.append(insn) @@ -434,13 +418,12 @@ def get_kernel(self, result_dtype): translation_knl = self.get_inner_loopy_kernel(result_dtype) from sumpy.tools import gather_loopy_arguments - loopy_knl = lp.make_kernel( - [ - "{[itgt_box]: 0<=itgt_box d[idim] = m2l_translation_vectors[idim, \ @@ -600,7 +585,7 @@ def get_kernel(self, result_dtype): ) {id=update,dep=set_d} end """], - [ + kernel_data=[ lp.ValueArg("src_rscale", None), lp.GlobalArg("m2l_translation_classes_dependent_data", None, shape=("ntranslation_classes", @@ -616,12 +601,10 @@ def get_kernel(self, result_dtype): ], name=self.name, assumptions="ntranslation_classes>=1", - default_offset=lp.auto, fixed_parameters={ "dim": self.dim, "m2l_translation_classes_dependent_ndata": ( m2l_translation_classes_dependent_ndata)}, - lang_version=MOST_RECENT_LANGUAGE_VERSION ) for expr_knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: @@ -643,11 +626,10 @@ def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) knl = lp.tag_inames(knl, "idim*:unr") knl = lp.tag_inames(knl, {"itr_class": "g.0"}) - knl = register_optimization_preambles(knl, self.device) return knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_rscale: :arg translation_classes_level_start: @@ -664,14 +646,16 @@ def __call__(self, queue, **kwargs): "m2l_translation_classes_dependent_data") result_dtype = m2l_translation_classes_dependent_data.dtype - knl = self.get_cached_kernel_executor(result_dtype=result_dtype) + knl = self.get_cached_kernel(result_dtype=result_dtype) + result = actx.call_loopy( + knl, + src_rscale=src_rscale, + m2l_translation_vectors=m2l_translation_vectors, + m2l_translation_classes_dependent_data=( + m2l_translation_classes_dependent_data), + **kwargs) - return knl(queue, - src_rscale=src_rscale, - m2l_translation_vectors=m2l_translation_vectors, - m2l_translation_classes_dependent_data=( - m2l_translation_classes_dependent_data), - **kwargs) + return result["m2l_translation_classes_dependent_data"] # }}} @@ -701,7 +685,7 @@ def get_kernel(self, result_dtype): result_dtype) from sumpy.tools import gather_loopy_arguments - loopy_knl = lp.make_kernel( + loopy_knl = make_loopy_program( [ "{[isrc_box]: 0<=isrc_box tgt_ibox = target_boxes[itgt_box] @@ -931,7 +916,7 @@ def get_kernel(self): end end """], - [ + kernel_data=[ lp.GlobalArg("target_boxes", None, shape=lp.auto, offset=lp.auto), lp.GlobalArg("centers", None, shape="dim, aligned_nboxes"), @@ -952,7 +937,7 @@ def get_kernel(self): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", fixed_parameters={"dim": self.dim, "nchildren": 2**self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) @@ -963,7 +948,7 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: :arg src_box_starts: @@ -972,23 +957,25 @@ def __call__(self, queue, **kwargs): :arg tgt_rscale: :arg centers: """ - knl = self.get_cached_kernel_executor() - centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type # meaningfully inferred. Make the type of rscale explicit. src_rscale = centers.dtype.type(kwargs.pop("src_rscale")) tgt_rscale = centers.dtype.type(kwargs.pop("tgt_rscale")) - return knl(queue, - centers=centers, - src_rscale=src_rscale, tgt_rscale=tgt_rscale, - **kwargs) + knl = self.get_cached_kernel() + result = actx.call_loopy( + knl, + centers=centers, + src_rscale=src_rscale, tgt_rscale=tgt_rscale, + **kwargs) + + return result["tgt_expansions"] # }}} -# {{{ translation from a box's parent +# {{{ E2EFromParent: translation from a box's parent class E2EFromParent(E2EBase): @property @@ -1007,11 +994,10 @@ def get_kernel(self): # (same for itgt_box, tgt_ibox) from sumpy.tools import gather_loopy_arguments - loopy_knl = lp.make_kernel( - [ - "{[itgt_box]: 0<=itgt_box tgt_ibox = target_boxes[itgt_box] @@ -1038,7 +1024,7 @@ def get_kernel(self): """ for i in range(ncoeffs_tgt)] + [""" end """], - [ + kernel_data=[ lp.GlobalArg("target_boxes", None, shape=lp.auto, offset=lp.auto), lp.GlobalArg("centers", None, shape="dim, naligned_boxes"), @@ -1054,10 +1040,11 @@ def get_kernel(self): "...", *gather_loopy_arguments([self.src_expansion, self.tgt_expansion]) ], - name=self.name, assumptions="ntgt_boxes>=1", + name=self.name, + assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", fixed_parameters={"dim": self.dim, "nchildren": 2**self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) for knl in [self.src_expansion.kernel, self.tgt_expansion.kernel]: loopy_knl = knl.prepare_loopy_kernel(loopy_knl) @@ -1068,7 +1055,7 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: :arg src_box_starts: @@ -1077,18 +1064,20 @@ def __call__(self, queue, **kwargs): :arg tgt_rscale: :arg centers: """ - knl = self.get_cached_kernel_executor() - centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type # meaningfully inferred. Make the type of rscale explicit. src_rscale = centers.dtype.type(kwargs.pop("src_rscale")) tgt_rscale = centers.dtype.type(kwargs.pop("tgt_rscale")) - return knl(queue, - centers=centers, - src_rscale=src_rscale, tgt_rscale=tgt_rscale, - **kwargs) + knl = self.get_cached_kernel() + result = actx.call_loopy( + knl, + centers=centers, + src_rscale=src_rscale, tgt_rscale=tgt_rscale, + **kwargs) + + return result["tgt_expansions"] # }}} diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 87e2f1394..400d7b44c 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -24,16 +24,22 @@ """ from abc import ABC, abstractmethod +from typing import TYPE_CHECKING import numpy as np import loopy as lp -from loopy.version import MOST_RECENT_LANGUAGE_VERSION +import pytools.obj_array as obj_array +from loopy.version import MOST_RECENT_LANGUAGE_VERSION # noqa: F401 -from sumpy.codegen import register_optimization_preambles +from sumpy.array_context import make_loopy_program from sumpy.tools import KernelCacheMixin, gather_loopy_arguments +if TYPE_CHECKING: + from arraycontext import ArrayContext + + __doc__ = """ Expansion-to-particle @@ -46,11 +52,10 @@ """ -# {{{ E2P base class +# {{{ E2PBase: base class class E2PBase(KernelCacheMixin, ABC): - def __init__(self, ctx, expansion, kernels, - name=None, device=None): + def __init__(self, expansion, kernels, name=None): """ :arg expansion: a subclass of :class:`sympy.expansion.ExpansionBase` :arg strength_usage: A list of integers indicating which expression @@ -59,31 +64,28 @@ def __init__(self, ctx, expansion, kernels, Default: all kernels use the same strength. """ - if device is None: - device = ctx.devices[0] - from sumpy.kernel import ( SourceTransformationRemover, TargetTransformationRemover, ) sxr = SourceTransformationRemover() txr = TargetTransformationRemover() - expansion = expansion.with_kernel( - sxr(expansion.kernel)) + expansion = expansion.with_kernel(sxr(expansion.kernel)) kernels = [sxr(knl) for knl in kernels] for knl in kernels: assert txr(knl) == expansion.kernel - self.context = ctx self.expansion = expansion self.kernels = kernels self.name = name or self.default_name - self.device = device self.dim = expansion.dim @property + def nresults(self): + return len(self.kernels) + @abstractmethod def default_name(self): pass @@ -117,7 +119,7 @@ def get_kernel_scaling_assignment(self): # }}} -# {{{ E2P to single box (L2P, likely) +# {{{ E2PFromSingleBox: E2P to single box (L2P, likely) class E2PFromSingleBox(E2PBase): @property @@ -128,7 +130,7 @@ def get_kernel(self): ncoeffs = len(self.expansion) loopy_args = self.get_loopy_args() - loopy_knl = lp.make_kernel( + loopy_knl = make_loopy_program( [ "{[itgt_box]: 0<=itgt_box LocalExpansionBase class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): """Objects of this type serve as a place to keep the code needed for :class:`SumpyExpansionWrangler`. Since :class:`SumpyExpansionWrangler` - necessarily must have a :class:`pyopencl.CommandQueue`, but this queue - is allowed to be more ephemeral than the code, the code's lifetime - is decoupled by storing it in this object. - - Timing results returned by this wrangler contain the values *wall_elapsed* - which measures elapsed wall time. This requires a command queue with - profiling enabled. + contains data that is allowed to be more ephemeral than the code, the code's + lifetime is decoupled by storing it in this object. """ - cl_context: cl.Context multipole_expansion_factory: MultipoleExpansionFromOrderFactory local_expansion_factory: LocalExpansionFromOrderFactory source_kernels: Sequence[Kernel] | None @@ -120,7 +113,7 @@ class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): strength_usage: Sequence[int] | None def __init__(self, - cl_context: cl.Context, + array_context: ArrayContext, multipole_expansion_factory: MultipoleExpansionFromOrderFactory, local_expansion_factory: LocalExpansionFromOrderFactory, target_kernels: Sequence[Kernel], @@ -138,6 +131,10 @@ def __init__(self, :arg strength_usage: passed unchanged to p2l, p2m and p2p. :arg source_kernels: passed unchanged to p2l, p2m and p2p. """ + super().__init__() + + self._setup_actx: ArrayContext = array_context + self.multipole_expansion_factory = multipole_expansion_factory self.local_expansion_factory = local_expansion_factory self.source_kernels = source_kernels @@ -146,10 +143,6 @@ def __init__(self, self.use_rscale = use_rscale self.strength_usage = strength_usage - super().__init__() - - self.cl_context = cl_context - @memoize_method def get_base_kernel(self): from pytools import single_valued @@ -175,21 +168,21 @@ def m2l_translation(self): @memoize_method def p2m(self, tgt_order): - return P2EFromSingleBox(self.cl_context, + return P2EFromSingleBox( kernels=self.source_kernels, expansion=self.multipole_expansion(tgt_order), strength_usage=self.strength_usage, name="p2m") @memoize_method def p2l(self, tgt_order): - return P2EFromCSR(self.cl_context, + return P2EFromCSR( kernels=self.source_kernels, expansion=self.local_expansion(tgt_order), strength_usage=self.strength_usage, name="p2l") @memoize_method def m2m(self, src_order, tgt_order): - return E2EFromChildren(self.cl_context, + return E2EFromChildren( self.multipole_expansion(src_order), self.multipole_expansion(tgt_order), name="m2m") @@ -200,118 +193,56 @@ def m2l(self, src_order, tgt_order, m2l_class = M2LUsingTranslationClassesDependentData else: m2l_class = E2EFromCSR - return m2l_class(self.cl_context, + return m2l_class( self.multipole_expansion(src_order), self.local_expansion(tgt_order), name="m2l") @memoize_method def m2l_translation_class_dependent_data_kernel(self, src_order, tgt_order): - return M2LGenerateTranslationClassesDependentData(self.cl_context, + return M2LGenerateTranslationClassesDependentData( self.multipole_expansion(src_order), self.local_expansion(tgt_order)) @memoize_method def m2l_preprocess_mpole_kernel(self, src_order, tgt_order): - return M2LPreprocessMultipole(self.cl_context, + return M2LPreprocessMultipole( self.multipole_expansion(src_order), self.local_expansion(tgt_order)) @memoize_method def m2l_postprocess_local_kernel(self, src_order, tgt_order): - return M2LPostprocessLocal(self.cl_context, + return M2LPostprocessLocal( self.multipole_expansion(src_order), self.local_expansion(tgt_order)) @memoize_method def l2l(self, src_order, tgt_order): - return E2EFromParent(self.cl_context, + return E2EFromParent( self.local_expansion(src_order), self.local_expansion(tgt_order), name="l2l") @memoize_method def m2p(self, src_order): - return E2PFromCSR(self.cl_context, + return E2PFromCSR( self.multipole_expansion(src_order), self.target_kernels, name="m2p") @memoize_method def l2p(self, src_order): - return E2PFromSingleBox(self.cl_context, + return E2PFromSingleBox( self.local_expansion(src_order), self.target_kernels, name="l2p") @memoize_method def p2p(self): - return P2PFromCSR(self.cl_context, target_kernels=self.target_kernels, + return P2PFromCSR(target_kernels=self.target_kernels, source_kernels=self.source_kernels, exclude_self=self.exclude_self, strength_usage=self.strength_usage, name="p2p") @memoize_method def opencl_fft_app(self, shape, dtype, inverse): - with cl.CommandQueue(self.cl_context) as queue: - return get_opencl_fft_app(queue, shape, dtype, inverse) - -# }}} - - -# {{{ timing future - -_SECONDS_PER_NANOSECOND = 1e-9 - - -class CLEventLike(Protocol): - """ - EventLike objects have an attribute native_event that returns - a cl.Event that indicates the end of the event. - """ - native_event: cl.Event - - -class UnableToCollectTimingData(UserWarning): - pass - - -class SumpyTimingFuture: - - def __init__(self, queue, events: list[cl.Event | CLEventLike]): - self.queue = queue - self.events = events - - @property - def native_events(self) -> list[cl.Event]: - return [evt if isinstance(evt, cl.Event) else evt.native_event - for evt in self.events] - - @memoize_method - def result(self): - from boxtree.timing import TimingResult - - if not self.queue.properties & cl.command_queue_properties.PROFILING_ENABLE: - from warnings import warn - warn( - "Profiling was not enabled in the command queue. " - "Timing data will not be collected.", - category=UnableToCollectTimingData, - stacklevel=3) - return TimingResult(wall_elapsed=None) - - if self.events: - cl.wait_for_events(self.native_events) - - result = 0 - for event in self.events: - result += ( - (event.profile.end - event.profile.start) - * _SECONDS_PER_NANOSECOND) - - return TimingResult(wall_elapsed=result) - - def done(self): - return all( - event.get_info(cl.event_info.COMMAND_EXECUTION_STATUS) - == cl.command_execution_status.COMPLETE - for event in self.native_events) + return get_opencl_fft_app(self._setup_actx, shape, dtype, inverse=inverse) # }}} @@ -377,7 +308,6 @@ def __init__(self, _disable_translation_classes=False ): super().__init__(tree_indep, traversal) - self.issued_timing_data_warning = False self.dtype = np.dtype(dtype) @@ -417,13 +347,14 @@ def __init__(self, self.supports_translation_classes = False else: if translation_classes_data is None: - with cl.CommandQueue(self.tree_indep.cl_context) as queue: - from boxtree.translation_classes import TranslationClassesBuilder - translation_classes_builder = TranslationClassesBuilder( - queue.context) - translation_classes_data, _ = translation_classes_builder( - queue, traversal, self.tree, - is_translation_per_level=True) + from boxtree.translation_classes import TranslationClassesBuilder + + actx = tree_indep._setup_actx + translation_classes_builder = TranslationClassesBuilder(actx) + translation_classes_data, _ = translation_classes_builder( + actx, traversal, self.tree, is_translation_per_level=True) + translation_classes_data = actx.freeze(translation_classes_data) + self.supports_translation_classes = True self.translation_classes_data = translation_classes_data @@ -449,9 +380,17 @@ def level_to_rscale(self, level: int) -> float: # {{{ data vector utilities + @property + @memoize_method + def tree_level_start_box_nrs(self): + # NOTE: a host version of `level_start_box_nrs` is used repeatedly and + # this simply caches it to avoid repeated transfers + actx = self.tree_indep._setup_actx + return actx.to_numpy(self.tree.level_start_box_nrs) + def _expansions_level_starts(self, order_to_size: Callable[[int], int]): return build_csr_level_starts(self.level_orders, order_to_size, - self.tree.level_start_box_nrs) + self.tree_level_start_box_nrs) @memoize_method def multipole_expansions_level_starts(self): @@ -465,9 +404,10 @@ def local_expansions_level_starts(self): @memoize_method def m2l_translation_class_level_start_box_nrs(self): - with cl.CommandQueue(self.tree_indep.cl_context) as queue: - data = self.translation_classes_data - return data.from_sep_siblings_translation_classes_level_starts.get(queue) + actx = self.tree_indep._setup_actx + return actx.to_numpy( + self.translation_classes_data + .from_sep_siblings_translation_classes_level_starts) @memoize_method def m2l_translation_classes_dependent_data_level_starts(self): @@ -481,68 +421,65 @@ def order_to_size(order: int): return build_csr_level_starts(self.level_orders, order_to_size, level_starts=self.m2l_translation_class_level_start_box_nrs()) - def multipole_expansion_zeros(self, template_ary): + def multipole_expansion_zeros(self, actx: ArrayContext) -> Array: """Return an expansions array (which must support addition) capable of holding one multipole or local expansion for every box in the tree. - :arg template_ary: an array (not necessarily of the same shape or dtype as - the one to be created) whose run-time environment - (e.g. :class:`pyopencl.CommandQueue`) the returned array should - reuse. """ - return cl_array.zeros( - template_ary.queue, + return actx.np.zeros( self.multipole_expansions_level_starts()[-1], dtype=self.dtype) - def local_expansion_zeros(self, template_ary): + def local_expansion_zeros(self, actx) -> Array: """Return an expansions array (which must support addition) capable of holding one multipole or local expansion for every box in the tree. - :arg template_ary: an array (not necessarily of the same shape or dtype as - the one to be created) whose run-time environment - (e.g. :class:`pyopencl.CommandQueue`) the returned array should - reuse. """ - return cl_array.zeros( - template_ary.queue, + return actx.np.zeros( self.local_expansions_level_starts()[-1], dtype=self.dtype) - def m2l_translation_classes_dependent_data_zeros(self, queue): + def m2l_translation_classes_dependent_data_zeros( + self, actx: ArrayContext): + data_level_starts = ( + self.m2l_translation_classes_dependent_data_level_starts()) + level_start_box_nrs = ( + self.m2l_translation_class_level_start_box_nrs()) + result = [] for level in range(self.tree.nlevels): - expn_start, expn_stop = \ - self.m2l_translation_classes_dependent_data_level_starts()[ - level:level+2] - translation_class_start, translation_class_stop = \ - self.m2l_translation_class_level_start_box_nrs()[level:level+2] - exprs_level = cl_array.zeros(queue, expn_stop - expn_start, - dtype=self.preprocessed_mpole_dtype) - result.append(exprs_level.reshape( - translation_class_stop - translation_class_start, -1)) + expn_start, expn_stop = data_level_starts[level:level + 2] + translation_class_start, translation_class_stop = ( + level_start_box_nrs[level:level + 2]) + + exprs_level = actx.np.zeros( + expn_stop - expn_start, + dtype=self.preprocessed_mpole_dtype + ).reshape(translation_class_stop - translation_class_start, -1) + result.append(exprs_level) + return result def multipole_expansions_view(self, mpole_exps, level): - expn_start, expn_stop = \ - self.multipole_expansions_level_starts()[level:level+2] - box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] + expn_start, expn_stop = ( + self.multipole_expansions_level_starts()[level:level + 2]) + box_start, box_stop = self.tree_level_start_box_nrs[level:level + 2] return (box_start, mpole_exps[expn_start:expn_stop].reshape(box_stop-box_start, -1)) def local_expansions_view(self, local_exps, level): - expn_start, expn_stop = \ - self.local_expansions_level_starts()[level:level+2] - box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] + expn_start, expn_stop = ( + self.local_expansions_level_starts()[level:level + 2]) + box_start, box_stop = self.tree_level_start_box_nrs[level:level + 2] return (box_start, local_exps[expn_start:expn_stop].reshape(box_stop-box_start, -1)) def m2l_translation_classes_dependent_data_view(self, m2l_translation_classes_dependent_data, level): - translation_class_start, _ = \ - self.m2l_translation_class_level_start_box_nrs()[level:level+2] + translation_class_start, _ = ( + self.m2l_translation_class_level_start_box_nrs()[level:level + 2]) exprs_level = m2l_translation_classes_dependent_data[level] return (translation_class_start, exprs_level) @@ -556,48 +493,48 @@ def order_to_size(order): return res return build_csr_level_starts(self.level_orders, order_to_size, - level_starts=self.tree.level_start_box_nrs) + level_starts=self.tree_level_start_box_nrs) + + def m2l_preproc_mpole_expansion_zeros( + self, actx: ArrayContext, template_ary): + level_starts = self.m2l_preproc_mpole_expansions_level_starts() - def m2l_preproc_mpole_expansion_zeros(self, template_ary): result = [] for level in range(self.tree.nlevels): - expn_start, expn_stop = \ - self.m2l_preproc_mpole_expansions_level_starts()[level:level+2] - box_start, box_stop = self.tree.level_start_box_nrs[level:level+2] - exprs_level = cl_array.zeros(template_ary.queue, expn_stop - expn_start, - dtype=self.preprocessed_mpole_dtype) - result.append(exprs_level.reshape(box_stop - box_start, -1)) + expn_start, expn_stop = level_starts[level:level+2] + box_start, box_stop = self.tree_level_start_box_nrs[level:level+2] + + exprs_level = actx.np.zeros( + expn_stop - expn_start, + dtype=self.preprocessed_mpole_dtype, + ).reshape(box_stop - box_start, -1) + result.append(exprs_level) + return result def m2l_preproc_mpole_expansions_view(self, mpole_exps, level): - box_start, _ = self.tree.level_start_box_nrs[level:level+2] + box_start, _ = self.tree_level_start_box_nrs[level:level+2] return (box_start, mpole_exps[level]) m2l_work_array_view = m2l_preproc_mpole_expansions_view m2l_work_array_zeros = m2l_preproc_mpole_expansion_zeros - m2l_work_array_level_starts = \ - m2l_preproc_mpole_expansions_level_starts + m2l_work_array_level_starts = m2l_preproc_mpole_expansions_level_starts - def output_zeros(self, template_ary): + def output_zeros(self, + actx: ArrayContext + ) -> obj_array.ObjectArray1D[Array]: """Return a potentials array (which must support addition) capable of holding a potential value for each target in the tree. Note that :func:`drive_fmm` makes no assumptions about *potential* other than that it supports addition--it may consist of potentials, gradients of the potential, or arbitrary other per-target output data. - :arg template_ary: an array (not necessarily of the same shape or dtype as - the one to be created) whose run-time environment - (e.g. :class:`pyopencl.CommandQueue`) the returned array should - reuse. """ return obj_array.new_1d([ - cl_array.zeros( - template_ary.queue, - self.tree.ntargets, - dtype=self.dtype) + actx.np.zeros(self.tree.ntargets, dtype=self.dtype) for k in self.tree_indep.target_kernels]) def reorder_sources(self, source_array): - return source_array.with_queue(source_array.queue)[self.tree.user_source_ids] + return source_array[self.tree.user_source_ids] def reorder_potentials(self, potentials): import numpy as np @@ -614,20 +551,18 @@ def reorder(x): @property @memoize_method def max_nsources_in_one_box(self): - with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int( - cast("cl_array.Array", - cl_array.max(self.tree.box_source_counts_nonchild, queue)) - .get()) + actx = self.tree_indep._setup_actx + return actx.to_numpy( + actx.np.max(self.tree.box_source_counts_nonchild) + ).item() @property @memoize_method def max_ntargets_in_one_box(self): - with cl.CommandQueue(self.tree_indep.cl_context) as queue: - return int( - cast("cl_array.Array", - cl_array.max(self.tree.box_target_counts_nonchild, queue)) - .get()) + actx = self.tree_indep._setup_actx + return actx.to_numpy( + actx.np.max(self.tree.box_target_counts_nonchild) + ).item() # }}} @@ -651,22 +586,29 @@ def box_target_list_kwargs(self): # }}} - def run_opencl_fft(self, queue, input_vec, inverse, wait_for): + def run_opencl_fft(self, actx: ArrayContext, + input_vec, inverse, wait_for): app = self.tree_indep.opencl_fft_app(input_vec.shape, input_vec.dtype, inverse) - return run_opencl_fft(app, queue, input_vec, inverse, wait_for) + evt, result = run_opencl_fft( + actx, app, input_vec, inverse=inverse, wait_for=wait_for) + + from sumpy.tools import get_native_event + input_vec.add_event(get_native_event(evt)) + result.add_event(get_native_event(evt)) + + return result def form_multipoles(self, + actx: ArrayContext, level_start_source_box_nrs, source_boxes, src_weight_vecs): - mpoles = self.multipole_expansion_zeros(src_weight_vecs[0]) + mpoles = self.multipole_expansion_zeros(actx) + level_start_source_box_nrs = actx.to_numpy(level_start_source_box_nrs) kwargs = dict(self.extra_kwargs) kwargs.update(self.box_source_list_kwargs()) - events = [] - queue = src_weight_vecs[0].queue - for lev in range(self.tree.nlevels): p2m = self.tree_indep.p2m(self.level_orders[lev]) start, stop = level_start_source_box_nrs[lev:lev+2] @@ -676,8 +618,8 @@ def form_multipoles(self, level_start_ibox, mpoles_view = self.multipole_expansions_view( mpoles, lev) - evt, (mpoles_res,) = p2m( - queue, + mpoles_res = p2m( + actx, source_boxes=source_boxes[start:stop], centers=self.tree.box_centers, strengths=src_weight_vecs, @@ -686,20 +628,19 @@ def form_multipoles(self, rscale=self.level_to_rscale(lev), **kwargs) - events.append(evt) assert mpoles_res is mpoles_view - return (mpoles, SumpyTimingFuture(queue, events)) + return mpoles def coarsen_multipoles(self, + actx: ArrayContext, level_start_source_parent_box_nrs, source_parent_boxes, mpoles): tree = self.tree - - events = [] - queue = mpoles.queue + level_start_source_parent_box_nrs = ( + actx.to_numpy(level_start_source_parent_box_nrs)) # nlevels-1 is the last valid level index # nlevels-2 is the last valid level that could have children @@ -721,13 +662,13 @@ def coarsen_multipoles(self, self.level_orders[source_level], self.level_orders[target_level]) - source_level_start_ibox, source_mpoles_view = \ - self.multipole_expansions_view(mpoles, source_level) - target_level_start_ibox, target_mpoles_view = \ - self.multipole_expansions_view(mpoles, target_level) + source_level_start_ibox, source_mpoles_view = ( + self.multipole_expansions_view(mpoles, source_level)) + target_level_start_ibox, target_mpoles_view = ( + self.multipole_expansions_view(mpoles, target_level)) - evt, (mpoles_res,) = m2m( - queue, + mpoles_res = m2m( + actx, src_expansions=source_mpoles_view, src_base_ibox=source_level_start_ibox, tgt_expansions=target_mpoles_view, @@ -741,28 +682,23 @@ def coarsen_multipoles(self, tgt_rscale=self.level_to_rscale(target_level), **self.kernel_extra_kwargs) - events.append(evt) assert mpoles_res is target_mpoles_view - if events: - mpoles.add_event(events[-1]) - - return (mpoles, SumpyTimingFuture(queue, events)) + return mpoles - def eval_direct(self, target_boxes, source_box_starts, + def eval_direct(self, + actx: ArrayContext, + target_boxes, source_box_starts, source_box_lists, src_weight_vecs): - pot = self.output_zeros(src_weight_vecs[0]) + pot = self.output_zeros(actx) kwargs = dict(self.extra_kwargs) kwargs.update(self.self_extra_kwargs) kwargs.update(self.box_source_list_kwargs()) kwargs.update(self.box_target_list_kwargs()) - events = [] - queue = src_weight_vecs[0].queue - - evt, pot_res = self.tree_indep.p2p()(queue, + pot_res = self.tree_indep.p2p()(actx, target_boxes=target_boxes, source_box_starts=source_box_starts, source_box_lists=source_box_lists, @@ -771,67 +707,65 @@ def eval_direct(self, target_boxes, source_box_starts, max_nsources_in_one_box=self.max_nsources_in_one_box, max_ntargets_in_one_box=self.max_ntargets_in_one_box, **kwargs) - events.append(evt) for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i - pot_i.add_event(evt) - return (pot, SumpyTimingFuture(queue, events)) + return pot @memoize_method def multipole_to_local_precompute(self): - result = [] - with cl.CommandQueue(self.tree_indep.cl_context) as queue: - m2l_translation_classes_dependent_data = \ - self.m2l_translation_classes_dependent_data_zeros(queue) - for lev in range(self.tree.nlevels): - src_rscale = self.level_to_rscale(lev) - order = self.level_orders[lev] - precompute_kernel = \ - self.tree_indep.m2l_translation_class_dependent_data_kernel( - order, order) - - translation_classes_level_start, \ - m2l_translation_classes_dependent_data_view = \ - self.m2l_translation_classes_dependent_data_view( - m2l_translation_classes_dependent_data, lev) - - ntranslation_classes = \ - m2l_translation_classes_dependent_data_view.shape[0] + actx = self.tree_indep._setup_actx - if ntranslation_classes == 0: - result.append(cl_array.empty_like( - m2l_translation_classes_dependent_data_view)) - continue + result = [] + m2l_translation_classes_dependent_data = ( + self.m2l_translation_classes_dependent_data_zeros(actx)) - data = self.translation_classes_data - m2l_translation_vectors = ( - data.from_sep_siblings_translation_class_to_distance_vector) - - evt, _ = precompute_kernel( - queue, - src_rscale=src_rscale, - translation_classes_level_start=translation_classes_level_start, - ntranslation_classes=ntranslation_classes, - m2l_translation_classes_dependent_data=( - m2l_translation_classes_dependent_data_view), - m2l_translation_vectors=m2l_translation_vectors, - ntranslation_vectors=m2l_translation_vectors.shape[1], - **self.kernel_extra_kwargs + for lev in range(self.tree.nlevels): + src_rscale = self.level_to_rscale(lev) + order = self.level_orders[lev] + precompute_kernel = ( + self.tree_indep.m2l_translation_class_dependent_data_kernel( + order, order) ) - if self.tree_indep.m2l_translation.use_fft: - _, m2l_translation_classes_dependent_data_view = \ - self.run_opencl_fft(queue, - m2l_translation_classes_dependent_data_view, - inverse=False, wait_for=[evt]) - result.append(m2l_translation_classes_dependent_data_view) + translation_classes_level_start, \ + m2l_translation_classes_dependent_data_view = \ + self.m2l_translation_classes_dependent_data_view( + m2l_translation_classes_dependent_data, lev) - for lev in range(self.tree.nlevels): - result[lev].finish() + ntranslation_classes = ( + m2l_translation_classes_dependent_data_view.shape[0]) - result = [arr.with_queue(None) for arr in result] + if ntranslation_classes == 0: + result.append(actx.np.zeros_like( + m2l_translation_classes_dependent_data_view)) + continue + + data = self.translation_classes_data + m2l_translation_vectors = ( + data.from_sep_siblings_translation_class_to_distance_vector) + + precompute_kernel( + actx, + src_rscale=src_rscale, + translation_classes_level_start=translation_classes_level_start, + ntranslation_classes=ntranslation_classes, + m2l_translation_classes_dependent_data=( + m2l_translation_classes_dependent_data_view), + m2l_translation_vectors=m2l_translation_vectors, + ntranslation_vectors=m2l_translation_vectors.shape[1], + **self.kernel_extra_kwargs + ) + + if self.tree_indep.m2l_translation.use_fft: + m2l_translation_classes_dependent_data_view = ( + self.run_opencl_fft(actx, + m2l_translation_classes_dependent_data_view, + inverse=False, wait_for=None)) + result.append(m2l_translation_classes_dependent_data_view) + + result = [actx.freeze(arr) for arr in result] return result def _add_m2l_precompute_kwargs(self, kwargs_for_m2l, @@ -856,17 +790,18 @@ def _add_m2l_precompute_kwargs(self, kwargs_for_m2l, self.translation_classes_data.from_sep_siblings_translation_classes def multipole_to_local(self, + actx: ArrayContext, level_start_target_box_nrs, target_boxes, src_box_starts, src_box_lists, mpole_exps): - queue = mpole_exps.queue - local_exps = self.local_expansion_zeros(mpole_exps) + local_exps = self.local_expansion_zeros(actx) + level_start_target_box_nrs = actx.to_numpy(level_start_target_box_nrs) if self.tree_indep.m2l_translation.use_preprocessing: - preprocessed_mpole_exps = \ - self.m2l_preproc_mpole_expansion_zeros(mpole_exps) - m2l_work_array = self.m2l_work_array_zeros(local_exps) + preprocessed_mpole_exps = ( + self.m2l_preproc_mpole_expansion_zeros(actx, mpole_exps)) + m2l_work_array = self.m2l_work_array_zeros(actx, local_exps) mpole_exps_view_func = self.m2l_preproc_mpole_expansions_view local_exps_view_func = self.m2l_work_array_view else: @@ -875,12 +810,8 @@ def multipole_to_local(self, mpole_exps_view_func = self.multipole_expansions_view local_exps_view_func = self.local_expansions_view - preprocess_evts = [] - translate_evts = [] - postprocess_evts = [] - for lev in range(self.tree.nlevels): - wait_for = [] + wait_for: list[pyopencl.Event] = [] start, stop = level_start_target_box_nrs[lev:lev+2] if start == stop: @@ -899,25 +830,20 @@ def multipole_to_local(self, # There is no M2L happening in this level continue - evt, _ = preprocess_mpole_kernel( - queue, + preprocess_mpole_kernel( + actx, src_expansions=source_mpoles_view, preprocessed_src_expansions=preprocessed_mpole_exps[lev], src_rscale=self.level_to_rscale(lev), wait_for=wait_for, **self.kernel_extra_kwargs ) - wait_for.append(evt) if self.tree_indep.m2l_translation.use_fft: - evt_fft, preprocessed_mpole_exps[lev] = \ - self.run_opencl_fft(queue, + preprocessed_mpole_exps[lev] = \ + self.run_opencl_fft(actx, preprocessed_mpole_exps[lev], inverse=False, wait_for=wait_for) - wait_for.append(get_native_event(evt_fft)) - evt = AggregateProfilingEvent([evt, evt_fft]) - - preprocess_evts.append(evt) order = self.level_orders[lev] m2l = self.tree_indep.m2l(order, order, @@ -949,9 +875,7 @@ def multipole_to_local(self, kwargs["m2l_translation_classes_dependent_data"].size == 0: # There is nothing to do for this level continue - evt, _ = m2l(queue, **kwargs, wait_for=wait_for) - wait_for.append(evt) - translate_evts.append(evt) + m2l(actx, **kwargs, wait_for=wait_for) if self.tree_indep.m2l_translation.use_preprocessing: order = self.level_orders[lev] @@ -971,14 +895,13 @@ def multipole_to_local(self, continue if self.tree_indep.m2l_translation.use_fft: - evt_fft, target_locals_before_postprocessing_view = \ - self.run_opencl_fft(queue, + target_locals_before_postprocessing_view = \ + self.run_opencl_fft(actx, target_locals_before_postprocessing_view, inverse=True, wait_for=wait_for) - wait_for.append(get_native_event(evt_fft)) - evt, _ = postprocess_local_kernel( - queue, + postprocess_local_kernel( + actx, tgt_expansions=target_locals_view, tgt_expansions_before_postprocessing=( target_locals_before_postprocessing_view), @@ -988,27 +911,17 @@ def multipole_to_local(self, **self.kernel_extra_kwargs, ) - if self.tree_indep.m2l_translation.use_fft: - postprocess_evts.append(AggregateProfilingEvent([evt_fft, evt])) - else: - postprocess_evts.append(evt) - - timing_events = preprocess_evts + translate_evts + postprocess_evts - - return (local_exps, SumpyTimingFuture(queue, timing_events)) + return local_exps def eval_multipoles(self, + actx: ArrayContext, target_boxes_by_source_level, source_boxes_by_level, mpole_exps): - pot = self.output_zeros(mpole_exps) + pot = self.output_zeros(actx) kwargs = dict(self.kernel_extra_kwargs) kwargs.update(self.box_target_list_kwargs()) - events = [] - queue = mpole_exps.queue - wait_for = mpole_exps.events - for isrc_level, ssn in enumerate(source_boxes_by_level): if len(target_boxes_by_source_level[isrc_level]) == 0: continue @@ -1018,8 +931,8 @@ def eval_multipoles(self, source_level_start_ibox, source_mpoles_view = \ self.multipole_expansions_view(mpole_exps, isrc_level) - evt, pot_res = m2p( - queue, + pot_res = m2p( + actx, src_expansions=source_mpoles_view, src_base_ibox=source_level_start_ibox, @@ -1035,33 +948,26 @@ def eval_multipoles(self, wait_for=wait_for, **kwargs) - events.append(evt) - - wait_for = [evt] for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i - if events: - for pot_i in pot: - pot_i.add_event(events[-1]) - - return (pot, SumpyTimingFuture(queue, events)) + return pot def form_locals(self, + actx: ArrayContext, level_start_target_or_target_parent_box_nrs, target_or_target_parent_boxes, starts, lists, src_weight_vecs): - local_exps = self.local_expansion_zeros(src_weight_vecs[0]) + local_exps = self.local_expansion_zeros(actx) + level_start_target_or_target_parent_box_nrs = ( + actx.to_numpy(level_start_target_or_target_parent_box_nrs)) kwargs = dict(self.extra_kwargs) kwargs.update(self.box_source_list_kwargs()) - events = [] - queue = src_weight_vecs[0].queue - for lev in range(self.tree.nlevels): - start, stop = \ - level_start_target_or_target_parent_box_nrs[lev:lev+2] + start, stop = ( + level_start_target_or_target_parent_box_nrs[lev:lev+2]) if start == stop: continue @@ -1070,8 +976,8 @@ def form_locals(self, target_level_start_ibox, target_local_exps_view = \ self.local_expansions_view(local_exps, lev) - evt, (result,) = p2l( - queue, + result = p2l( + actx, target_boxes=target_or_target_parent_boxes[start:stop], source_box_starts=starts[start:stop+1], source_box_lists=lists, @@ -1084,23 +990,22 @@ def form_locals(self, rscale=self.level_to_rscale(lev), **kwargs) - events.append(evt) assert result is target_local_exps_view - return (local_exps, SumpyTimingFuture(queue, events)) + return local_exps def refine_locals(self, + actx: ArrayContext, level_start_target_or_target_parent_box_nrs, target_or_target_parent_boxes, local_exps): - - events = [] - queue = local_exps.queue + level_start_target_or_target_parent_box_nrs = ( + actx.to_numpy(level_start_target_or_target_parent_box_nrs)) for target_lev in range(1, self.tree.nlevels): - start, stop = level_start_target_or_target_parent_box_nrs[ - target_lev:target_lev+2] + start, stop = ( + level_start_target_or_target_parent_box_nrs[target_lev:target_lev+2]) if start == stop: continue @@ -1114,7 +1019,7 @@ def refine_locals(self, target_level_start_ibox, target_local_exps_view = \ self.local_expansions_view(local_exps, target_lev) - evt, (local_exps_res,) = l2l(queue, + local_exps_res = l2l(actx, src_expansions=source_local_exps_view, src_base_ibox=source_level_start_ibox, tgt_expansions=target_local_exps_view, @@ -1128,24 +1033,20 @@ def refine_locals(self, tgt_rscale=self.level_to_rscale(target_lev), **self.kernel_extra_kwargs) - events.append(evt) assert local_exps_res is target_local_exps_view - for evt in events: - local_exps.add_event(evt) + return local_exps - return (local_exps, SumpyTimingFuture(queue, events)) - - def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): - pot = self.output_zeros(local_exps) + def eval_locals(self, + actx: ArrayContext, + level_start_target_box_nrs, target_boxes, local_exps): + pot = self.output_zeros(actx) + level_start_target_box_nrs = actx.to_numpy(level_start_target_box_nrs) kwargs = dict(self.kernel_extra_kwargs) kwargs.update(self.box_target_list_kwargs()) - events = [] - queue = local_exps.queue - for lev in range(self.tree.nlevels): start, stop = level_start_target_box_nrs[lev:lev+2] if start == stop: @@ -1156,8 +1057,8 @@ def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): source_level_start_ibox, source_local_exps_view = \ self.local_expansions_view(local_exps, lev) - evt, pot_res = l2p( - queue, + pot_res = l2p( + actx, src_expansions=source_local_exps_view, src_base_ibox=source_level_start_ibox, @@ -1169,14 +1070,13 @@ def eval_locals(self, level_start_target_box_nrs, target_boxes, local_exps): rscale=self.level_to_rscale(lev), **kwargs) - events.append(evt) for pot_i, pot_res_i in zip(pot, pot_res, strict=True): assert pot_i is pot_res_i - return (pot, SumpyTimingFuture(queue, events)) + return pot - def finalize_potentials(self, potentials, template_ary): + def finalize_potentials(self, actx: ArrayContext, potentials): return potentials # }}} diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 30237d398..63d452464 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -24,16 +24,20 @@ """ import logging +from typing import TYPE_CHECKING import numpy as np import loopy as lp -from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from sumpy.codegen import register_optimization_preambles +from sumpy.array_context import make_loopy_program from sumpy.tools import KernelCacheMixin, KernelComputation +if TYPE_CHECKING: + from arraycontext import ArrayContext + + logger = logging.getLogger(__name__) @@ -48,7 +52,7 @@ """ -# {{{ P2E base class +# {{{ P2EBase: base class class P2EBase(KernelCacheMixin, KernelComputation): """Common input processing for kernel computations. @@ -56,8 +60,7 @@ class P2EBase(KernelCacheMixin, KernelComputation): .. automethod:: __init__ """ - def __init__(self, ctx, expansion, kernels=None, - name=None, device=None, strength_usage=None): + def __init__(self, expansion, kernels=None, name=None, strength_usage=None): """ :arg expansion: a subclass of :class:`sumpy.expansion.ExpansionBase` :arg kernels: if not provided, the kernel of the *expansion* is used. @@ -83,10 +86,10 @@ def __init__(self, ctx, expansion, kernels=None, assert txr(knl) == knl assert sxr(knl) == expansion.kernel - KernelComputation.__init__(self, ctx=ctx, target_kernels=[], + KernelComputation.__init__(self, target_kernels=[], source_kernels=kernels, strength_usage=strength_usage, value_dtypes=None, - name=name, device=device) + name=name) self.expansion = expansion self.dim = expansion.dim @@ -123,28 +126,33 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") - knl = register_optimization_preambles(knl, self.device) return knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): from sumpy.tools import is_obj_array_like sources = kwargs.pop("sources") centers = kwargs.pop("centers") - knl = self.get_cached_kernel_executor( - sources_is_obj_array=is_obj_array_like(sources), - centers_is_obj_array=is_obj_array_like(centers)) # "1" may be passed for rscale, which won't have its type # meaningfully inferred. Make the type of rscale explicit. dtype = centers[0].dtype if is_obj_array_like(centers) else centers.dtype rscale = dtype.type(kwargs.pop("rscale")) - return knl(queue, sources=sources, centers=centers, rscale=rscale, **kwargs) + knl = self.get_cached_kernel( + sources_is_obj_array=is_obj_array_like(sources), + centers_is_obj_array=is_obj_array_like(centers)) + + result = actx.call_loopy( + knl, + sources=sources, centers=centers, rscale=rscale, + **kwargs) + + return result["tgt_expansions"] # }}} -# {{{ P2E from single box (P2M, likely) +# {{{ P2EFromSingleBox: P2E from single box (P2M, likely) class P2EFromSingleBox(P2EBase): """ @@ -159,7 +167,7 @@ def get_kernel(self): ncoeffs = len(self.expansion) loopy_args = self.get_loopy_args() - loopy_knl = lp.make_kernel([ + loopy_knl = make_loopy_program([ "{[isrc_box]: 0 <= isrc_box < nsrc_boxes}", "{[isrc]: isrc_start <= isrc < isrc_end}", "{[idim]: 0 <= idim < dim}", @@ -216,11 +224,9 @@ def get_kernel(self): name=self.name, assumptions="nsrc_boxes>=1", silenced_warnings="write_race(write_expn*)", - default_offset=lp.auto, fixed_parameters={ "dim": self.dim, "nstrengths": self.strength_count, - "ncoeffs": ncoeffs}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + "ncoeffs": ncoeffs}) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") @@ -237,7 +243,7 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = lp.split_iname(knl, "isrc_box", 16, outer_tag="g.0") return knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg source_boxes: an array of integer indices into *box_source_starts* and *box_source_counts_nonchild*. @@ -257,12 +263,12 @@ def __call__(self, queue, **kwargs): :returns: an array of *tgt_expansions*. """ - return super().__call__(queue, **kwargs) + return super().__call__(actx, **kwargs) # }}} -# {{{ P2E from CSR-like interaction list +# {{{ P2EFromCSR: P2E from CSR-like interaction list class P2EFromCSR(P2EBase): """ @@ -297,7 +303,7 @@ def get_kernel(self): ... ]) - loopy_knl = lp.make_kernel( + loopy_knl = make_loopy_program( [ "{[itgt_box]: 0 <= itgt_box < ntgt_boxes}", "{[isrc_box]: isrc_box_start <= isrc_box < isrc_box_stop}", @@ -345,15 +351,13 @@ def get_kernel(self): dep=update_result:init_coeffs} end """], - arguments, + kernel_data=arguments, name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - default_offset=lp.auto, fixed_parameters={"dim": self.dim, "nstrengths": self.strength_count, - "ncoeffs": ncoeffs}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + "ncoeffs": ncoeffs}) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") @@ -370,7 +374,7 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") return knl - def __call__(self, queue, **kwargs): + def __call__(self, actx: ArrayContext, **kwargs): """ :arg target_boxes: array of integer indices into *source_box_starts* and *centers*. @@ -389,7 +393,7 @@ def __call__(self, queue, **kwargs): :arg tgt_base_ibox: see :meth:`P2EFromSingleBox.__call__`. :arg tgt_expansion: see :meth:`P2EFromSingleBox.__call__`. """ - return super().__call__(queue, **kwargs) + return super().__call__(actx, **kwargs) # }}} diff --git a/sumpy/p2p.py b/sumpy/p2p.py index a5d2bb89a..e1ef9078d 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -26,25 +26,29 @@ THE SOFTWARE. """ +import logging from typing import TYPE_CHECKING, Any import numpy as np +from typing_extensions import override import loopy as lp -from loopy.version import MOST_RECENT_LANGUAGE_VERSION +import pytools.obj_array as obj_array +from arraycontext import PyOpenCLArrayContext -from sumpy.codegen import register_optimization_preambles +from sumpy.array_context import make_loopy_program 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 arraycontext import Array, ArrayContext from pytools.obj_array import ObjectArray1D +logger = logging.getLogger(__name__) + __doc__ = """ Particle-to-particle @@ -62,11 +66,11 @@ # LATER: # - Optimization for source == target (postpone) -# {{{ p2p base class +# {{{ P2PBase: base class class P2PBase(KernelCacheMixin, KernelComputation): - def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, - value_dtypes=None, name=None, device=None, source_kernels=None): + def __init__(self, target_kernels, exclude_self, strength_usage=None, + value_dtypes=None, name=None, source_kernels=None): """ :arg target_kernels: list of :class:`sumpy.kernel.Kernel` instances with only target derivatives. @@ -99,23 +103,19 @@ def __init__(self, ctx, target_kernels, exclude_self, strength_usage=None, base_target_kernel = single_valued(txr(knl) for knl in target_kernels) assert base_source_kernel == base_target_kernel - KernelComputation.__init__(self, ctx=ctx, target_kernels=target_kernels, + KernelComputation.__init__(self, target_kernels=target_kernels, source_kernels=source_kernels, strength_usage=strength_usage, - value_dtypes=value_dtypes, name=name, device=device) - - import pyopencl as cl - self.is_gpu = not (self.device.type & cl.device_type.CPU) + value_dtypes=value_dtypes, name=name) self.exclude_self = exclude_self - - self.dim = single_valued(knl.dim for knl in - list(self.target_kernels) + list(self.source_kernels)) + self.dim = single_valued([ + knl.dim for knl in self.target_kernels + self.source_kernels + ]) def get_cache_key(self): return (type(self).__name__, tuple(self.target_kernels), self.exclude_self, tuple(self.strength_usage), tuple(self.value_dtypes), - tuple(self.source_kernels), - self.device.hashable_model_and_version_identifier) + tuple(self.source_kernels)) def get_loopy_insns_and_result_names(self): from pymbolic import var @@ -190,7 +190,10 @@ def get_default_src_tgt_arguments(self): if self.exclude_self else []) + gather_loopy_source_arguments(self.source_kernels)) - def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): + def get_optimized_kernel(self, *, + targets_is_obj_array: bool = False, + sources_is_obj_array: bool = False, + **kwargs: Any) -> lp.TranslationUnit: # FIXME knl = self.get_kernel() @@ -201,17 +204,14 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = lp.split_iname(knl, "itgt", 1024, outer_tag="g.0") knl = self._allow_redundant_execution_of_knl_scaling(knl) - knl = lp.set_options(knl, - enforce_variable_access_ordered="no_check") - - knl = register_optimization_preambles(knl, self.device) + knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") return knl # }}} -# {{{ P2P point-interaction calculation +# {{{ P2P: point-interaction calculation class P2P(P2PBase): """Direct applier for P2P interactions.""" @@ -230,7 +230,7 @@ def get_kernel(self): shape="nresults, ntargets", dim_tags="sep,C") ] - loopy_knl = lp.make_kernel([""" + loopy_knl = make_loopy_program([""" {[itgt, isrc, idim]: \ 0 <= itgt < ntargets and \ 0 <= isrc < nsources and \ @@ -249,15 +249,14 @@ def get_kernel(self): simul_reduce(sum, isrc, pair_result_{iknl}) {{inames=itgt}} """ for iknl in range(len(self.target_kernels))] + ["end"], - arguments, + kernel_data=arguments, assumptions="nsources>=1 and ntargets>=1", name=self.name, - default_offset=lp.auto, fixed_parameters={ "dim": self.dim, "nstrengths": self.strength_count, "nresults": len(self.target_kernels)}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -267,23 +266,29 @@ def get_kernel(self): return loopy_knl 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( + actx: ArrayContext, + targets: ObjectArray1D[Array] | Array, + sources: ObjectArray1D[Array] | Array, + strength: Sequence[Array], + **kwargs: Any, + ) -> ObjectArray1D[Array]: + knl = self.get_cached_kernel( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) - return knl(queue, sources=sources, targets=targets, strength=strength, - **kwargs) + result = actx.call_loopy( + knl, + sources=sources, + targets=targets, + strength=strength, + **kwargs) + + return obj_array.new_1d([result[f"result_s{i}"] for i in range(self.nresults)]) # }}} -# {{{ P2P matrix writer +# {{{ P2PMatrixGenerator: matrix writer class P2PMatrixGenerator(P2PBase): """Generator for P2P interaction matrix entries.""" @@ -304,7 +309,7 @@ def get_kernel(self): for i, dtype in enumerate(self.value_dtypes) ]) - loopy_knl = lp.make_kernel([""" + loopy_knl = make_loopy_program([""" {[itgt, isrc, idim]: \ 0 <= itgt < ntargets and \ 0 <= isrc < nsources and \ @@ -325,7 +330,7 @@ def get_kernel(self): assumptions="nsources>=1 and ntargets>=1", name=self.name, fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") @@ -335,21 +340,22 @@ def get_kernel(self): return loopy_knl def __call__(self, - queue: cl.CommandQueue, + actx: ArrayContext, targets: ObjectArray1D[Array] | Array, sources: ObjectArray1D[Array] | Array, **kwargs: Any, - ) -> tuple[cl.Event, Sequence[Array]]: - knl = self.get_cached_kernel_executor( + ) -> ObjectArray1D[Array]: + knl = self.get_cached_kernel( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) - return knl(queue, sources=sources, targets=targets, **kwargs) + result = actx.call_loopy(knl, sources=sources, targets=targets, **kwargs) + return obj_array.new_1d([result[f"result_{i}"] for i in range(self.nresults)]) # }}} -# {{{ P2P matrix subset generator +# {{{ P2PMatrixSubsetGenerator: matrix subset generator class P2PMatrixSubsetGenerator(P2PBase): """Generator for a subset of P2P interaction matrix entries. @@ -381,7 +387,7 @@ def get_kernel(self): for i, dtype in enumerate(self.value_dtypes) ]) - loopy_knl = lp.make_kernel( + loopy_knl = make_loopy_program( "{[imat, idim]: 0 <= imat < nresult and 0 <= idim < dim}", self.get_kernel_scaling_assignments() # NOTE: itgt, isrc need to always be defined in case a statement @@ -409,7 +415,7 @@ def get_kernel(self): silenced_warnings="write_race(write_p2p*)", name=self.name, fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.add_dtypes( @@ -433,19 +439,18 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = self._allow_redundant_execution_of_knl_scaling(knl) knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") - knl = register_optimization_preambles(knl, self.device) return knl def __call__(self, - queue: cl.CommandQueue, + actx: ArrayContext, targets: ObjectArray1D[Array] | Array, sources: ObjectArray1D[Array] | Array, *, tgtindices: Array, srcindices: Array, **kwargs: Any, - ) -> tuple[cl.Event, Sequence[Array]]: + ) -> ObjectArray1D[Array]: """Evaluate a subset of the P2P matrix interactions. :arg targets: target point coordinates, which can be an object @@ -461,28 +466,36 @@ def __call__(self, :returns: a one-dimensional array of interactions, for each index pair in (*srcindices*, *tgtindices*) """ - knl = self.get_cached_kernel_executor( + knl = self.get_cached_kernel( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources)) - return knl(queue, - targets=targets, - sources=sources, - tgtindices=tgtindices, - srcindices=srcindices, **kwargs) + result = actx.call_loopy( + knl, + targets=targets, + sources=sources, + tgtindices=tgtindices, + srcindices=srcindices, **kwargs) + + return obj_array.new_1d([result[f"result_{i}"] for i in range(self.nresults)]) # }}} -# {{{ P2P from CSR-like interaction list +# {{{ P2PFromCSR: P2P from CSR-like interaction list class P2PFromCSR(P2PBase): @property + @override def default_name(self): return "p2p_from_csr" - def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, - work_items_per_group=32): + @override + def get_kernel(self, *, + max_nsources_in_one_box: int = 32, + max_ntargets_in_one_box: int = 32, + work_items_per_group: int = 32, + is_gpu: bool = False, **kwargs: Any) -> lp.TranslationUnit: loopy_insns, _result_names = self.get_loopy_insns_and_result_names() arguments = [ *self.get_default_src_tgt_arguments(), @@ -503,7 +516,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, lp.GlobalArg("result", None, shape="noutputs, ntargets", dim_tags="sep,C"), lp.TemporaryVariable("tgt_center", shape=(self.dim,)), - "..." + ... ] domains = [ @@ -515,7 +528,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, tgt_outer_limit = (max_ntargets_in_one_box - 1) // work_items_per_group - if self.is_gpu: + if is_gpu: arguments += [ lp.TemporaryVariable("local_isrc", shape=(self.dim, max_nsources_in_one_box)), @@ -538,7 +551,7 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, # There are two algorithms here because pocl-pthread 1.9 miscompiles # the "gpu" kernel with prefetching. - if self.is_gpu: + if is_gpu: instructions = (self.get_kernel_scaling_assignments() + [""" for itgt_box @@ -659,13 +672,15 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, end """]) - loopy_knl = lp.make_kernel( + loopy_knl = make_loopy_program( domains, instructions, - arguments, + kernel_data=arguments, assumptions="ntgt_boxes>=1", name=self.name, - silenced_warnings=["write_race(write_csr*)", "write_race(prefetch_src)", + silenced_warnings=[ + "write_race(write_csr*)", + "write_race(prefetch_src)", "write_race(prefetch_charge)"], fixed_parameters={ "dim": self.dim, @@ -675,10 +690,12 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, "work_items_per_group": work_items_per_group, "tgt_outer_limit": tgt_outer_limit, "noutputs": len(self.target_kernels)}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) - loopy_knl = lp.add_dtypes( - loopy_knl, {"nsources": np.int32, "ntargets": np.int32}) + loopy_knl = lp.add_dtypes(loopy_knl, { + "nsources": np.dtype(np.int32), + "ntargets": np.dtype(np.int32), + }) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") @@ -690,25 +707,38 @@ def get_kernel(self, max_nsources_in_one_box, max_ntargets_in_one_box, return loopy_knl - def get_optimized_kernel(self, max_nsources_in_one_box, - max_ntargets_in_one_box, source_dtype, strength_dtype): - if not self.is_gpu: - knl = self.get_kernel(max_nsources_in_one_box, - max_ntargets_in_one_box) + @override + def get_optimized_kernel(self, *, + max_nsources_in_one_box: int = 32, + max_ntargets_in_one_box: int = 32, + strength_dtype: np.dtype[Any] | None = None, + source_dtype: np.dtype[Any] | None = None, + local_mem_size: int = 32, + is_gpu: bool = False, **kwargs) -> lp.TranslationUnit: + if not is_gpu: + knl = self.get_kernel( + max_nsources_in_one_box=max_nsources_in_one_box, + max_ntargets_in_one_box=max_ntargets_in_one_box, + is_gpu=is_gpu) knl = lp.split_iname(knl, "itgt_box", 4, outer_tag="g.0") knl = self._allow_redundant_execution_of_knl_scaling(knl) else: + assert strength_dtype is not None + assert source_dtype is not None + dtype_size = np.dtype(strength_dtype).alignment work_items_per_group = min(256, max_ntargets_in_one_box) total_local_mem = max_nsources_in_one_box * \ (self.dim + self.strength_count) * dtype_size # multiplying by 2 here to make sure at least 2 work groups # can be scheduled at the same time for latency hiding - nprefetch = (2 * total_local_mem - 1) // self.device.local_mem_size + 1 + nprefetch = (2 * total_local_mem - 1) // local_mem_size + 1 - knl = self.get_kernel(max_nsources_in_one_box, - max_ntargets_in_one_box, - work_items_per_group=work_items_per_group) + knl = self.get_kernel( + max_nsources_in_one_box=max_nsources_in_one_box, + max_ntargets_in_one_box=max_ntargets_in_one_box, + work_items_per_group=work_items_per_group, + is_gpu=is_gpu) knl = lp.tag_inames(knl, {"itgt_box": "g.0", "inner": "l.0"}) knl = lp.set_temporary_address_space(knl, ["local_isrc", "local_isrc_strength"], lp.AddressSpace.LOCAL) @@ -768,42 +798,43 @@ def get_optimized_kernel(self, max_nsources_in_one_box, knl = lp.add_inames_to_insn(knl, "inner", "id:init_* or id:*_scaling or id:src_box_insn_*") knl = lp.add_inames_to_insn(knl, "itgt_box", "id:*_scaling") - # knl = lp.set_options(knl, write_code=True) - - knl = lp.set_options(knl, - enforce_variable_access_ordered="no_check") - - knl = register_optimization_preambles(knl, self.device) + knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") return knl def __call__(self, - queue: cl.CommandQueue, + actx: ArrayContext, 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]]: + ) -> ObjectArray1D[Array]: + from sumpy.array_context import is_cl_cpu - if self.is_gpu: - source_dtype = sources[0].dtype - strength_dtype = kwargs.get("strength").dtype + is_gpu = not is_cl_cpu(actx) + if is_gpu: + source_dtype = kwargs["sources"][0].dtype + strength_dtype = kwargs["strength"].dtype else: # these are unused for not GPU and defeats the caching # set them to None to keep the caching across dtypes source_dtype = None strength_dtype = None - knl = self.get_cached_kernel_executor( + assert isinstance(actx, PyOpenCLArrayContext) + knl = self.get_cached_kernel( max_nsources_in_one_box=max_nsources_in_one_box, max_ntargets_in_one_box=max_ntargets_in_one_box, + local_mem_size=actx.queue.device.local_mem_size, + is_gpu=is_gpu, source_dtype=source_dtype, strength_dtype=strength_dtype, - ) + ) - return knl(queue, targets=targets, sources=sources, **kwargs) + result = actx.call_loopy(knl, targets=targets, sources=sources, **kwargs) + return obj_array.new_1d([result[f"result_s{i}"] for i in range(self.nresults)]) # }}} diff --git a/sumpy/qbx.py b/sumpy/qbx.py index d38fe6aad..926367a9d 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -28,23 +28,24 @@ import logging from abc import ABC -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any import numpy as np from typing_extensions import override import loopy as lp import pytools.obj_array as obj_array -from loopy.version import MOST_RECENT_LANGUAGE_VERSION -from pymbolic import parse, var +from pymbolic import parse from pytools import memoize_method import sumpy.symbolic as sym +from sumpy.array_context import is_cl_cpu, make_loopy_program from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like if TYPE_CHECKING: - import pyopencl as cl + + from arraycontext import ArrayContext from sumpy.expansion.local import ( LineTaylorLocalExpansion, @@ -67,7 +68,7 @@ """ -def stringify_expn_index(i): +def stringify_expn_index(i: tuple[int, ...] | int) -> str: if isinstance(i, tuple): return "_".join(stringify_expn_index(i_i) for i_i in i) else: @@ -80,13 +81,12 @@ def stringify_expn_index(i): # {{{ layer potential computation -# {{{ base class +# {{{ LayerPotentialBase: base class class LayerPotentialBase(KernelCacheMixin, KernelComputation, ABC): expansion: LineTaylorLocalExpansion | LocalExpansionBase def __init__(self, - ctx: cl.Context, expansion: LineTaylorLocalExpansion | LocalExpansionBase, strength_usage=None, value_dtypes=None, @@ -96,9 +96,12 @@ def __init__(self, target_kernels=None): from pytools import single_valued - KernelComputation.__init__(self, ctx=ctx, target_kernels=target_kernels, - strength_usage=strength_usage, source_kernels=source_kernels, - value_dtypes=value_dtypes, name=name, device=device) + KernelComputation.__init__(self, + target_kernels=target_kernels, + source_kernels=source_kernels, + strength_usage=strength_usage, + value_dtypes=value_dtypes, + name=name) self.dim = single_valued(knl.dim for knl in self.target_kernels) self.expansion = expansion @@ -106,8 +109,7 @@ def __init__(self, def get_cache_key(self): return (type(self).__name__, self.expansion, tuple(self.target_kernels), tuple(self.source_kernels), tuple(self.strength_usage), - tuple(self.value_dtypes), - self.device.hashable_model_and_version_identifier) + tuple(self.value_dtypes)) def _expand(self, sac, avec, bvec, rscale, isrc): from sumpy.symbolic import PymbolicToSympyMapper @@ -152,12 +154,13 @@ def get_loopy_insns_and_result_names(self): logger.info("compute expansion expressions: start") + import pymbolic as prim rscale = sym.Symbol("rscale") - isrc_sym = var("isrc") + isrc_sym = prim.var("isrc") coefficients = self._expand(sac, avec, bvec, rscale, isrc_sym) result_names = [self._evaluate(sac, avec, bvec, rscale, i, coefficients) - for i in range(len(self.target_kernels))] + for i in range(self.nresults)] logger.info("compute expansion expressions: done") @@ -178,10 +181,12 @@ def get_loopy_insns_and_result_names(self): return loopy_insns, result_names def get_strength_or_not(self, isrc, kernel_idx): - return var(f"strength_{self.strength_usage[kernel_idx]}_isrc") + import pymbolic as prim + return prim.var(f"strength_{self.strength_usage[kernel_idx]}_isrc") def get_kernel_exprs(self, result_names): - exprs = [var(name) for i, name in enumerate(result_names)] + import pymbolic as prim + exprs = [prim.var(name) for i, name in enumerate(result_names)] return [lp.Assignment(id=None, assignee=f"pair_result_{i}", @@ -205,13 +210,15 @@ def get_default_src_tgt_arguments(self): *gather_loopy_source_arguments(self.source_kernels) ] - @override - def get_optimized_kernel(self, - targets_is_obj_array, sources_is_obj_array, centers_is_obj_array, + def get_optimized_kernel(self, *, + is_cpu: bool = True, + targets_is_obj_array: bool = False, + sources_is_obj_array: bool = False, + centers_is_obj_array: bool = False, # Used by pytential to override the name of the loop to be # parallelized. In the case of QBX, that's the loop over QBX # targets (not global targets). - itgt_name="itgt"): + itgt_name: str = "itgt", **kwargs: Any) -> lp.TranslationUnit: # FIXME specialize/tune for GPU/CPU loopy_knl = self.get_kernel() @@ -222,9 +229,7 @@ def get_optimized_kernel(self, if centers_is_obj_array: loopy_knl = lp.tag_array_axes(loopy_knl, "center", "sep,C") - import pyopencl as cl - dev = self.context.devices[0] - if dev.type & cl.device_type.CPU: + if is_cpu: loopy_knl = lp.split_iname(loopy_knl, itgt_name, 16, outer_tag="g.0", inner_tag="l.0") loopy_knl = lp.split_iname(loopy_knl, "isrc", 256) @@ -232,9 +237,11 @@ def get_optimized_kernel(self, ["isrc_outer", f"{itgt_name}_inner"]) else: from warnings import warn - warn(f"don't know how to tune layer potential computation for '{dev}'", - stacklevel=1) + warn( + "Do not know how to tune layer potential computation for " + "non-CPU targets", stacklevel=1) loopy_knl = lp.split_iname(loopy_knl, itgt_name, 128, outer_tag="g.0") + loopy_knl = self._allow_redundant_execution_of_knl_scaling(loopy_knl) return loopy_knl @@ -242,7 +249,7 @@ def get_optimized_kernel(self, # }}} -# {{{ direct applier +# {{{ LayerPotential: direct applier class LayerPotential(LayerPotentialBase): """Direct applier for the layer potential. @@ -270,7 +277,7 @@ def get_kernel(self): for i in range(len(self.target_kernels)) ]) - loopy_knl = lp.make_kernel([""" + loopy_knl = make_loopy_program([""" {[itgt, isrc, idim]: \ 0 <= itgt < ntargets and \ 0 <= isrc < nsources and \ @@ -291,13 +298,12 @@ def get_kernel(self): """ for iknl in range(len(self.target_kernels))] + ["end"], - arguments, + kernel_data=arguments, name=self.name, assumptions="ntargets>=1 and nsources>=1", - default_offset=lp.auto, silenced_warnings="write_race(write_lpot*)", fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") for knl in [*self.target_kernels, *self.source_kernels]: @@ -305,14 +311,16 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, targets, sources, centers, strengths, expansion_radii, + def __call__(self, actx: ArrayContext, + targets, sources, centers, strengths, expansion_radii, **kwargs): """ :arg strengths: are required to have area elements and quadrature weights already multiplied in. """ - knl = self.get_cached_kernel_executor( + knl = self.get_cached_kernel( + is_cpu=is_cl_cpu(actx), targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) @@ -320,13 +328,20 @@ def __call__(self, queue, targets, sources, centers, strengths, expansion_radii, for i, dens in enumerate(strengths): kwargs[f"strength_{i}"] = dens - return knl(queue, sources=sources, targets=targets, center=centers, - expansion_radii=expansion_radii, **kwargs) + result = actx.call_loopy( + knl, + sources=sources, + targets=targets, + center=centers, + expansion_radii=expansion_radii, + **kwargs) + + return obj_array.new_1d([result[f"result_{i}"] for i in range(self.nresults)]) # }}} -# {{{ matrix writer +# {{{ LayerPotentialMatrixGenerator: matrix writer class LayerPotentialMatrixGenerator(LayerPotentialBase): """Generator for layer potential matrix entries.""" @@ -350,7 +365,7 @@ def get_kernel(self): for i, dtype in enumerate(self.value_dtypes) ]) - loopy_knl = lp.make_kernel([""" + loopy_knl = make_loopy_program([""" {[itgt, isrc, idim]: \ 0 <= itgt < ntargets and \ 0 <= isrc < nsources and \ @@ -369,12 +384,11 @@ def get_kernel(self): """ for iknl in range(len(self.target_kernels))] + ["end"], - arguments, + kernel_data=arguments, name=self.name, assumptions="ntargets>=1 and nsources>=1", - default_offset=lp.auto, fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") for expn in [*self.source_kernels, *self.target_kernels]: @@ -382,19 +396,28 @@ def get_kernel(self): return loopy_knl - def __call__(self, queue, targets, sources, centers, expansion_radii, **kwargs): - knl = self.get_cached_kernel_executor( + def __call__(self, actx: ArrayContext, + targets, sources, centers, expansion_radii, **kwargs): + knl = self.get_cached_kernel( + is_cpu=is_cl_cpu(actx), targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) - return knl(queue, sources=sources, targets=targets, center=centers, - expansion_radii=expansion_radii, **kwargs) + result = actx.call_loopy( + knl, + sources=sources, + targets=targets, + center=centers, + expansion_radii=expansion_radii, + **kwargs) + + return obj_array.new_1d([result[f"result_{i}"] for i in range(self.nresults)]) # }}} -# {{{ matrix subset generator +# {{{ LayerPotentialMatrixSubsetGenerator: matrix subset generator class LayerPotentialMatrixSubsetGenerator(LayerPotentialBase): """Generator for a subset of the layer potential matrix entries. @@ -425,7 +448,7 @@ def get_kernel(self): for i, dtype in enumerate(self.value_dtypes) ]) - loopy_knl = lp.make_kernel([ + loopy_knl = make_loopy_program([ "{[imat, idim]: 0 <= imat < nresult and 0 <= idim < dim}" ], self.get_kernel_scaling_assignments() @@ -448,13 +471,12 @@ def get_kernel(self): """ for iknl in range(len(self.target_kernels))] + ["end"], - arguments, + kernel_data=arguments, name=self.name, assumptions="nresult>=1", - default_offset=lp.auto, silenced_warnings="write_race(write_lpot*)", fixed_parameters={"dim": self.dim}, - lang_version=MOST_RECENT_LANGUAGE_VERSION) + ) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.add_dtypes( @@ -481,8 +503,9 @@ def get_optimized_kernel(self, loopy_knl = self._allow_redundant_execution_of_knl_scaling(loopy_knl) return loopy_knl - def __call__(self, queue, targets, sources, centers, expansion_radii, - tgtindices, srcindices, **kwargs): + def __call__(self, actx: ArrayContext, + targets, sources, centers, expansion_radii, + tgtindices, srcindices, **kwargs): """Evaluate a subset of the QBX matrix interactions. :arg targets: target point coordinates, which can be an object @@ -504,18 +527,21 @@ def __call__(self, queue, targets, sources, centers, expansion_radii, in (*srcindices*, *tgtindices*) """ - knl = self.get_cached_kernel_executor( + knl = self.get_cached_kernel( targets_is_obj_array=is_obj_array_like(targets), sources_is_obj_array=is_obj_array_like(sources), centers_is_obj_array=is_obj_array_like(centers)) - return knl(queue, - sources=sources, - targets=targets, - center=centers, - expansion_radii=expansion_radii, - tgtindices=tgtindices, - srcindices=srcindices, **kwargs) + result = actx.call_loopy( + knl, + sources=sources, + targets=targets, + center=centers, + expansion_radii=expansion_radii, + tgtindices=tgtindices, + srcindices=srcindices, **kwargs) + + return obj_array.new_1d([result[f"result_{i}"] for i in range(self.nresults)]) # }}} @@ -617,6 +643,7 @@ class _JumpTermSymbolicArgumentProvider: data was requested. This tracking allows assembling the argument list of the resulting computational kernel. """ + dim: int def __init__(self, data_args, dim, density_var_name, density_dtype, geometry_dtype): @@ -630,26 +657,29 @@ def __init__(self, data_args, dim, density_var_name, @property @memoize_method def density(self): + import pymbolic as prim self.arguments[self.density_var_name] = \ lp.GlobalArg(self.density_var_name, self.density_dtype, shape="ntargets", order="C") - return parse(f"{self.density_var_name}[itgt]") + return prim.parse(f"{self.density_var_name}[itgt]") @property @memoize_method def density_prime(self): + import pymbolic as prim prime_var_name = f"{self.density_var_name}_prime" self.arguments[prime_var_name] = ( lp.GlobalArg(prime_var_name, self.density_dtype, shape="ntargets", order="C")) - return parse(f"{prime_var_name}[itgt]") + return prim.parse(f"{prime_var_name}[itgt]") @property @memoize_method def side(self): + import pymbolic as prim self.arguments["side"] = ( lp.GlobalArg("side", self.geometry_dtype, shape="ntargets")) - return parse("side[itgt]") + return prim.parse("side[itgt]") @property @memoize_method @@ -674,11 +704,12 @@ def tangent(self): @property @memoize_method def mean_curvature(self): + import pymbolic as prim self.arguments["mean_curvature"] = ( lp.GlobalArg("mean_curvature", self.geometry_dtype, shape="ntargets", order="C")) - return parse("mean_curvature[itgt]") + return prim.parse("mean_curvature[itgt]") @property @memoize_method diff --git a/sumpy/test/test_distributed.py b/sumpy/test/test_distributed.py index f9bb00e41..29f339bbf 100644 --- a/sumpy/test/test_distributed.py +++ b/sumpy/test/test_distributed.py @@ -23,13 +23,23 @@ THE SOFTWARE. """ +import logging import os from functools import partial import numpy as np import pytest -import pyopencl as cl +from arraycontext import pytest_generate_tests_for_array_contexts + +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf + + +logger = logging.getLogger(__name__) + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) # Note: Do not import mpi4py.MPI object at the module level, because OpenMPI does not @@ -57,14 +67,13 @@ def _test_against_single_rank( set_cache_dir(mpi_rank) # Configure array context - cl_context = cl.create_some_context() - queue = cl.CommandQueue(cl_context) + actx = _acf() def fmm_level_to_order(base_kernel, kernel_arg_set, tree, level): return max(level, 3) from boxtree.traversal import FMMTraversalBuilder - traversal_builder = FMMTraversalBuilder(cl_context, well_sep_is_n_away=2) + traversal_builder = FMMTraversalBuilder(actx, well_sep_is_n_away=2) from sumpy.expansion import DefaultExpansionFactory from sumpy.kernel import LaplaceKernel @@ -78,34 +87,30 @@ def fmm_level_to_order(base_kernel, kernel_arg_set, tree, level): from sumpy.fmm import SumpyTreeIndependentDataForWrangler tree_indep = SumpyTreeIndependentDataForWrangler( - cl_context, multipole_expansion_factory, local_expansion_factory, [kernel]) + actx, multipole_expansion_factory, local_expansion_factory, [kernel]) global_tree_dev = None - sources_weights = cl.array.empty(queue, 0, dtype=dtype) + sources_weights = actx.np.zeros(0, dtype=dtype) if mpi_rank == 0: # Generate random particles and source weights from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(queue, nsources, dims, dtype, seed=15) - targets = p_normal(queue, ntargets, dims, dtype, seed=18) + sources = p_normal(actx, nsources, dims, dtype, seed=15) + targets = p_normal(actx, ntargets, dims, dtype, seed=18) # FIXME: Use arraycontext instead of raw PyOpenCL arrays - from pyopencl.clrandom import PhiloxGenerator - rng = PhiloxGenerator(cl_context, seed=20) - sources_weights = rng.uniform(queue, nsources, dtype=np.float64) - - rng = PhiloxGenerator(cl_context, seed=22) - target_radii = rng.uniform( - queue, ntargets, a=0, b=0.05, dtype=np.float64) + rng = np.random.default_rng(20) + sources_weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) + target_radii = actx.from_numpy(0.05 * rng.random(ntargets, dtype=np.float64)) # Build the tree and interaction lists from boxtree import TreeBuilder - tb = TreeBuilder(cl_context) + tb = TreeBuilder(actx) global_tree_dev, _ = tb( - queue, sources, targets=targets, target_radii=target_radii, + actx, sources, targets=targets, target_radii=target_radii, stick_out_factor=0.25, max_particles_in_box=30, debug=True) - global_trav_dev, _ = traversal_builder(queue, global_tree_dev, debug=True) + global_trav_dev, _ = traversal_builder(actx, global_tree_dev, debug=True) from sumpy.fmm import SumpyExpansionWrangler wrangler = SumpyExpansionWrangler(tree_indep, global_trav_dev, dtype, @@ -113,32 +118,29 @@ def fmm_level_to_order(base_kernel, kernel_arg_set, tree, level): # Compute FMM with one MPI rank from boxtree.fmm import drive_fmm - shmem_potential = drive_fmm(wrangler, [sources_weights]) + shmem_potential = drive_fmm(actx, wrangler, [sources_weights]) # Compute FMM using the distributed implementation def wrangler_factory(local_traversal, global_traversal): from sumpy.distributed import DistributedSumpyExpansionWrangler return DistributedSumpyExpansionWrangler( - cl_context, comm, tree_indep, local_traversal, global_traversal, dtype, + actx, comm, tree_indep, local_traversal, global_traversal, dtype, fmm_level_to_order, communicate_mpoles_via_allreduce=communicate_mpoles_via_allreduce) from boxtree.distributed import DistributedFMMRunner distributed_fmm_info = DistributedFMMRunner( - queue, global_tree_dev, traversal_builder, wrangler_factory, comm=comm) + actx, global_tree_dev, traversal_builder, wrangler_factory, comm=comm) - timing_data = {} - distributed_potential = distributed_fmm_info.drive_dfmm( - [sources_weights], timing_data=timing_data) - assert timing_data + distributed_potential = distributed_fmm_info.drive_dfmm(actx, [sources_weights]) if mpi_rank == 0: assert shmem_potential.shape == (1,) assert distributed_potential.shape == (1,) - shmem_potential = shmem_potential[0].get() - distributed_potential = distributed_potential[0].get() + shmem_potential = actx.to_numpy(shmem_potential[0]) + distributed_potential = actx.to_numpy(distributed_potential[0]) error = (np.linalg.norm(distributed_potential - shmem_potential, ord=np.inf) / np.linalg.norm(shmem_potential, ord=np.inf)) diff --git a/sumpy/test/test_fmm.py b/sumpy/test/test_fmm.py index 0ddae297b..5f54e3273 100644 --- a/sumpy/test/test_fmm.py +++ b/sumpy/test/test_fmm.py @@ -34,7 +34,11 @@ import pytest import pytools.obj_array as obj_array -from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts +from arraycontext import ( + ArrayContextFactory, + PyOpenCLArrayContext, + pytest_generate_tests_for_array_contexts, +) from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import ( @@ -146,17 +150,24 @@ def _test_sumpy_fmm( actx = actx_factory() + if fft_backend == "pyvkfft": + from pyopencl.characterize import get_pocl_version + if (isinstance(actx, PyOpenCLArrayContext) + and get_pocl_version(actx.queue.device.platform) >= (7,)): + pytest.skip("pocl 7 and pyvkfft don't get along: " + "https://github.com/pocl/pocl/issues/2069") + nsources = 1000 ntargets = 300 dtype = np.float64 from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) if 1: offset = np.zeros(knl.dim) offset[0] = 0.1 - targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) + targets = offset + p_normal(actx, ntargets, knl.dim, dtype, seed=18) del offset else: @@ -166,20 +177,19 @@ def _test_sumpy_fmm( targets = obj_array.new_1d([fp.points[i] for i in range(knl.dim)]) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) - - tree, _ = tb(actx.queue, sources, targets=targets, + tb = TreeBuilder(actx) + tree, _ = tb(actx, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) # {{{ plot tree if 0: - host_tree = tree.get(actx.queue) - host_trav = trav.get(actx.queue) + host_tree = actx.to_numpy(tree) + host_trav = actx.to_numpy(trav) if 0: logger.info("src_box: %s", host_tree.find_box_nr_for_source(403)) @@ -247,7 +257,7 @@ def _test_sumpy_fmm( local_expansion_factory = partial(local_expn_class, knl) tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), local_expansion_factory, target_kernels) @@ -266,12 +276,11 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): from boxtree.fmm import drive_fmm - pot, = drive_fmm(wrangler, (weights,)) + pot, = drive_fmm(actx, wrangler, (weights,)) from sumpy import P2P - p2p = P2P(actx.context, target_kernels, exclude_self=False) - _evt, (ref_pot,) = p2p(actx.queue, targets, sources, (weights,), - **extra_kwargs) + p2p = P2P(target_kernels, exclude_self=False) + ref_pot, = p2p(actx, targets, sources, (weights,), **extra_kwargs) pot = actx.to_numpy(pot) ref_pot = actx.to_numpy(ref_pot) @@ -305,21 +314,19 @@ def test_coeff_magnitude_rscale(actx_factory: ArrayContextFactory, knl): from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) offset = np.zeros(knl.dim) offset[0] = 0.1 - targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) + targets = offset + p_normal(actx, ntargets, knl.dim, dtype, seed=18) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) - - tree, _ = tb(actx.queue, sources, targets=targets, - max_particles_in_box=30, debug=True) + tb = TreeBuilder(actx) + tree, _ = tb(actx, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(31) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) @@ -338,7 +345,7 @@ def test_coeff_magnitude_rscale(actx_factory: ArrayContextFactory, knl): target_kernels = [knl] tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels) @@ -351,9 +358,10 @@ def fmm_level_to_order(kernel, kernel_args, tree, lev): kernel_extra_kwargs=extra_kwargs) weights = wrangler.reorder_sources(weights) - (weights,) = wrangler.distribute_source_weights((weights,), None) + (weights,) = wrangler.distribute_source_weights(actx, (weights,), None) - local_result, _ = wrangler.form_locals( + local_result = wrangler.form_locals( + actx, trav.level_start_target_or_target_parent_box_nrs, trav.target_or_target_parent_boxes, trav.from_sep_bigger_starts, @@ -393,22 +401,20 @@ def test_unified_single_and_double(actx_factory: ArrayContextFactory, visualize= from boxtree.tools import make_normal_particle_array as p_normal - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) offset = np.zeros(knl.dim) offset[0] = 0.1 - targets = offset + p_normal(actx.queue, ntargets, knl.dim, dtype, seed=18) + targets = offset + p_normal(actx, ntargets, knl.dim, dtype, seed=18) del offset from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) - - tree, _ = tb(actx.queue, sources, targets=targets, - max_particles_in_box=30, debug=True) + tb = TreeBuilder(actx) + tree, _ = tb(actx, sources, targets=targets, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(44) weights = ( @@ -439,7 +445,7 @@ def test_unified_single_and_double(actx_factory: ArrayContextFactory, visualize= if deriv_knl in source_kernels: source_extra_kwargs["dir_vec"] = dir_vec tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=target_kernels, source_kernels=source_kernels, @@ -450,7 +456,7 @@ def test_unified_single_and_double(actx_factory: ArrayContextFactory, visualize= from boxtree.fmm import drive_fmm - pot = drive_fmm(wrangler, weights) + pot = drive_fmm(actx, wrangler, weights) results.append(np.array([actx.to_numpy(pot[0]), actx.to_numpy(pot[1])])) ref_pot = results[0] + results[1] @@ -488,16 +494,15 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) mpole_expn_class = VolumeTaylorMultipoleExpansion order = 1 - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) - - tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) + tb = TreeBuilder(actx) + tree, _ = tb(actx, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(44) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) @@ -515,7 +520,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) knl, local_expn_class)() tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl, m2l_translation_override=m2l_translation), target_kernels) @@ -524,11 +529,7 @@ def test_sumpy_fmm_timing_data_collection(ctx_factory, use_fft, visualize=False) fmm_level_to_order=lambda kernel, kernel_args, tree, lev: order) from boxtree.fmm import drive_fmm - timing_data = {} - _pot, = drive_fmm(wrangler, (weights,), timing_data=timing_data) - logger.info("timing_data:\n%s", timing_data) - - assert timing_data + _pot, = drive_fmm(actx, wrangler, (weights,)) def test_sumpy_fmm_exclude_self(actx_factory: ArrayContextFactory, visualize=False): @@ -547,16 +548,16 @@ def test_sumpy_fmm_exclude_self(actx_factory: ArrayContextFactory, visualize=Fal mpole_expn_class = VolumeTaylorMultipoleExpansion order = 10 - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) + tb = TreeBuilder(actx) - tree, _ = tb(actx.queue, sources, max_particles_in_box=30, debug=True) + tree, _ = tb(actx, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(44) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) @@ -567,7 +568,7 @@ def test_sumpy_fmm_exclude_self(actx_factory: ArrayContextFactory, visualize=Fal target_kernels = [knl] tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels, @@ -579,12 +580,11 @@ def test_sumpy_fmm_exclude_self(actx_factory: ArrayContextFactory, visualize=Fal from boxtree.fmm import drive_fmm - pot, = drive_fmm(wrangler, (weights,)) + pot, = drive_fmm(actx, wrangler, (weights,)) from sumpy import P2P - p2p = P2P(actx.context, target_kernels, exclude_self=True) - _evt, (ref_pot,) = p2p(actx.queue, sources, sources, (weights,), - **self_extra_kwargs) + p2p = P2P(target_kernels, exclude_self=True) + ref_pot, = p2p(actx, sources, sources, (weights,), **self_extra_kwargs) pot = actx.to_numpy(pot) ref_pot = actx.to_numpy(ref_pot) @@ -617,17 +617,15 @@ def test_sumpy_axis_source_derivative( mpole_expn_class = VolumeTaylorMultipoleExpansion order = 10 - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) - - tree, _ = tb(actx.queue, sources, - max_particles_in_box=30, debug=True) + tb = TreeBuilder(actx) + tree, _ = tb(actx, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(12) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) @@ -642,7 +640,7 @@ def test_sumpy_axis_source_derivative( (AxisTargetDerivative(0, knl), knl), (knl, AxisSourceDerivative(0, knl))]: tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=[tgt_knl], @@ -655,7 +653,7 @@ def test_sumpy_axis_source_derivative( from boxtree.fmm import drive_fmm - pot, = drive_fmm(wrangler, (weights,)) + pot, = drive_fmm(actx, wrangler, (weights,)) pots.append(actx.to_numpy(pot)) rel_err = la.norm(pots[0] + pots[1]) / la.norm(pots[0]) @@ -688,17 +686,17 @@ def test_sumpy_target_point_multiplier( mpole_expn_class = VolumeTaylorMultipoleExpansion order = 5 - sources = p_normal(actx.queue, nsources, knl.dim, dtype, seed=15) + sources = p_normal(actx, nsources, knl.dim, dtype, seed=15) from boxtree import TreeBuilder - tb = TreeBuilder(actx.context) + tb = TreeBuilder(actx) - tree, _ = tb(actx.queue, sources, + tree, _ = tb(actx, sources, max_particles_in_box=30, debug=True) from boxtree.traversal import FMMTraversalBuilder - tbuild = FMMTraversalBuilder(actx.context) - trav, _ = tbuild(actx.queue, tree, debug=True) + tbuild = FMMTraversalBuilder(actx) + trav, _ = tbuild(actx, tree, debug=True) rng = np.random.default_rng(12) weights = actx.from_numpy(rng.random(nsources, dtype=np.float64)) @@ -714,7 +712,7 @@ def test_sumpy_target_point_multiplier( tgt_knls[1] = AxisTargetDerivative(axis, tgt_knls[1]) tree_indep = SumpyTreeIndependentDataForWrangler( - actx.context, + actx, partial(mpole_expn_class, knl), partial(local_expn_class, knl), target_kernels=tgt_knls, @@ -727,7 +725,7 @@ def test_sumpy_target_point_multiplier( from boxtree.fmm import drive_fmm - pot0, pot1, pot2 = drive_fmm(wrangler, (weights,)) + pot0, pot1, pot2 = drive_fmm(actx, wrangler, (weights,)) pot0, pot1, pot2 = actx.to_numpy(pot0), actx.to_numpy(pot1), actx.to_numpy(pot2) if deriv_axes == (0,): ref_pot = pot1 * actx.to_numpy(sources[0]) + pot2 diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index b05538075..2167a56a0 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -89,9 +89,7 @@ def test_p2p(actx_factory: ArrayContextFactory, exclude_self): from sumpy.p2p import P2P lknl = LaplaceKernel(dimensions) - knl = P2P(actx.context, - [lknl, AxisTargetDerivative(0, lknl)], - exclude_self=exclude_self) + knl = P2P([lknl, AxisTargetDerivative(0, lknl)], exclude_self=exclude_self) rng = np.random.default_rng(42) targets = rng.random(size=(dimensions, n)) @@ -104,8 +102,8 @@ def test_p2p(actx_factory: ArrayContextFactory, exclude_self): extra_kwargs["target_to_source"] = ( actx.from_numpy(np.arange(n, dtype=np.int32))) - _evt, (potential, _x_derivative) = knl( - actx.queue, + potential, _ = knl( + actx, actx.from_numpy(targets), actx.from_numpy(sources), [actx.from_numpy(strengths)], @@ -202,11 +200,11 @@ def test_p2e_multiple( rscale = 0.5 # pick something non-1 # apply p2e at the same time - p2e = P2EFromSingleBox(actx.context, expn, + p2e = P2EFromSingleBox(expn, kernels=source_kernels, strength_usage=[0, 1]) - _evt, (mpoles,) = p2e(actx.queue, + mpoles = p2e(actx, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -218,7 +216,6 @@ def test_p2e_multiple( rscale=rscale, dir_vec=dir_vec, **extra_kwargs) - actual_result = actx.to_numpy(mpoles) # apply p2e separately @@ -228,10 +225,10 @@ def test_p2e_multiple( if isinstance(source_kernel, DirectionalSourceDerivative): extra_source_kwargs["dir_vec"] = dir_vec - p2e = P2EFromSingleBox(actx.context, expn, + p2e = P2EFromSingleBox(expn, kernels=[source_kernel], strength_usage=[i]) - _evt, (mpoles,) = p2e(actx.queue, + mpoles = p2e(actx, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -318,9 +315,9 @@ def test_p2e2p( expn = expn_class(knl, order=order) from sumpy import P2P, E2PFromSingleBox, P2EFromSingleBox - p2e = P2EFromSingleBox(actx.context, expn, kernels=[knl]) - e2p = E2PFromSingleBox(actx.context, expn, kernels=target_kernels) - p2p = P2P(actx.context, target_kernels, exclude_self=False) + p2e = P2EFromSingleBox(expn, kernels=[knl]) + e2p = E2PFromSingleBox(expn, kernels=target_kernels) + p2p = P2P(target_kernels, exclude_self=False) from pytools.convergence import EOCRecorder eoc_rec_pot = EOCRecorder() @@ -372,7 +369,7 @@ def test_p2e2p( # {{{ apply p2e - _evt, (mpoles,) = p2e(actx.queue, + mpoles = p2e(actx, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, @@ -394,8 +391,8 @@ def test_p2e2p( box_target_counts_nonchild = ( actx.from_numpy(np.array([ntargets], dtype=np.int32))) - _evt, (pot, grad_x, ) = e2p( - actx.queue, + pot, grad_x = e2p( + actx, src_expansions=mpoles, src_base_ibox=0, target_boxes=source_boxes, @@ -412,8 +409,8 @@ def test_p2e2p( # {{{ compute (direct) reference solution - _evt, (pot_direct, grad_x_direct, ) = p2p( - actx.queue, + pot_direct, grad_x_direct = p2p( + actx, targets, sources, (strengths,), **extra_source_kwargs) pot_direct = actx.to_numpy(pot_direct) @@ -594,7 +591,6 @@ def test_translations( m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() toy_ctx = t.ToyContext( - actx.context, kernel=knl, local_expn_class=partial(local_expn_class, m2l_translation_override=m2l_translation), @@ -603,7 +599,7 @@ def test_translations( ) p = t.PointSources(toy_ctx, sources, weights=strengths) - p2p = p.eval(targets) + p2p = p.eval(actx, targets) m1_rscale = 0.5 m2_rscale = 0.25 @@ -611,27 +607,32 @@ def test_translations( l2_rscale = 0.25 for order in orders: - print(centers[:, 0].shape) - p2m = t.multipole_expand(p, centers[:, 0], order, m1_rscale) - p2m2p = p2m.eval(targets) + logger.info("Centers: %s", centers[:, 0].shape) + + p2m = t.multipole_expand(actx, p, centers[:, 0], + order=order, rscale=m1_rscale) + p2m2p = p2m.eval(actx, targets) err = la.norm((p2m2p - p2p) / res**2) err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2p.add_data_point(order, err) - p2m2m = t.multipole_expand(p2m, centers[:, 1], order, m2_rscale) - p2m2m2p = p2m2m.eval(targets) + p2m2m = t.multipole_expand(actx, p2m, centers[:, 1], + order=order, rscale=m2_rscale) + p2m2m2p = p2m2m.eval(actx, targets) err = la.norm((p2m2m2p - p2p)/res**2) err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2m2p.add_data_point(order, err) - p2m2m2l = t.local_expand(p2m2m, centers[:, 2], order, l1_rscale) - p2m2m2l2p = p2m2m2l.eval(targets) + p2m2m2l = t.local_expand(actx, p2m2m, centers[:, 2], + order=order, rscale=l1_rscale) + p2m2m2l2p = p2m2m2l.eval(actx, targets) err = la.norm((p2m2m2l2p - p2p)/res**2) err = err / (la.norm(p2p) / res**2) pconv_verifier_p2m2m2l2p.add_data_point(order, err) - p2m2m2l2l = t.local_expand(p2m2m2l, centers[:, 3], order, l2_rscale) - p2m2m2l2l2p = p2m2m2l2l.eval(targets) + p2m2m2l2l = t.local_expand(actx, p2m2m2l, centers[:, 3], + order=order, rscale=l2_rscale) + p2m2m2l2l2p = p2m2m2l2l.eval(actx, targets) err = la.norm((p2m2m2l2l2p - p2p)/res**2) err = err / (la.norm(p2p) / res**2) pconv_verifier_full.add_data_point(order, err) @@ -825,7 +826,6 @@ def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, for i, (mpole_expn_class, local_expn_class) in \ enumerate(zip(mpole_expn_classes, local_expn_classes, strict=True)): tctx = toys.ToyContext( - actx.context, knl, extra_kernel_kwargs=extra_kernel_kwargs, local_expn_class=local_expn_class, @@ -837,15 +837,15 @@ def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, np.ones(sources.shape[-1]) ) - mexp = toys.multipole_expand(pt_src, + mexp = toys.multipole_expand(actx, pt_src, center=mpole_center.reshape(dim), order=order, rscale=h) - mexp2 = toys.multipole_expand(mexp, + mexp2 = toys.multipole_expand(actx, mexp, center=second_center.reshape(dim), order=order, rscale=h) - m2m_vals[i] = mexp2.eval(targets) + m2m_vals[i] = mexp2.eval(actx, targets) err = np.linalg.norm(m2m_vals[1] - m2m_vals[0]) \ / np.linalg.norm(m2m_vals[1]) @@ -902,13 +902,13 @@ def test_jump( dlp_knl = DirectionalSourceDerivative(kernel) from sumpy.qbx import LayerPotential - lpot = LayerPotential(actx.context, + lpot = LayerPotential( expansion=LineTaylorLocalExpansion(kernel, order=order), source_kernels=(dlp_knl,), target_kernels=(kernel,), value_dtypes=np.complex128,) - _evt, (y,) = lpot(actx.queue, + y, = lpot(actx, actx.from_numpy(targets), actx.from_numpy(geo.nodes), actx.from_numpy(centers), diff --git a/sumpy/test/test_matrixgen.py b/sumpy/test/test_matrixgen.py index 2a9a1669b..0bc4406a9 100644 --- a/sumpy/test/test_matrixgen.py +++ b/sumpy/test/test_matrixgen.py @@ -75,9 +75,9 @@ def _build_subset_indices(actx, ntargets, nsources, factor): rng = np.random.default_rng() if abs(factor - 1.0) > 1.0e-14: tgtindices = rng.choice(tgtindices, - size=int(factor * ntargets), replace=False) + size=int(factor * ntargets), replace=False) srcindices = rng.choice(srcindices, - size=int(factor * nsources), replace=False) + size=int(factor * nsources), replace=False) else: rng.shuffle(tgtindices) rng.shuffle(srcindices) @@ -120,59 +120,61 @@ def test_qbx_direct( expn = LineTaylorLocalExpansion(knl, order) from sumpy.qbx import LayerPotential - lpot = LayerPotential(actx.context, expansion=expn, source_kernels=(knl,), - target_kernels=(base_knl,)) + lpot = LayerPotential( + expansion=expn, + source_kernels=(knl,), + target_kernels=(base_knl,)) from sumpy.qbx import LayerPotentialMatrixGenerator - mat_gen = LayerPotentialMatrixGenerator(actx.context, - expansion=expn, - source_kernels=(knl,), - target_kernels=(base_knl,)) + mat_gen = LayerPotentialMatrixGenerator( + expansion=expn, + source_kernels=(knl,), + target_kernels=(base_knl,)) from sumpy.qbx import LayerPotentialMatrixSubsetGenerator - blk_gen = LayerPotentialMatrixSubsetGenerator(actx.context, - expansion=expn, - source_kernels=(knl,), - target_kernels=(base_knl,)) + blk_gen = LayerPotentialMatrixSubsetGenerator( + expansion=expn, + source_kernels=(knl,), + target_kernels=(base_knl,)) for n in [200, 300, 400]: - targets, sources, centers, expansion_radii, sigma = \ - _build_geometry(actx, n, n, mode_nr, target_radius=1.2) + targets, sources, centers, expansion_radii, sigma = ( + _build_geometry(actx, n, n, mode_nr, target_radius=1.2)) h = 2 * np.pi / n strengths = (sigma * h,) - tgtindices, srcindices = _build_subset_indices(actx, - ntargets=n, nsources=n, factor=factor) + tgtindices, srcindices = ( + _build_subset_indices(actx, ntargets=n, nsources=n, factor=factor)) extra_kwargs = {} if lpot_id == 2: extra_kwargs["dsource_vec"] = ( - actx.from_numpy(obj_array.new_1d(np.ones((ndim, n)))) - ) + actx.from_numpy(obj_array.new_1d(np.ones((ndim, n)))) + ) - _, (result_lpot,) = lpot(actx.queue, - targets=targets, - sources=sources, - centers=centers, - expansion_radii=expansion_radii, - strengths=strengths, **extra_kwargs) + result_lpot, = lpot(actx, + targets=targets, + sources=sources, + centers=centers, + expansion_radii=expansion_radii, + strengths=strengths, **extra_kwargs) result_lpot = actx.to_numpy(result_lpot) - _, (mat,) = mat_gen(actx.queue, - targets=targets, - sources=sources, - centers=centers, - expansion_radii=expansion_radii, **extra_kwargs) + mat, = mat_gen(actx, + targets=targets, + sources=sources, + centers=centers, + expansion_radii=expansion_radii, **extra_kwargs) mat = actx.to_numpy(mat) result_mat = mat @ actx.to_numpy(strengths[0]) - _, (blk,) = blk_gen(actx.queue, - targets=targets, - sources=sources, - centers=centers, - expansion_radii=expansion_radii, - tgtindices=tgtindices, - srcindices=srcindices, **extra_kwargs) + blk, = blk_gen(actx, + targets=targets, + sources=sources, + centers=centers, + expansion_radii=expansion_radii, + tgtindices=tgtindices, + srcindices=srcindices, **extra_kwargs) blk = actx.to_numpy(blk) tgtindices = actx.to_numpy(tgtindices) @@ -214,14 +216,15 @@ def test_p2p_direct( raise ValueError(f"unknown lpot_id: '{lpot_id}'") from sumpy.p2p import P2P - lpot = P2P(actx.context, [lknl], exclude_self=exclude_self) + lpot = P2P(target_kernels=[lknl], exclude_self=exclude_self) from sumpy.p2p import P2PMatrixGenerator - mat_gen = P2PMatrixGenerator(actx.context, [lknl], exclude_self=exclude_self) + mat_gen = P2PMatrixGenerator( + target_kernels=[lknl], exclude_self=exclude_self) from sumpy.p2p import P2PMatrixSubsetGenerator blk_gen = P2PMatrixSubsetGenerator( - actx.context, [lknl], exclude_self=exclude_self) + target_kernels=[lknl], exclude_self=exclude_self) for n in [200, 300, 400]: targets, sources, _, _, sigma = ( @@ -229,8 +232,8 @@ def test_p2p_direct( h = 2 * np.pi / n strengths = (sigma * h,) - tgtindices, srcindices = _build_subset_indices(actx, - ntargets=n, nsources=n, factor=factor) + tgtindices, srcindices = ( + _build_subset_indices(actx, ntargets=n, nsources=n, factor=factor)) extra_kwargs = {} if exclude_self: @@ -239,25 +242,25 @@ def test_p2p_direct( ) if lpot_id == 2: extra_kwargs["dsource_vec"] = ( - actx.from_numpy(obj_array.new_1d(np.ones((ndim, n))))) + actx.from_numpy(obj_array.new_1d(np.ones((ndim, n))))) - _, (result_lpot,) = lpot(actx.queue, + result_lpot, = lpot(actx, targets=targets, sources=sources, strength=strengths, **extra_kwargs) result_lpot = actx.to_numpy(result_lpot) - _, (mat,) = mat_gen(actx.queue, - targets=targets, - sources=sources, **extra_kwargs) + mat, = mat_gen(actx, + targets=targets, + sources=sources, **extra_kwargs) mat = actx.to_numpy(mat) result_mat = mat @ actx.to_numpy(strengths[0]) - _, (blk,) = blk_gen(actx.queue, - targets=targets, - sources=sources, - tgtindices=tgtindices, - srcindices=srcindices, **extra_kwargs) + blk, = blk_gen(actx, + targets=targets, + sources=sources, + tgtindices=tgtindices, + srcindices=srcindices, **extra_kwargs) blk = actx.to_numpy(blk) tgtindices = actx.to_numpy(tgtindices) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 6cede60aa..41bf03b29 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -135,7 +135,7 @@ def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5) actx = actx_factory() dim = knl_info.kernel.dim - tctx = t.ToyContext(actx.context, knl_info.kernel, + tctx = t.ToyContext(knl_info.kernel, extra_source_kwargs=knl_info.extra_kwargs) rng = np.random.default_rng(42) @@ -151,7 +151,7 @@ def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5) for h in [0.1, 0.05, 0.025]: cp = CalculusPatch(np.array([1, 0, 0])[:dim], h=h, order=order) - pot = pt_src.eval(cp.points) + pot = pt_src.eval(actx, cp.points) pde = knl_info.pde_func(cp, pot) @@ -334,7 +334,7 @@ def test_toy_p2e2e2p(actx_factory: ArrayContextFactory, case): from sumpy.expansion import VolumeTaylorExpansionFactory actx = actx_factory() - ctx = t.ToyContext(actx.context, + ctx = t.ToyContext( LaplaceKernel(dim), expansion_factory=VolumeTaylorExpansionFactory(), m2l_use_fft=case.m2l_use_fft) @@ -342,12 +342,12 @@ def test_toy_p2e2e2p(actx_factory: ArrayContextFactory, case): errors = [] src_pot = t.PointSources(ctx, src, weights=np.array([1.])) - pot_actual = src_pot.eval(tgt).item() + pot_actual = src_pot.eval(actx, tgt).item() for order in ORDERS_P2E2E2P: - expn = case.expansion1(src_pot, case.center1, order=order) - expn2 = case.expansion2(expn, case.center2, order=order) - pot_p2e2e2p = expn2.eval(tgt).item() + expn = case.expansion1(actx, src_pot, case.center1, order=order) + expn2 = case.expansion2(actx, expn, case.center2, order=order) + pot_p2e2e2p = expn2.eval(actx, tgt).item() errors.append(np.abs(pot_actual - pot_p2e2e2p)) conv_factor = approx_convergence_factor(1 + np.array(ORDERS_P2E2E2P), errors) diff --git a/sumpy/test/test_qbx.py b/sumpy/test/test_qbx.py index 4e9d8e715..7d7a6e6a7 100644 --- a/sumpy/test/test_qbx.py +++ b/sumpy/test/test_qbx.py @@ -67,7 +67,7 @@ def test_direct_qbx_vs_eigval( from sumpy.qbx import LayerPotential - lpot = LayerPotential(actx.context, + lpot = LayerPotential( expansion=expn_class(lknl, order), target_kernels=(lknl,), source_kernels=(lknl,)) @@ -98,13 +98,14 @@ def test_direct_qbx_vs_eigval( expansion_radii = actx.from_numpy(radius * np.ones(n)) strengths = (actx.from_numpy(sigma * h),) - _evt, (result_qbx,) = lpot( - actx.queue, + result_qbx, = lpot( + actx, targets, sources, centers, strengths, expansion_radii=expansion_radii) result_qbx = actx.to_numpy(result_qbx) - eocrec.add_data_point(h, np.max(np.abs(result_ref - result_qbx))) + error = np.linalg.norm(result_ref - result_qbx, np.inf) + eocrec.add_data_point(h, error) logger.info("eoc:\n%s", eocrec) @@ -137,10 +138,14 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( from sumpy.qbx import LayerPotential - lpot_dx = LayerPotential(actx.context, expansion=expn_class(lknl, order), - target_kernels=(AxisTargetDerivative(0, lknl),), source_kernels=(lknl,)) - lpot_dy = LayerPotential(actx.context, expansion=expn_class(lknl, order), - target_kernels=(AxisTargetDerivative(1, lknl),), source_kernels=(lknl,)) + lpot_dx = LayerPotential( + expansion=expn_class(lknl, order), + target_kernels=(AxisTargetDerivative(0, lknl),), + source_kernels=(lknl,)) + lpot_dy = LayerPotential( + expansion=expn_class(lknl, order), + target_kernels=(AxisTargetDerivative(1, lknl),), + source_kernels=(lknl,)) mode_nr = 15 @@ -169,12 +174,12 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( expansion_radii = actx.from_numpy(radius * np.ones(n)) strengths = (actx.from_numpy(sigma * h),) - _evt, (result_qbx_dx,) = lpot_dx( - actx.queue, + result_qbx_dx, = lpot_dx( + actx, targets, sources, centers, strengths, expansion_radii=expansion_radii) - _evt, (result_qbx_dy,) = lpot_dy( - actx.queue, + result_qbx_dy, = lpot_dy( + actx, targets, sources, centers, strengths, expansion_radii=expansion_radii) @@ -184,7 +189,8 @@ def test_direct_qbx_vs_eigval_with_tgt_deriv( normals = unit_circle result_qbx = normals[0] * result_qbx_dx + normals[1] * result_qbx_dy - eocrec.add_data_point(h, np.max(np.abs(result_ref - result_qbx))) + error = np.linalg.norm(result_ref - result_qbx, np.inf) + eocrec.add_data_point(h, error) if expn_class is not LineTaylorLocalExpansion: logger.info("eoc:\n%s", eocrec) diff --git a/sumpy/test/test_target_deriv.py b/sumpy/test/test_target_deriv.py index cff0b69d8..dc03c4318 100644 --- a/sumpy/test/test_target_deriv.py +++ b/sumpy/test/test_target_deriv.py @@ -75,13 +75,11 @@ def test_lpot_dx_jump_relation_convergence( from sumpy.qbx import LayerPotential expansion = LineTaylorLocalExpansion(knl, qbx_order) lplot_dx = LayerPotential( - actx.context, expansion=expansion, target_kernels=(AxisTargetDerivative(0, knl),), source_kernels=(knl,) ) lplot_dy = LayerPotential( - actx.context, expansion=expansion, target_kernels=(AxisTargetDerivative(1, knl),), source_kernels=(knl,) @@ -96,34 +94,35 @@ def test_lpot_dx_jump_relation_convergence( weights_nodes = actx.from_numpy(weights_nodes_h) expansion_radii_h = 4 * target_geo.area_elements / nsources + expansion_radii = actx.from_numpy(expansion_radii_h) centers_in = actx.from_numpy( targets_h - target_geo.normals * expansion_radii_h) centers_out = actx.from_numpy( targets_h + target_geo.normals * expansion_radii_h) strengths = (weights_nodes,) - _, (eval_in_dx,) = lplot_dx( - actx.queue, + (eval_in_dx,) = lplot_dx( + actx, targets, sources, centers_in, strengths, - expansion_radii=expansion_radii_h + expansion_radii=expansion_radii ) - _, (eval_in_dy,) = lplot_dy( - actx.queue, + (eval_in_dy,) = lplot_dy( + actx, targets, sources, centers_in, strengths, - expansion_radii=expansion_radii_h + expansion_radii=expansion_radii ) - _, (eval_out_dx,) = lplot_dx( - actx.queue, + (eval_out_dx,) = lplot_dx( + actx, targets, sources, centers_out, strengths, - expansion_radii=expansion_radii_h + expansion_radii=expansion_radii ) - _, (eval_out_dy,) = lplot_dy( - actx.queue, + (eval_out_dy,) = lplot_dy( + actx, targets, sources, centers_out, strengths, - expansion_radii=expansion_radii_h + expansion_radii=expansion_radii ) eval_in_dx = actx.to_numpy(eval_in_dx) diff --git a/sumpy/test/test_tools.py b/sumpy/test/test_tools.py index 89ec231d9..9ba35f1ea 100644 --- a/sumpy/test/test_tools.py +++ b/sumpy/test/test_tools.py @@ -98,7 +98,7 @@ def test_fft(actx_factory: ArrayContextFactory, size: int): n_batch_dims=len(inp.shape) - 1, inverse=False, complex_dtype=inp.dtype.type) - _evt, (out_dev,) = fft_func(actx.queue, y=inp_dev) + out_dev = actx.call_loopy(fft_func, y=inp_dev)["x"] assert np.allclose(actx.to_numpy(out_dev), out) diff --git a/sumpy/tools.py b/sumpy/tools.py index 036b745cb..25dc4bdc4 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -38,13 +38,13 @@ import numpy as np import loopy as lp -import pytools.obj_array as obj_array from pymbolic.mapper.dependency import DependencyMapper from pyopencl.characterize import get_pocl_version from pytools import memoize_method from pytools.tag import Tag, tag_dataclass import sumpy.symbolic as sym +from sumpy.array_context import PyOpenCLArrayContext, make_loopy_program if TYPE_CHECKING: @@ -53,7 +53,7 @@ from optype.numpy import Array2D import pyopencl - import pyopencl as cl + from arraycontext import ArrayContext from pymbolic.primitives import Variable from pymbolic.typing import Expression @@ -70,8 +70,6 @@ .. autofunction:: to_complex_dtype .. autofunction:: is_obj_array_like -.. autofunction:: vector_to_device -.. autofunction:: vector_from_device .. autoclass:: OrderedSet Multi-index Helpers @@ -232,27 +230,6 @@ def build_matrix(op, dtype=None, shape=None): return mat -def vector_to_device(queue, vec): - from pyopencl.array import to_device - - def to_dev(ary): - return to_device(queue, ary) - - return obj_array.vectorize(to_dev, vec) - - -def vector_from_device(queue, vec): - def from_dev(ary): - from numbers import Number - if isinstance(ary, np.number | Number): - # zero, most likely - return ary - - return ary.get(queue=queue) - - return obj_array.vectorize(from_dev, vec) - - def _merge_kernel_arguments( dictionary: dict[str, KernelArgument], arg: KernelArgument): @@ -306,13 +283,12 @@ class KernelComputation(ABC): .. automethod:: get_kernel """ - def __init__(self, ctx: cl.Context, - target_kernels: Sequence[Kernel], - source_kernels: Sequence[Kernel], - strength_usage: Sequence[int] | None = None, - value_dtypes: Sequence[numpy.dtype[Any]] | numpy.dtype[Any] | None = None, - name: str | None = None, - device: Any | None = None) -> None: + def __init__(self, + target_kernels: list[Kernel], + source_kernels: list[Kernel], + strength_usage: list[int] | None = None, + value_dtypes: list[numpy.dtype[Any]] | None = None, + name: str | None = None) -> None: """ :arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances, with :class:`sumpy.kernel.AxisTargetDerivative` as @@ -353,20 +329,18 @@ def __init__(self, ctx: cl.Context, # }}} - if device is None: - device = ctx.devices[0] - - self.context: cl.Context = ctx - self.device: cl.Device = device - - self.source_kernels: Sequence[Kernel] = tuple(source_kernels) - self.target_kernels: Sequence[Kernel] = tuple(target_kernels) - self.value_dtypes: Sequence[np.dtype[Any]] = value_dtypes - self.strength_usage: Sequence[int] = strength_usage - self.strength_count: int = strength_count + self.source_kernels = tuple(source_kernels) + self.target_kernels = tuple(target_kernels) + self.value_dtypes = value_dtypes + self.strength_usage = strength_usage + self.strength_count = strength_count self.name = name or self.default_name + @property + def nresults(self): + return len(self.target_kernels) + @property @abstractmethod def default_name(self) -> str: @@ -464,7 +438,6 @@ def __eq__(self, other): class KernelCacheMixin(ABC): - context: cl.Context name: str @abstractmethod @@ -472,15 +445,15 @@ def get_cache_key(self) -> tuple[Hashable, ...]: ... @abstractmethod - def get_kernel(self) -> lp.TranslationUnit: + def get_kernel(self, **kwargs: Any) -> lp.TranslationUnit: ... @abstractmethod - def get_optimized_kernel(self) -> lp.TranslationUnit: + def get_optimized_kernel(self, **kwargs: Any) -> lp.TranslationUnit: ... @memoize_method - def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: + def get_cached_kernel(self, **kwargs) -> lp.TranslationUnit: from sumpy import CACHING_ENABLED, NO_CACHE_KERNELS, OPT_ENABLED, code_cache if CACHING_ENABLED and not ( @@ -498,7 +471,7 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: try: result = code_cache[cache_key] logger.debug("%s: kernel cache hit [key=%s]", self.name, cache_key) - return result.executor(self.context) + return result except KeyError: pass @@ -519,7 +492,7 @@ def get_cached_kernel_executor(self, **kwargs) -> lp.ExecutorBase: NO_CACHE_KERNELS and self.name in NO_CACHE_KERNELS): code_cache.store_if_not_present(cache_key, knl) - return knl.executor(self.context) + return knl @staticmethod def _allow_redundant_execution_of_knl_scaling( @@ -928,12 +901,11 @@ def loopy_fft( if name is None: name = f"ifft_{n}" if inverse else f"fft_{n}" - knl = lp.make_kernel( + knl = make_loopy_program( domains, insns, kernel_data=kernel_data, name=name, fixed_parameters=fixed_parameters, - lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, index_dtype=index_dtype, ) @@ -1001,17 +973,18 @@ def _get_fft_backend(queue: pyopencl.CommandQueue) -> FFTBackend: def get_opencl_fft_app( - queue: pyopencl.CommandQueue, + actx: ArrayContext, shape: tuple[int, ...], dtype: numpy.dtype[Any], inverse: bool) -> Any: """Setup an object for out-of-place FFT on with given shape and dtype on given queue. """ + assert isinstance(actx, PyOpenCLArrayContext) assert dtype.type in (np.float32, np.float64, np.complex64, np.complex128) - backend = _get_fft_backend(queue) + backend = _get_fft_backend(actx.queue) if backend == FFTBackend.loopy: return loopy_fft( @@ -1021,15 +994,17 @@ def get_opencl_fft_app( complex_dtype=dtype.type), backend elif backend == FFTBackend.pyvkfft: from pyvkfft.opencl import VkFFTApp - app = VkFFTApp(shape=shape, dtype=dtype, queue=queue, ndim=1, inplace=False) + app = VkFFTApp( + shape=shape, dtype=dtype, # pyright: ignore[reportArgumentType] + queue=actx.queue, ndim=1, inplace=False) return app, backend else: raise RuntimeError(f"Unsupported FFT backend {backend}") def run_opencl_fft( + actx: ArrayContext, fft_app: tuple[Any, FFTBackend], - queue: pyopencl.CommandQueue, input_vec: Any, inverse: bool = False, wait_for: list[pyopencl.Event] | None = None @@ -1039,18 +1014,20 @@ def run_opencl_fft( vector. Only supports in-order queues. """ + assert isinstance(actx, PyOpenCLArrayContext) + app, backend = fft_app if backend == FFTBackend.loopy: - evt, (output_vec,) = app(queue, y=input_vec, wait_for=wait_for) - return (evt, output_vec) + evt, output_vec = app(actx.queue, y=input_vec, wait_for=wait_for) + return (evt, output_vec["x"]) elif backend == FFTBackend.pyvkfft: if wait_for is None: wait_for = [] import pyopencl as cl - import pyopencl.array as cla + queue = actx.queue if queue.device.platform.name == "NVIDIA CUDA": # NVIDIA OpenCL gives wrong event profile values with wait_for # Not passing wait_for will wait for all events queued before @@ -1066,7 +1043,8 @@ def run_opencl_fft( if app.inplace: raise RuntimeError("inplace fft is not supported") else: - output_vec = cla.empty_like(input_vec, queue) + # FIXME: All very imperative. FFT functionality should move into the actx? + output_vec = actx.np.empty_like(input_vec) # pyright: ignore[reportUnknownMemberType, reportAttributeAccessIssue] meth = app.ifft if inverse else app.fft @@ -1094,7 +1072,7 @@ def run_opencl_fft( } -def __getattr__(name): +def __getattr__(name: str): replacement_and_obj = _depr_name_to_replacement_and_obj.get(name) if replacement_and_obj is not None: replacement, obj, year = replacement_and_obj diff --git a/sumpy/toys.py b/sumpy/toys.py index e095a40a4..032b74f34 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -26,9 +26,13 @@ THE SOFTWARE. """ +import logging from functools import partial from numbers import Number -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any + +import numpy as np +from typing_extensions import override import pytools.obj_array as obj_array from pytools import memoize_method @@ -39,7 +43,7 @@ if TYPE_CHECKING: from collections.abc import Mapping, Sequence - import pyopencl + from arraycontext import ArrayContext from sumpy.expansion import ( ExpansionFactoryBase, @@ -50,14 +54,6 @@ from sumpy.kernel import Kernel from sumpy.visualization import FieldPlotter -import logging - -import numpy as np - -import loopy as lp # noqa: F401 -import pyopencl as cl -import pyopencl.array as cl_array - logger = logging.getLogger(__name__) @@ -112,8 +108,6 @@ class ToyContext: .. automethod:: __init__ """ - cl_context: pyopencl.Context - queue: pyopencl.CommandQueue kernel: Kernel no_target_deriv_kernel: Kernel @@ -125,7 +119,6 @@ class ToyContext: extra_source_and_kernel_kwargs: Mapping[str, object] def __init__(self, - cl_context: pyopencl.Context, kernel: Kernel, mpole_expn_class: MultipoleExpansionFactory | None = None, local_expn_class: LocalExpansionFactory | None = None, @@ -133,18 +126,17 @@ def __init__(self, extra_source_kwargs: Mapping[str, object] | None = None, extra_kernel_kwargs: Mapping[str, object] | None = None, m2l_use_fft: bool | None = None): - self.cl_context = cl_context - self.queue = cl.CommandQueue(self.cl_context) self.kernel = kernel - self.no_target_deriv_kernel = TargetTransformationRemover()(kernel) if expansion_factory is None: from sumpy.expansion import DefaultExpansionFactory expansion_factory = DefaultExpansionFactory() + if mpole_expn_class is None: - mpole_expn_class = \ - expansion_factory.get_multipole_expansion_class(kernel) + mpole_expn_class = ( + expansion_factory.get_multipole_expansion_class(kernel)) + if local_expn_class is None: from sumpy.expansion.m2l import ( FFTM2LTranslationClassFactory, @@ -185,40 +177,40 @@ def __init__(self, @memoize_method def get_p2p(self): from sumpy.p2p import P2P - return P2P(self.cl_context, (self.kernel,), exclude_self=False) + return P2P((self.kernel,), exclude_self=False) @memoize_method def get_p2m(self, order: int): from sumpy import P2EFromSingleBox - return P2EFromSingleBox(self.cl_context, + return P2EFromSingleBox( self.mpole_expn_class(self.no_target_deriv_kernel, order), kernels=(self.kernel,)) @memoize_method def get_p2l(self, order: int): from sumpy import P2EFromSingleBox - return P2EFromSingleBox(self.cl_context, + return P2EFromSingleBox( self.local_expn_class(self.no_target_deriv_kernel, order), kernels=(self.kernel,)) @memoize_method def get_m2p(self, order: int): from sumpy import E2PFromSingleBox - return E2PFromSingleBox(self.cl_context, + return E2PFromSingleBox( self.mpole_expn_class(self.no_target_deriv_kernel, order), (self.kernel,)) @memoize_method def get_l2p(self, order: int): from sumpy import E2PFromSingleBox - return E2PFromSingleBox(self.cl_context, + return E2PFromSingleBox( self.local_expn_class(self.no_target_deriv_kernel, order), (self.kernel,)) @memoize_method def get_m2m(self, from_order: int, to_order: int): from sumpy import E2EFromCSR - return E2EFromCSR(self.cl_context, + return E2EFromCSR( self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.mpole_expn_class(self.no_target_deriv_kernel, to_order)) @@ -239,7 +231,7 @@ def get_m2l(self, from_order: int, to_order: int): m2l_class = M2LUsingTranslationClassesDependentData else: m2l_class = E2EFromCSR - return m2l_class(self.cl_context, + return m2l_class( self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @@ -248,7 +240,7 @@ def get_m2l_translation_class_dependent_data_kernel(self, from_order: int, to_order: int): from sumpy import M2LGenerateTranslationClassesDependentData - return M2LGenerateTranslationClassesDependentData(self.cl_context, + return M2LGenerateTranslationClassesDependentData( self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @@ -261,21 +253,21 @@ def get_m2l_expansion_size(self, from_order: int, to_order: int): @memoize_method def get_m2l_preprocess_mpole_kernel(self, from_order: int, to_order: int): from sumpy import M2LPreprocessMultipole - return M2LPreprocessMultipole(self.cl_context, + return M2LPreprocessMultipole( self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method def get_m2l_postprocess_local_kernel(self, from_order: int, to_order: int): from sumpy import M2LPostprocessLocal - return M2LPostprocessLocal(self.cl_context, + return M2LPostprocessLocal( self.mpole_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @memoize_method def get_l2l(self, from_order: int, to_order: int): from sumpy import E2EFromCSR - return E2EFromCSR(self.cl_context, + return E2EFromCSR( self.local_expn_class(self.no_target_deriv_kernel, from_order), self.local_expn_class(self.no_target_deriv_kernel, to_order)) @@ -284,59 +276,56 @@ def get_l2l(self, from_order: int, to_order: int): # {{{ helpers -def _p2e(psource, center, rscale, order: int, p2e, expn_class, expn_kwargs): +def _p2e(actx, psource, center, rscale, order: int, p2e, expn_class, expn_kwargs): toy_ctx = psource.toy_ctx - queue = toy_ctx.queue - source_boxes = cl_array.to_device( - queue, np.array([0], dtype=np.int32)) - box_source_starts = cl_array.to_device( - queue, np.array([0], dtype=np.int32)) - box_source_counts_nonchild = cl_array.to_device( - queue, np.array([psource.points.shape[-1]], dtype=np.int32)) + source_boxes = actx.from_numpy( + np.array([0], dtype=np.int32)) + box_source_starts = actx.from_numpy( + np.array([0], dtype=np.int32)) + box_source_counts_nonchild = actx.from_numpy( + np.array([psource.points.shape[-1]], dtype=np.int32)) center = np.asarray(center) - centers = cl_array.to_device( - queue, + centers = actx.from_numpy( np.array(center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) - _evt, (coeffs,) = p2e(toy_ctx.queue, + coeffs = p2e( + actx, source_boxes=source_boxes, box_source_starts=box_source_starts, box_source_counts_nonchild=box_source_counts_nonchild, centers=centers, - sources=cl_array.to_device(queue, psource.points), - strengths=(cl_array.to_device(queue, psource.weights),), + sources=actx.from_numpy(psource.points), + strengths=(actx.from_numpy(psource.weights),), rscale=rscale, nboxes=1, tgt_base_ibox=0, **toy_ctx.extra_source_and_kernel_kwargs) - return expn_class(toy_ctx, center, rscale, order, coeffs[0].get(queue), + return expn_class( + toy_ctx, center, rscale, order, + actx.to_numpy(coeffs[0]), derived_from=psource, **expn_kwargs) -def _e2p(psource, targets, e2p): +def _e2p(actx, psource, targets, e2p): toy_ctx = psource.toy_ctx - queue = toy_ctx.queue ntargets = targets.shape[-1] - boxes = cl_array.to_device( - queue, np.array([0], dtype=np.int32)) - box_target_starts = cl_array.to_device( - queue, np.array([0], dtype=np.int32)) - box_target_counts_nonchild = cl_array.to_device( - queue, np.array([ntargets], dtype=np.int32)) - - centers = cl_array.to_device( - queue, + boxes = actx.from_numpy( + np.array([0], dtype=np.int32)) + box_target_starts = actx.from_numpy( + np.array([0], dtype=np.int32)) + box_target_counts_nonchild = actx.from_numpy( + np.array([ntargets], dtype=np.int32)) + + centers = actx.from_numpy( np.array(psource.center, dtype=np.float64).reshape(toy_ctx.kernel.dim, 1)) - from sumpy.tools import vector_to_device - - coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) - _evt, (pot,) = e2p( - toy_ctx.queue, + coeffs = actx.from_numpy(np.array([psource.coeffs])) + pot, = e2p( + actx, src_expansions=coeffs, src_base_ibox=0, target_boxes=boxes, @@ -344,26 +333,25 @@ def _e2p(psource, targets, e2p): box_target_counts_nonchild=box_target_counts_nonchild, centers=centers, rscale=psource.rscale, - targets=vector_to_device(queue, obj_array.new_1d(targets)), + targets=actx.from_numpy(obj_array.new_1d(targets)), **toy_ctx.extra_kernel_kwargs) - return pot.get(queue) + return actx.to_numpy(pot) -def _e2e(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwargs, +def _e2e(actx: ArrayContext, + psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwargs, extra_kernel_kwargs): toy_ctx = psource.toy_ctx - queue = toy_ctx.queue - target_boxes = cl_array.to_device( - queue, np.array([1], dtype=np.int32)) - src_box_starts = cl_array.to_device( - queue, np.array([0, 1], dtype=np.int32)) - src_box_lists = cl_array.to_device( - queue, np.array([0], dtype=np.int32)) + target_boxes = actx.from_numpy( + np.array([1], dtype=np.int32)) + src_box_starts = actx.from_numpy( + np.array([0, 1], dtype=np.int32)) + src_box_lists = actx.from_numpy( + np.array([0], dtype=np.int32)) - centers = cl_array.to_device( - queue, + centers = actx.from_numpy( np.array( [ # box 0: source @@ -375,9 +363,9 @@ def _e2e(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa dtype=np.float64).T.copy() ) - coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) + coeffs = actx.from_numpy(np.array([psource.coeffs])) args = { - "queue": toy_ctx.queue, + "actx": actx, "src_expansions": coeffs, "src_base_ibox": 0, "tgt_base_ibox": 0, @@ -392,20 +380,19 @@ def _e2e(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa **toy_ctx.extra_kernel_kwargs, } - _evt, (to_coeffs,) = e2e(**args) - + to_coeffs = e2e(**args) return expn_class( - toy_ctx, to_center, to_rscale, to_order, to_coeffs[1].get(queue), + toy_ctx, to_center, to_rscale, to_order, + actx.to_numpy(to_coeffs[1]), derived_from=psource, **expn_kwargs) -def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwargs, +def _m2l(actx: ArrayContext, + psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, translation_classes_kwargs): toy_ctx = psource.toy_ctx - queue = toy_ctx.queue - - coeffs = cl_array.to_device(queue, np.array([psource.coeffs])) + coeffs = actx.from_numpy(np.array([psource.coeffs])) m2l_use_translation_classes_dependent_data = \ toy_ctx.use_translation_classes_dependent_data() @@ -416,36 +403,37 @@ def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa expn_size = translation_classes_kwargs["m2l_expn_size"] # Preprocess the mpole expansion - preprocessed_src_expansions = cl_array.zeros(queue, (1, expn_size), - dtype=np.complex128) - evt, _ = preprocess_kernel(queue, + preprocessed_src_expansions = actx.np.zeros((1, expn_size), dtype=np.complex128) + preprocess_kernel( + actx, src_expansions=coeffs, preprocessed_src_expansions=preprocessed_src_expansions, src_rscale=np.float64(psource.rscale), **toy_ctx.extra_kernel_kwargs) - from sumpy.tools import get_native_event, get_opencl_fft_app, run_opencl_fft + from sumpy.tools import get_opencl_fft_app, run_opencl_fft if toy_ctx.use_fft: - fft_app = get_opencl_fft_app(queue, (1, expn_size,), + + fft_app = get_opencl_fft_app(actx, (1, expn_size,), dtype=preprocessed_src_expansions.dtype, inverse=False) - ifft_app = get_opencl_fft_app(queue, (1, expn_size,), + ifft_app = get_opencl_fft_app(actx, (1, expn_size,), dtype=preprocessed_src_expansions.dtype, inverse=True) - evt, preprocessed_src_expansions = run_opencl_fft(fft_app, queue, - preprocessed_src_expansions, inverse=False, wait_for=[evt]) + _evt, preprocessed_src_expansions = run_opencl_fft(actx, fft_app, + preprocessed_src_expansions, inverse=False) # Compute translation classes data - m2l_translation_classes_lists = cl_array.to_device(queue, - np.array([0], dtype=np.int32)) + m2l_translation_classes_lists = ( + actx.from_numpy(np.array([0], dtype=np.int32))) dist = np.array(to_center - psource.center, dtype=np.float64) dim = toy_ctx.kernel.dim - m2l_translation_vectors = cl_array.to_device(queue, dist.reshape(dim, 1)) - m2l_translation_classes_dependent_data = cl_array.zeros(queue, - (1, expn_size), dtype=np.complex128) + m2l_translation_vectors = actx.from_numpy(dist.reshape(dim, 1)) + m2l_translation_classes_dependent_data = ( + actx.np.zeros((1, expn_size), dtype=np.complex128)) - evt, _ = data_kernel( - queue, + data_kernel( + actx, src_rscale=np.float64(psource.rscale), ntranslation_classes=1, translation_classes_level_start=0, @@ -453,15 +441,15 @@ def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa m2l_translation_classes_dependent_data=( m2l_translation_classes_dependent_data), ntranslation_vectors=1, - wait_for=[get_native_event(evt)], **toy_ctx.extra_kernel_kwargs) if toy_ctx.use_fft: - evt, m2l_translation_classes_dependent_data = run_opencl_fft(fft_app, - queue, m2l_translation_classes_dependent_data, inverse=False, - wait_for=[evt]) + _evt, m2l_translation_classes_dependent_data = run_opencl_fft( + actx, fft_app, + m2l_translation_classes_dependent_data, + inverse=False) - ret = _e2e(psource, to_center, to_rscale, to_order, + ret = _e2e(actx, psource, to_center, to_rscale, to_order, e2e, expn_class, expn_kwargs, { "src_expansions": preprocessed_src_expansions, @@ -473,28 +461,32 @@ def _m2l(psource, to_center, to_rscale, to_order: int, e2e, expn_class, expn_kwa ) # Postprocess the local expansion - local_before = cl_array.to_device(queue, np.array([ret.coeffs])) - to_coeffs = cl_array.zeros(queue, (1, len(data_kernel.tgt_expansion)), - dtype=coeffs.dtype) + local_before = actx.from_numpy(np.array([ret.coeffs])) + to_coeffs = actx.np.zeros((1, len(data_kernel.tgt_expansion)), + dtype=coeffs.dtype) if toy_ctx.use_fft: - evt, local_before = run_opencl_fft(ifft_app, queue, - local_before, inverse=True, wait_for=[get_native_event(evt)]) + _evt, local_before = run_opencl_fft( + actx, ifft_app, + local_before, inverse=True) - evt, _ = postprocess_kernel(queue=queue, + postprocess_kernel( + actx, tgt_expansions_before_postprocessing=local_before, tgt_expansions=to_coeffs, src_rscale=np.float64(psource.rscale), tgt_rscale=np.float64(to_rscale), - wait_for=[get_native_event(evt)], **toy_ctx.extra_kernel_kwargs) return expn_class( - toy_ctx, to_center, to_rscale, to_order, to_coeffs.get(queue)[0], + toy_ctx, to_center, to_rscale, to_order, + actx.to_numpy(to_coeffs)[0], derived_from=psource, **expn_kwargs) else: - ret = _e2e(psource, to_center, to_rscale, to_order, e2e, expn_class, - expn_kwargs, {}) + ret = _e2e( + actx, + psource, to_center, to_rscale, to_order, e2e, expn_class, + expn_kwargs, {}) return ret @@ -526,7 +518,7 @@ class PotentialSource: def __init__(self, toy_ctx: ToyContext): self.toy_ctx = toy_ctx - def eval(self, targets: np.ndarray) -> np.ndarray: + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: """ :param targets: An array of shape ``(dim, ntargets)``. :returns: an array of shape ``(ntargets,)``. @@ -536,8 +528,7 @@ def eval(self, targets: np.ndarray) -> np.ndarray: def __neg__(self) -> PotentialSource: return -1*self - def __add__(self, other: Number_ish | PotentialSource - ) -> PotentialSource: + def __add__(self, other: Number_ish | PotentialSource) -> PotentialSource: if isinstance(other, Number | np.number): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -547,19 +538,15 @@ def __add__(self, other: Number_ish | PotentialSource __radd__ = __add__ - def __sub__(self, - other: Number_ish | PotentialSource) -> PotentialSource: + def __sub__(self, other: Number_ish | PotentialSource) -> PotentialSource: return self.__add__(-other) - # FIXME: mypy says " Forward operator "__sub__" is not callable" - # I don't know what it means. -AK, 2024-07-18 def __rsub__(self, # type:ignore[misc] other: Number_ish | PotentialSource - ) -> PotentialSource: + ) -> PotentialSource: return (-self).__add__(other) - def __mul__(self, - other: Number_ish | PotentialSource) -> PotentialSource: + def __mul__(self, other: Number_ish | PotentialSource) -> PotentialSource: if isinstance(other, Number | np.number): other = ConstantPotential(self.toy_ctx, other) elif not isinstance(other, PotentialSource): @@ -581,7 +568,7 @@ def __init__(self, toy_ctx: ToyContext, value): super().__init__(toy_ctx) self.value = np.array(value) - def eval(self, targets: np.ndarray) -> np.ndarray: + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: pot = np.empty(targets.shape[-1], dtype=self.value.dtype) pot.fill(self.value) return pot @@ -595,13 +582,15 @@ class OneOnBallPotential(PotentialSource): .. automethod:: __init__ """ + def __init__(self, toy_ctx: ToyContext, center: np.ndarray, radius: float) -> None: super().__init__(toy_ctx) self.center = np.asarray(center) self.radius = radius - def eval(self, targets: np.ndarray) -> np.ndarray: + @override + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: dist_vec = targets - self.center[:, np.newaxis] return (np.sum(dist_vec**2, axis=0) < self.radius**2).astype(np.float64) @@ -612,6 +601,7 @@ class HalfspaceOnePotential(PotentialSource): .. automethod:: __init__ """ + def __init__(self, toy_ctx: ToyContext, center: np.ndarray, axis: int, side: int = 1) -> None: super().__init__(toy_ctx) @@ -619,7 +609,7 @@ def __init__(self, toy_ctx: ToyContext, center: np.ndarray, self.axis = axis self.side = side - def eval(self, targets: np.ndarray) -> np.ndarray: + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: return ( (self.side*(targets[self.axis] - self.center[self.axis])) >= 0 ).astype(np.float64) @@ -645,16 +635,16 @@ def __init__(self, self.weights = weights self._center = center - def eval(self, targets: np.ndarray) -> np.ndarray: - queue = self.toy_ctx.queue - _evt, (potential,) = self.toy_ctx.get_p2p()( - queue, - cl_array.to_device(queue, targets), - cl_array.to_device(queue, self.points), - [cl_array.to_device(queue, self.weights)], + @override + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: + potential, = self.toy_ctx.get_p2p()( + actx, + actx.from_numpy(targets), + actx.from_numpy(self.points), + [actx.from_numpy(self.weights)], **self.toy_ctx.extra_source_and_kernel_kwargs) - return cast("cl_array.Array", potential).get(queue) + return actx.to_numpy(potential) @property def center(self): @@ -680,6 +670,7 @@ class ExpansionPotentialSource(PotentialSource): .. automethod:: __init__ """ + def __init__(self, toy_ctx, center, rscale, order: int, coeffs, derived_from, radius=None, expn_style=None, text_kwargs=None): super().__init__(toy_ctx) @@ -704,8 +695,8 @@ class MultipoleExpansion(ExpansionPotentialSource): Inherits from :class:`ExpansionPotentialSource`. """ - def eval(self, targets: np.ndarray) -> np.ndarray: - return _e2p(self, targets, self.toy_ctx.get_m2p(self.order)) + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: + return _e2p(actx, self, targets, self.toy_ctx.get_m2p(self.order)) class LocalExpansion(ExpansionPotentialSource): @@ -713,8 +704,8 @@ class LocalExpansion(ExpansionPotentialSource): Inherits from :class:`ExpansionPotentialSource`. """ - def eval(self, targets: np.ndarray) -> np.ndarray: - return _e2p(self, targets, self.toy_ctx.get_l2p(self.order)) + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: + return _e2p(actx, self, targets, self.toy_ctx.get_l2p(self.order)) class PotentialExpressionNode(PotentialSource): @@ -747,10 +738,11 @@ class Sum(PotentialExpressionNode): Inherits from :class:`PotentialExpressionNode`. """ - def eval(self, targets: np.ndarray) -> np.ndarray: + @override + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: result = np.zeros(targets.shape[1]) for psource in self.psources: - result = result + psource.eval(targets) + result = result + psource.eval(actx, targets) return result @@ -760,31 +752,36 @@ class Product(PotentialExpressionNode): Inherits from :class:`PotentialExpressionNode`. """ - def eval(self, targets: np.ndarray) -> np.ndarray: - result = np.zeros(targets.shape[1]) + @override + def eval(self, actx: ArrayContext, targets: np.ndarray) -> np.ndarray: + result = np.ones(targets.shape[1]) for psource in self.psources: - result = result * psource.eval(targets) + result = result * psource.eval(actx, targets) return result - # }}} -def multipole_expand(psource: PotentialSource, - center: np.ndarray, order: int | None = None, - rscale: float = 1, **expn_kwargs) -> MultipoleExpansion: +def multipole_expand( + actx: ArrayContext, + psource: PotentialSource, + center: np.ndarray, *, + order: int | None = None, + rscale: float = 1, + **expn_kwargs: Any) -> MultipoleExpansion: if isinstance(psource, PointSources): if order is None: raise ValueError("order may not be None") - return _p2e(psource, center, rscale, order, psource.toy_ctx.get_p2m(order), + return _p2e(actx, + psource, center, rscale, order, psource.toy_ctx.get_p2m(order), MultipoleExpansion, expn_kwargs) elif isinstance(psource, MultipoleExpansion): if order is None: order = psource.order - return _e2e(psource, center, rscale, order, + return _e2e(actx, psource, center, rscale, order, psource.toy_ctx.get_m2m(psource.order, order), MultipoleExpansion, expn_kwargs, {}) @@ -793,14 +790,18 @@ def multipole_expand(psource: PotentialSource, def local_expand( + actx: ArrayContext, psource: PotentialSource, - center: np.ndarray, order: int | None = None, rscale: Number_ish = 1, - **expn_kwargs) -> LocalExpansion: + center: np.ndarray, *, + order: int | None = None, + rscale: float = 1, + **expn_kwargs: Any) -> LocalExpansion: if isinstance(psource, PointSources): if order is None: raise ValueError("order may not be None") - return _p2e(psource, center, rscale, order, psource.toy_ctx.get_p2l(order), + return _p2e(actx, + psource, center, rscale, order, psource.toy_ctx.get_p2l(order), LocalExpansion, expn_kwargs) elif isinstance(psource, MultipoleExpansion): @@ -825,7 +826,7 @@ def local_expand( translation_classes_kwargs["m2l_expn_size"] = \ toy_ctx.get_m2l_expansion_size(psource.order, order) - return _m2l(psource, center, rscale, order, + return _m2l(actx, psource, center, rscale, order, toy_ctx.get_m2l(psource.order, order), LocalExpansion, expn_kwargs, translation_classes_kwargs) @@ -834,7 +835,7 @@ def local_expand( if order is None: order = psource.order - return _e2e(psource, center, rscale, order, + return _e2e(actx, psource, center, rscale, order, psource.toy_ctx.get_l2l(psource.order, order), LocalExpansion, expn_kwargs, {}) @@ -842,9 +843,12 @@ def local_expand( raise TypeError(f"do not know how to expand '{type(psource).__name__}'") -def logplot(fp: FieldPlotter, psource: PotentialSource, **kwargs) -> None: +def logplot( + actx: ArrayContext, + fp: FieldPlotter, + psource: PotentialSource, **kwargs) -> None: fp.show_scalar_in_matplotlib( - np.log10(np.abs(psource.eval(fp.points) + 1e-15)), **kwargs) + np.log10(np.abs(psource.eval(actx, fp.points) + 1e-15)), **kwargs) def combine_inner_outer( @@ -897,7 +901,7 @@ def combine_halfspace_and_outer( psource_outer, radius, center) -def l_inf(psource: PotentialSource, radius: float, +def l_inf(actx: ArrayContext, psource: PotentialSource, radius: float, center: np.ndarray | None = None, npoints: int = 100, debug: bool = False) -> np.number: if center is None: @@ -908,7 +912,7 @@ def l_inf(psource: PotentialSource, radius: float, from sumpy.visualization import FieldPlotter fp = FieldPlotter(center, extent=2*radius, npoints=npoints) - z = restr.eval(fp.points) + z = restr.eval(actx, fp.points) if debug: fp.show_scalar_in_matplotlib( From 9b3a28defd362dd0693e121280a085de84f10543 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 18 Aug 2022 10:06:18 +0300 Subject: [PATCH 253/335] feat: longer lived memoize for opencl_fft_app --- sumpy/fmm.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 3d5681fd8..3599995a8 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -46,7 +46,7 @@ from boxtree.tree import Tree import pytools.obj_array as obj_array -from pytools import memoize_method +from pytools import memoize_in, memoize_method from sumpy import ( E2EFromChildren, @@ -240,9 +240,17 @@ def p2p(self): exclude_self=self.exclude_self, strength_usage=self.strength_usage, name="p2p") - @memoize_method - def opencl_fft_app(self, shape, dtype, inverse): - return get_opencl_fft_app(self._setup_actx, shape, dtype, inverse=inverse) + def opencl_fft_app(self, + shape: tuple[int, ...], + dtype: np.dtype[Any], + inverse: bool) -> Any: + @memoize_in(self._setup_actx, ( + SumpyTreeIndependentDataForWrangler.opencl_fft_app, + shape, dtype, inverse)) + def app() -> Any: + return get_opencl_fft_app(self._setup_actx, shape, dtype, inverse=inverse) + + return app() # }}} From 3a0ad4f302a4a765e684d83eca1bc75668a40693 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 9 Jan 2026 10:02:36 +0200 Subject: [PATCH 254/335] fix: add ignore for RUF067 --- pyproject.toml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f3cd75e6f..a0a255c43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,15 +92,16 @@ extend-select = [ "Q", # flake8-quotes "RUF", # ruff "SIM", # flake8-simplify + "TC", # flake8-type-checking "UP", # pyupgrade "W", # pycodestyle - "TC", ] extend-ignore = [ - "C90", # McCabe complexity - "E221", # multiple spaces before operator - "E226", # missing whitespace around arithmetic operator - "E402", # module-level import not at top of file + "C90", # McCabe complexity + "E221", # multiple spaces before operator + "E226", # missing whitespace around arithmetic operator + "E402", # module-level import not at top of file + "RUF067", # non-empty-init-module ] [tool.ruff.lint.flake8-quotes] From d2751537284792c2f0f7ab2e47f6da4b81221f44 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 9 Jan 2026 10:20:48 +0200 Subject: [PATCH 255/335] chore: update baseline --- .basedpyright/baseline.json | 118 +++--------------------------------- 1 file changed, 7 insertions(+), 111 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index bc73d2bb9..b27e09015 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -7135,14 +7135,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7335,14 +7327,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8115,14 +8099,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8688,50 +8664,18 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 43, - "endColumn": 50, + "startColumn": 19, + "endColumn": 86, "lineCount": 1 } }, @@ -8739,31 +8683,7 @@ "code": "reportAny", "range": { "startColumn": 15, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 74, - "endColumn": 81, + "endColumn": 20, "lineCount": 1 } }, @@ -9967,14 +9887,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -14621,14 +14533,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -14637,14 +14541,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { From 0fd75984a447309ee41bf257c748215716fc64a2 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 15 Feb 2026 08:28:20 -0600 Subject: [PATCH 256/335] Ignore irrelevant instances of RUF069 --- sumpy/codegen.py | 2 +- sumpy/kernel.py | 4 ++-- sumpy/test/test_kernels.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index aa8637667..f2c7b70f4 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -600,7 +600,7 @@ def map_constant(self, expr: object, /) -> Expression: complex_dtype = self.complex_dtype if complex_dtype is None: - if complex(np.complex64(expr)) == expr: + if complex(np.complex64(expr)) == expr: # noqa: RUF069 return np.complex64(expr) complex_dtype = np.complex128 diff --git a/sumpy/kernel.py b/sumpy/kernel.py index c7a71f5cc..c3c9981f8 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -770,7 +770,7 @@ def __new__(cls, viscosity_mu: float | str | SpatialConstant = "mu", poisson_ratio: float | str | SpatialConstant = "nu", ) -> ElasticityKernel: - if poisson_ratio == 0.5: + if poisson_ratio == 0.5: # noqa: RUF069 return super().__new__(StokesletKernel) else: return super().__new__(cls) @@ -896,7 +896,7 @@ def __init__(self, if poisson_ratio is None: poisson_ratio = 0.5 - if poisson_ratio != 0.5: + if poisson_ratio != 0.5: # noqa: RUF069 raise ValueError( "'StokesletKernel' must have a Poisson ratio of 0.5: " f"got '{poisson_ratio}'") diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 2167a56a0..54468ffdb 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -695,14 +695,14 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, dvec, tgt_rscale, _fast_version=False) for expr1, expr2 in zip(faster_m2m, slower_m2m, strict=True): - assert float(sym.doit(expr1 - expr2).expand()) == 0.0 + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # noqa: RUF069 faster_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale) slower_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) for expr1, expr2 in zip(faster_l2l, slower_l2l, strict=True): - assert float(sym.doit(expr1 - expr2).expand()) == 0.0 + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # noqa: RUF069 # }}} From a1bf1e2352ae518b8040bfc9cfc6b3f8993b11cd Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 16 Feb 2026 09:32:20 -0600 Subject: [PATCH 257/335] Use FlattenMapper before codegen - Smaller expressions to crunch through - Throws off flop counts --- sumpy/codegen.py | 3 +++ sumpy/version.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index f2c7b70f4..25e829f25 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -36,6 +36,7 @@ import pymbolic.primitives as prim from loopy.kernel.instruction import Assignment, CallInstruction, make_assignment from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper, P +from pymbolic.mapper.flattener import FlattenMapper from pymbolic.typing import ArithmeticExpression, Expression from pytools import memoize_method @@ -753,6 +754,7 @@ def to_loopy_insns( sympy_conv = SympyToPymbolicMapper() pymbolic_assignments = [(name, sympy_conv(expr)) for name, expr in assignments] + flat = FlattenMapper() bdr = BesselDerivativeReplacer() btog = BesselTopOrderGatherer() vcr = VectorComponentRewriter(vector_names) @@ -762,6 +764,7 @@ def to_loopy_insns( cmr = ComplexRewriter(complex_dtype) def cmb_mapper(expr: Expression, /) -> Expression: + expr = flat(expr) expr = bdr(expr) expr = vcr(expr) expr = pwr(expr) diff --git a/sumpy/version.py b/sumpy/version.py index 8c4f151f9..34f17e716 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -41,4 +41,4 @@ def _parse_version(version: str) -> tuple[tuple[int, ...], str]: VERSION, VERSION_STATUS = _parse_version(VERSION_TEXT) _GIT_REVISION = find_module_git_revision(__file__, n_levels_up=1) -KERNEL_VERSION = (*VERSION, _GIT_REVISION, 1) +KERNEL_VERSION = (*VERSION, _GIT_REVISION, 2) From 1033f47ac5b1c7e86938dfc4cebe13ea2fecd113 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 20 Feb 2026 23:06:41 -0600 Subject: [PATCH 258/335] Update config, fix lints for ruff 0.15.2 --- pyproject.toml | 4 ++++ sumpy/__init__.py | 1 - sumpy/codegen.py | 16 +++++++++---- sumpy/distributed.py | 15 +++++------- sumpy/e2e.py | 44 +++++++++++------------------------- sumpy/e2p.py | 21 +++++------------ sumpy/expansion/__init__.py | 6 ++--- sumpy/expansion/m2l.py | 40 +++++++++----------------------- sumpy/fmm.py | 10 ++++---- sumpy/kernel.py | 28 +++++++++++------------ sumpy/p2e.py | 20 +++++----------- sumpy/p2p.py | 12 ++++------ sumpy/point_calculus.py | 3 +-- sumpy/qbx.py | 13 ++++------- sumpy/symbolic.py | 1 - sumpy/test/curve.py | 2 +- sumpy/test/geometries.py | 2 +- sumpy/test/test_fmm.py | 2 +- sumpy/test/test_kernels.py | 2 +- sumpy/test/test_matrixgen.py | 2 +- sumpy/test/test_misc.py | 3 +-- sumpy/tools.py | 9 ++++---- sumpy/toys.py | 3 +-- 23 files changed, 96 insertions(+), 163 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a0a255c43..3233fc0e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,6 +102,8 @@ extend-ignore = [ "E226", # missing whitespace around arithmetic operator "E402", # module-level import not at top of file "RUF067", # non-empty-init-module + "TRY004", + "TRY300", ] [tool.ruff.lint.flake8-quotes] @@ -127,6 +129,8 @@ required-imports = ["from __future__ import annotations"] [tool.ruff.lint.per-file-ignores] "doc/**/*.py" = ["I002"] "examples/**/*.py" = ["I002"] +"sumpy/test/test_*.py" = ["S102"] +"doc/conf.py" = ["S102"] [tool.typos.default] extend-ignore-re = [ diff --git a/sumpy/__init__.py b/sumpy/__init__.py index 3acd93aa1..f2dc45abc 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -114,7 +114,6 @@ def __init__(self, new_flag, new_no_cache_kernels=()): self.new_no_cache_kernels = new_no_cache_kernels def __enter__(self): - global CACHING_ENABLED, NO_CACHE_KERNELS self.previous_flag = CACHING_ENABLED self.previous_kernels = NO_CACHE_KERNELS set_caching_enabled(self.new_flag, self.new_no_cache_kernels) diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 25e829f25..157436273 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -44,7 +44,14 @@ if TYPE_CHECKING: - from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence, Set + from collections.abc import ( + Callable, + Iterable, + Iterator, + Mapping, + Sequence, + Set as AbstractSet, + ) from numpy.typing import DTypeLike @@ -730,10 +737,10 @@ def map_common_subexpression_uncached( def to_loopy_insns( assignments: Iterable[tuple[str, sym.Expr]], - vector_names: Set[str] | None = None, + vector_names: AbstractSet[str] | None = None, pymbolic_expr_maps: Sequence[Callable[[Expression], Expression]] = (), complex_dtype: DTypeLike | None = None, - retain_names: Set[str] | None = None, + retain_names: AbstractSet[str] | None = None, ) -> Sequence[Assignment | CallInstruction]: if vector_names is None: vector_names = frozenset() @@ -771,8 +778,7 @@ def cmb_mapper(expr: Expression, /) -> Expression: expr = ssg(expr) expr = bik(expr) expr = cmr(expr) - expr = btog(expr) - return expr + return btog(expr) def convert_expr(name: str, expr: Expression) -> Expression: logger.debug("generate expression for: %s", name) diff --git a/sumpy/distributed.py b/sumpy/distributed.py index a7a5e1941..b6f6e110a 100644 --- a/sumpy/distributed.py +++ b/sumpy/distributed.py @@ -27,7 +27,7 @@ from boxtree.distributed.calculation import DistributedExpansionWranglerMixin -import pytools.obj_array as obj_array +from pytools import obj_array from sumpy.fmm import SumpyExpansionWrangler @@ -61,23 +61,20 @@ def distribute_source_weights(self, local_src_weight_vecs_host = super().distribute_source_weights( actx, src_weight_vecs_host, src_idx_all_ranks) - local_src_weight_vecs_device = [ + return [ actx.from_numpy(local_src_weight) for local_src_weight in local_src_weight_vecs_host] - return local_src_weight_vecs_device - def gather_potential_results(self, actx: ArrayContext, potentials, tgt_idx_all_ranks): potentials_host_vec = [ actx.to_numpy(potentials_dev) for potentials_dev in potentials ] - gathered_potentials_host_vec = [] - for potentials_host in potentials_host_vec: - gathered_potentials_host_vec.append( - super().gather_potential_results( - actx, potentials_host, tgt_idx_all_ranks)) + gathered_potentials_host_vec = [ + super().gather_potential_results( + actx, potentials_host, tgt_idx_all_ranks) + for potentials_host in potentials_host_vec] if self.is_mpi_root: return obj_array.new_1d([ diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 34b888deb..104452725 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -135,15 +135,15 @@ def get_cache_key(self): return (type(self).__name__, self.src_expansion, self.tgt_expansion) @abstractmethod - def get_kernel(self): + @override + def get_kernel(self) -> lp.TranslationUnit: pass def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") + return lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") - return knl # }}} @@ -259,18 +259,14 @@ def get_kernel(self): loopy_knl = knl.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - loopy_knl = lp.set_options(loopy_knl, + return lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") - return loopy_knl - @override def get_optimized_kernel(self): # FIXME knl = self.get_kernel() - knl = lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") - - return knl + return lp.split_iname(knl, "itgt_box", 64, outer_tag="g.0", inner_tag="l.0") def __call__(self, actx: ArrayContext, **kwargs): """ @@ -511,11 +507,9 @@ def get_kernel(self, result_dtype): def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) - knl = self.tgt_expansion.m2l_translation.optimize_loopy_kernel( + return self.tgt_expansion.m2l_translation.optimize_loopy_kernel( knl, self.tgt_expansion, self.src_expansion) - return knl - def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: @@ -612,22 +606,18 @@ def get_kernel(self, result_dtype): loopy_knl = lp.merge([loopy_knl, translation_classes_data_knl]) loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_data") - loopy_knl = lp.set_options(loopy_knl, + return lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check", # FIXME: Without this, Loopy spends an eternity checking # scattered writes to global variables to see whether barriers # need to be inserted. disable_global_barriers=True) - return loopy_knl - def get_optimized_kernel(self, result_dtype): # FIXME knl = self.get_kernel(result_dtype) knl = lp.tag_inames(knl, "idim*:unr") - knl = lp.tag_inames(knl, {"itr_class": "g.0"}) - - return knl + return lp.tag_inames(knl, {"itr_class": "g.0"}) def __call__(self, actx: ArrayContext, **kwargs): """ @@ -722,9 +712,7 @@ def get_kernel(self, result_dtype): loopy_knl = expn.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.merge([loopy_knl, single_box_preprocess_knl]) - loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_preprocess_inner") - - return loopy_knl + return lp.inline_callable_kernel(loopy_knl, "m2l_preprocess_inner") def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) @@ -822,9 +810,8 @@ def get_kernel(self, result_dtype): loopy_knl = lp.merge([loopy_knl, single_box_postprocess_knl]) loopy_knl = lp.inline_callable_kernel(loopy_knl, "m2l_postprocess_inner") - loopy_knl = lp.set_options(loopy_knl, + return lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") - return loopy_knl def get_optimized_kernel(self, result_dtype): knl = self.get_kernel(result_dtype) @@ -832,8 +819,7 @@ def get_optimized_kernel(self, result_dtype): _, optimizations = self.get_inner_knl_and_optimizations(result_dtype) for optimization in optimizations: knl = optimization(knl) - knl = lp.add_inames_for_unused_hw_axes(knl) - return knl + return lp.add_inames_for_unused_hw_axes(knl) def __call__(self, actx: ArrayContext, **kwargs): """ @@ -943,11 +929,9 @@ def get_kernel(self): loopy_knl = knl.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - loopy_knl = lp.set_options(loopy_knl, + return lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") - return loopy_knl - def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: @@ -1050,11 +1034,9 @@ def get_kernel(self): loopy_knl = knl.prepare_loopy_kernel(loopy_knl) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") - loopy_knl = lp.set_options(loopy_knl, + return lp.set_options(loopy_knl, enforce_variable_access_ordered="no_check") - return loopy_knl - def __call__(self, actx: ArrayContext, **kwargs): """ :arg src_expansions: diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 400d7b44c..c4ad36d8d 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -29,8 +29,8 @@ import numpy as np import loopy as lp -import pytools.obj_array as obj_array from loopy.version import MOST_RECENT_LANGUAGE_VERSION # noqa: F401 +from pytools import obj_array from sumpy.array_context import make_loopy_program from sumpy.tools import KernelCacheMixin, gather_loopy_arguments @@ -101,8 +101,7 @@ def add_loopy_eval_callable( loopy_knl = lp.remove_unused_inames(loopy_knl) for kernel in self.kernels: loopy_knl = kernel.prepare_loopy_kernel(loopy_knl) - loopy_knl = lp.tag_array_axes(loopy_knl, "targets", "sep,C") - return loopy_knl + return lp.tag_array_axes(loopy_knl, "targets", "sep,C") def get_loopy_args(self): return gather_loopy_arguments((self.expansion, *tuple(self.kernels))) @@ -194,20 +193,16 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "iknl*:unr") - loopy_knl = self.add_loopy_eval_callable(loopy_knl) - - return loopy_knl + return self.add_loopy_eval_callable(loopy_knl) def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") - knl = lp.set_options(knl, + return lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl - def __call__(self, actx: ArrayContext, **kwargs): """ :arg expansions: @@ -322,20 +317,16 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "iknl*:unr") loopy_knl = lp.prioritize_loops(loopy_knl, "itgt_box,itgt,isrc_box") loopy_knl = self.add_loopy_eval_callable(loopy_knl) - loopy_knl = lp.tag_array_axes(loopy_knl, "targets", "sep,C") - - return loopy_knl + return lp.tag_array_axes(loopy_knl, "targets", "sep,C") def get_optimized_kernel(self): # FIXME knl = self.get_kernel() knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) knl = lp.add_inames_to_insn(knl, "itgt_box", "id:kernel_scaling") - knl = lp.set_options(knl, + return lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl - def __call__(self, actx: ArrayContext, **kwargs): centers = kwargs.pop("centers") # "1" may be passed for rscale, which won't have its type diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 47087acb6..eee9f8822 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -333,8 +333,7 @@ def _get_mi_hyperplanes(self) -> list[tuple[int, int]]: axis `d`. """ d = self.dim - 1 - hyperplanes = [(d, const) for const in range(self.order + 1)] - return hyperplanes + return [(d, const) for const in range(self.order + 1)] @memoize_method def _split_coeffs_into_hyperplanes( @@ -648,8 +647,7 @@ def mi_key(ident: MultiIndex | DerivativeIdentifier) -> tuple[int, ...]: mi = ident key = [sum(mi)] - for i in range(dim): - key.append(mi[axis_permutation[i]]) + key.extend(mi[axis_permutation[i]] for i in range(dim)) return tuple(key) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 209b4947e..ed42212fa 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -385,11 +385,9 @@ def translate(self, # (FIXME? Though this is just the correctness-checking # fallback for the FFT anyhow) result = matvec_toeplitz_upper_triangular(src_coeff_exprs, derivatives) - result = self.postprocess_local_exprs(tgt_expansion, src_expansion, + return self.postprocess_local_exprs(tgt_expansion, src_expansion, result, src_rscale, tgt_rscale, sac) - return result - @override def translation_classes_dependent_ndata(self, tgt_expansion: LocalExpansionBase, @@ -694,13 +692,11 @@ def postprocess_local_exprs(self, # Filter out the dummy rows and scale them for target rscale_ratio = add_to_sac(sac, tgt_rscale/src_rscale) - result = [ + return [ m2l_result[circulant_matrix_ident_to_index[term]] * rscale_ratio**sum(term) for term in tgt_expansion.get_coefficient_identifiers()] - return result - @override def postprocess_local_nexprs(self, tgt_expansion: LocalExpansionBase, @@ -859,9 +855,7 @@ def translate(self, # Returns a big symbolic sum of matrix entries # (FIXME? Though this is just the correctness-checking # fallback for the FFT anyhow) - result = matvec_toeplitz_upper_triangular(src_coeff_exprs, derivatives) - - return result + return matvec_toeplitz_upper_triangular(src_coeff_exprs, derivatives) @override def loopy_translate(self, @@ -896,7 +890,7 @@ def loopy_translate(self, ), ] - knl = lp.make_function( + return lp.make_function( domains, insns, kernel_data=[ @@ -910,8 +904,6 @@ def loopy_translate(self, lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) - return knl - # }}} VolumeTaylorM2LWithPreprocessedMultipoles @@ -938,8 +930,7 @@ def translate(self, derivatives = translation_classes_dependent_data assert len(src_coeff_exprs) == len(derivatives) - result = [a*b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] - return result + return [a*b for a, b in zip(derivatives, src_coeff_exprs, strict=True)] @override def translation_classes_dependent_data(self, @@ -1007,9 +998,7 @@ def optimize_loopy_kernel(self, knl = lp.split_iname(knl, "icoeff_tgt", 64, inner_iname="inner", inner_tag="l.0", outer_tag="g.1") - knl = lp.tag_inames(knl, {"itgt_box": "g.0"}) - - return knl + return lp.tag_inames(knl, {"itgt_box": "g.0"}) # }}} VolumeTaylorM2LWithFFT @@ -1044,19 +1033,16 @@ def translate(self, sym.sympify(0)) for j, in tgt_expansion.get_coefficient_identifiers()] - translated_coeffs = self.postprocess_local_exprs(tgt_expansion, + return self.postprocess_local_exprs(tgt_expansion, src_expansion, translated_coeffs, src_rscale, tgt_rscale, sac) - return translated_coeffs - @override def translation_classes_dependent_ndata(self, tgt_expansion: LocalExpansionBase, src_expansion: MultipoleExpansionBase, ) -> int: - nexpr = 2 * tgt_expansion.order + 2 * src_expansion.order + 1 - return nexpr + return 2 * tgt_expansion.order + 2 * src_expansion.order + 1 @override def translation_classes_dependent_data(self, @@ -1155,7 +1141,7 @@ def translate(self, assert translation_classes_dependent_data derivatives = translation_classes_dependent_data - translated_coeffs = [ + return [ sum((derivatives[m + j + tgt_expansion.order + src_expansion.order] * src_coeff_exprs[src_expansion.get_storage_index((m,))] for m, in src_expansion.get_coefficient_identifiers()), @@ -1163,8 +1149,6 @@ def translate(self, for j, in tgt_expansion.get_coefficient_identifiers() ] - return translated_coeffs - @override def loopy_translate(self, tgt_expansion: LocalExpansionBase, @@ -1194,7 +1178,7 @@ def loopy_translate(self, expression=tgt_coeffs[icoeff_tgt] + expr), ] - knl = lp.make_function(domains, insns, + return lp.make_function(domains, insns, kernel_data=[ lp.GlobalArg("tgt_coeffs", shape=lp.auto, is_input=True, is_output=True), @@ -1206,7 +1190,6 @@ def loopy_translate(self, lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) - return knl # }}} FourierBesselM2LWithPreprocessedMultipoles @@ -1370,7 +1353,7 @@ def loopy_translation_classes_dependent_data( ) happens_after = frozenset([f"data_{idx}"]) - knl = lp.make_function([], insns, + return lp.make_function([], insns, kernel_data=[ lp.ValueArg("src_rscale", None), lp.GlobalArg("d", None, shape=tgt_expansion.dim), @@ -1382,7 +1365,6 @@ def loopy_translation_classes_dependent_data( lang_version=lp.MOST_RECENT_LANGUAGE_VERSION, ) - return knl # }}} loopy_translation_classes_dependent_data diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 3599995a8..c53c40b8a 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -45,8 +45,7 @@ from boxtree.fmm import ExpansionWranglerInterface, TreeIndependentDataForWrangler from boxtree.tree import Tree -import pytools.obj_array as obj_array -from pytools import memoize_in, memoize_method +from pytools import memoize_in, memoize_method, obj_array from sumpy import ( E2EFromChildren, @@ -394,6 +393,7 @@ def tree_level_start_box_nrs(self): # NOTE: a host version of `level_start_box_nrs` is used repeatedly and # this simply caches it to avoid repeated transfers actx = self.tree_indep._setup_actx + assert self.tree.level_start_box_nrs is not None return actx.to_numpy(self.tree.level_start_box_nrs) def _expansions_level_starts(self, order_to_size: Callable[[int], int]): @@ -496,9 +496,8 @@ def m2l_preproc_mpole_expansions_level_starts(self): def order_to_size(order): mpole_expn = self.tree_indep.multipole_expansion(order) local_expn = self.tree_indep.local_expansion(order) - res = local_expn.m2l_translation.preprocess_multipole_nexprs( + return local_expn.m2l_translation.preprocess_multipole_nexprs( local_expn, mpole_expn) - return res return build_csr_level_starts(self.level_orders, order_to_size, level_starts=self.tree_level_start_box_nrs) @@ -773,8 +772,7 @@ def multipole_to_local_precompute(self): inverse=False, wait_for=None)) result.append(m2l_translation_classes_dependent_data_view) - result = [actx.freeze(arr) for arr in result] - return result + return [actx.freeze(arr) for arr in result] def _add_m2l_precompute_kwargs(self, kwargs_for_m2l, lev): diff --git a/sumpy/kernel.py b/sumpy/kernel.py index c3c9981f8..b9b448a0f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -37,7 +37,7 @@ ) import numpy as np -from typing_extensions import override +from typing_extensions import Self, override import loopy as lp import pymbolic.primitives as prim @@ -434,13 +434,11 @@ def get_expression(self, dist_vec: sym.Matrix) -> sym.Expr: f"kernel dim is '{self.dim}' and dist_vec has length '{len(dist_vec)}'") from sumpy.symbolic import Symbol - expr = expr.xreplace({ + return expr.xreplace({ Symbol(f"d{i}"): dist_vec_i for i, dist_vec_i in enumerate(dist_vec) }) - return expr - @override def get_global_scaling_const(self) -> sym.Expr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols @@ -769,7 +767,7 @@ def __new__(cls, dim: int, icomp: int, jcomp: int, viscosity_mu: float | str | SpatialConstant = "mu", poisson_ratio: float | str | SpatialConstant = "nu", - ) -> ElasticityKernel: + ) -> Self: if poisson_ratio == 0.5: # noqa: RUF069 return super().__new__(StokesletKernel) else: @@ -844,9 +842,9 @@ def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.viscosity_mu) - args: list[KernelArgument] = [] - for v in variables: - args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) + args: list[KernelArgument] = [ + KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) + for v in variables] return [*args, *self.get_source_args()] @@ -856,9 +854,9 @@ def get_source_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.poisson_ratio) - args: list[KernelArgument] = [] - for v in variables: - args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) + args: list[KernelArgument] = [ + KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) + for v in variables] return args @@ -884,7 +882,7 @@ def __new__(cls, jcomp: int, viscosity_mu: float | str | SpatialConstant = "mu", poisson_ratio: float | str | SpatialConstant | None = None, - ) -> StokesletKernel: + ) -> Self: return object.__new__(cls) def __init__(self, @@ -1071,9 +1069,9 @@ def get_args(self) -> Sequence[KernelArgument]: *get_all_variables(self.viscosity_mu), *get_all_variables(self.poisson_ratio)] - args: list[KernelArgument] = [] - for v in variables: - args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) + args: list[KernelArgument] = [ + KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) + for v in variables] return args diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 63d452464..4ae9be98b 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -103,8 +103,7 @@ def add_loopy_form_callable( loopy_knl = lp.remove_unused_inames(loopy_knl) for kernel in self.source_kernels: loopy_knl = kernel.prepare_loopy_kernel(loopy_knl) - loopy_knl = lp.tag_array_axes(loopy_knl, "strengths", "sep,C") - return loopy_knl + return lp.tag_array_axes(loopy_knl, "strengths", "sep,C") def get_loopy_args(self): from sumpy.tools import gather_loopy_source_arguments @@ -124,9 +123,8 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = lp.tag_array_axes(knl, "centers", "sep,C") knl = self._allow_redundant_execution_of_knl_scaling(knl) - knl = lp.set_options(knl, + return lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl def __call__(self, actx: ArrayContext, **kwargs): from sumpy.tools import is_obj_array_like @@ -230,9 +228,7 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") - loopy_knl = self.add_loopy_form_callable(loopy_knl) - - return loopy_knl + return self.add_loopy_form_callable(loopy_knl) def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = super().get_optimized_kernel( @@ -240,8 +236,7 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): centers_is_obj_array=centers_is_obj_array) # FIXME - knl = lp.split_iname(knl, "isrc_box", 16, outer_tag="g.0") - return knl + return lp.split_iname(knl, "isrc_box", 16, outer_tag="g.0") def __call__(self, actx: ArrayContext, **kwargs): """ @@ -361,9 +356,7 @@ def get_kernel(self): loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.tag_inames(loopy_knl, "istrength*:unr") - loopy_knl = self.add_loopy_form_callable(loopy_knl) - - return loopy_knl + return self.add_loopy_form_callable(loopy_knl) def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): knl = super().get_optimized_kernel( @@ -371,8 +364,7 @@ def get_optimized_kernel(self, sources_is_obj_array, centers_is_obj_array): centers_is_obj_array=centers_is_obj_array) # FIXME - knl = lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") - return knl + return lp.split_iname(knl, "itgt_box", 16, outer_tag="g.0") def __call__(self, actx: ArrayContext, **kwargs): """ diff --git a/sumpy/p2p.py b/sumpy/p2p.py index e1ef9078d..7cf2dc757 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -33,8 +33,8 @@ from typing_extensions import override import loopy as lp -import pytools.obj_array as obj_array from arraycontext import PyOpenCLArrayContext +from pytools import obj_array from sumpy.array_context import make_loopy_program from sumpy.tools import KernelCacheMixin, KernelComputation, is_obj_array_like @@ -204,9 +204,8 @@ def get_optimized_kernel(self, *, knl = lp.split_iname(knl, "itgt", 1024, outer_tag="g.0") knl = self._allow_redundant_execution_of_knl_scaling(knl) - knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") + return lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl # }}} @@ -437,11 +436,9 @@ def get_optimized_kernel(self, targets_is_obj_array, sources_is_obj_array): knl = lp.split_iname(knl, "imat", 1024, outer_tag="g.0") knl = self._allow_redundant_execution_of_knl_scaling(knl) - knl = lp.set_options(knl, + return lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl - def __call__(self, actx: ArrayContext, targets: ObjectArray1D[Array] | Array, @@ -799,8 +796,7 @@ def get_optimized_kernel(self, *, "inner", "id:init_* or id:*_scaling or id:src_box_insn_*") knl = lp.add_inames_to_insn(knl, "itgt_box", "id:*_scaling") - knl = lp.set_options(knl, enforce_variable_access_ordered="no_check") - return knl + return lp.set_options(knl, enforce_variable_access_ordered="no_check") def __call__(self, actx: ArrayContext, diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 6af274c6d..2309b2e69 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -27,8 +27,7 @@ import numpy as np import numpy.linalg as la -import pytools.obj_array as obj_array -from pytools import memoize_method +from pytools import memoize_method, obj_array if TYPE_CHECKING: diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 926367a9d..5c7428c9b 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -34,9 +34,8 @@ from typing_extensions import override import loopy as lp -import pytools.obj_array as obj_array from pymbolic import parse -from pytools import memoize_method +from pytools import memoize_method, obj_array import sumpy.symbolic as sym from sumpy.array_context import is_cl_cpu, make_loopy_program @@ -116,12 +115,10 @@ def _expand(self, sac, avec, bvec, rscale, isrc): conv = PymbolicToSympyMapper() strengths = [conv.to_expr(self.get_strength_or_not(isrc, idx)) for idx in range(len(self.source_kernels))] - coefficients = self.expansion.coefficients_from_source_vec( + return self.expansion.coefficients_from_source_vec( self.source_kernels, avec, bvec, rscale=rscale, weights=strengths, sac=sac) - return coefficients - def _evaluate(self, sac, avec, bvec, rscale, expansion_nr, coefficients): from sumpy.expansion.local import LineTaylorLocalExpansion tgt_knl = self.target_kernels[expansion_nr] @@ -242,9 +239,8 @@ def get_optimized_kernel(self, *, "non-CPU targets", stacklevel=1) loopy_knl = lp.split_iname(loopy_knl, itgt_name, 128, outer_tag="g.0") - loopy_knl = self._allow_redundant_execution_of_knl_scaling(loopy_knl) + return self._allow_redundant_execution_of_knl_scaling(loopy_knl) - return loopy_knl # }}} @@ -500,8 +496,7 @@ def get_optimized_kernel(self, loopy_knl = lp.tag_array_axes(loopy_knl, "center", "sep,C") loopy_knl = lp.split_iname(loopy_knl, "imat", 1024, outer_tag="g.0") - loopy_knl = self._allow_redundant_execution_of_knl_scaling(loopy_knl) - return loopy_knl + return self._allow_redundant_execution_of_knl_scaling(loopy_knl) def __call__(self, actx: ArrayContext, targets, sources, centers, expansion_radii, diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 00dd741ae..64a262947 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -344,7 +344,6 @@ def map_subscript(self, expr: prim.Subscript) -> sym.Basic: return Symbol(f"{expr.aggregate.name}{expr.index}") else: self.raise_conversion_error(expr) - raise @override def map_call(self, expr: prim.Call) -> sym.Basic: diff --git a/sumpy/test/curve.py b/sumpy/test/curve.py index c220711f4..7960b4249 100644 --- a/sumpy/test/curve.py +++ b/sumpy/test/curve.py @@ -26,7 +26,7 @@ from typing import TYPE_CHECKING, final import numpy as np -import scipy.fftpack as fftpack +from scipy import fftpack if TYPE_CHECKING: diff --git a/sumpy/test/geometries.py b/sumpy/test/geometries.py index 65b243e15..1687ab6dd 100644 --- a/sumpy/test/geometries.py +++ b/sumpy/test/geometries.py @@ -96,7 +96,7 @@ def make_torus( ]) def diff2d(ary: NDArray[np.floating]): - import scipy.fftpack as fftpack + from scipy import fftpack return np.array([ fftpack.diff(ary[idx]) for idx in np.ndindex(ary.shape[:-1]) diff --git a/sumpy/test/test_fmm.py b/sumpy/test/test_fmm.py index 5f54e3273..45455f726 100644 --- a/sumpy/test/test_fmm.py +++ b/sumpy/test/test_fmm.py @@ -33,12 +33,12 @@ import numpy.linalg as la import pytest -import pytools.obj_array as obj_array from arraycontext import ( ArrayContextFactory, PyOpenCLArrayContext, pytest_generate_tests_for_array_contexts, ) +from pytools import obj_array from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import ( diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 54468ffdb..ae21ef035 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -31,12 +31,12 @@ import numpy.linalg as la import pytest -import pytools.obj_array as obj_array from arraycontext import ( ArrayContextFactory, PyOpenCLArrayContext, pytest_generate_tests_for_array_contexts, ) +from pytools import obj_array from pytools.convergence import PConvergenceVerifier import sumpy.symbolic as sym diff --git a/sumpy/test/test_matrixgen.py b/sumpy/test/test_matrixgen.py index 0bc4406a9..2248f8f8f 100644 --- a/sumpy/test/test_matrixgen.py +++ b/sumpy/test/test_matrixgen.py @@ -30,8 +30,8 @@ import numpy.linalg as la import pytest -import pytools.obj_array as obj_array from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts +from pytools import obj_array from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 41bf03b29..ce85f30b5 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -573,8 +573,7 @@ def is_complex_valued(self) -> bool: @override def get_pde_as_diff_op(self): w = make_identity_diff_op(self.dim) - pde = diff(w, tuple(self._max_mi)) - return pde + return diff(w, tuple(self._max_mi)) @pytest.mark.parametrize("order", [6]) diff --git a/sumpy/tools.py b/sumpy/tools.py index 25dc4bdc4..952c594ca 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -31,7 +31,7 @@ import logging import warnings from abc import ABC, abstractmethod -from collections.abc import Hashable, Sequence, Set +from collections.abc import Hashable, Sequence, Set as AbstractSet from dataclasses import dataclass from typing import TYPE_CHECKING, Any, TypeAlias, cast @@ -200,8 +200,8 @@ def add_to_sac(sac: SymbolicAssignmentCollection | None, expr: sym.Expr): # {{{ get variables -def get_all_variables(expr: Expression) -> Set[Variable]: - return cast("Set[Variable]", DependencyMapper()(expr)) +def get_all_variables(expr: Expression) -> AbstractSet[Variable]: + return cast("AbstractSet[Variable]", DependencyMapper()(expr)) # }}} @@ -914,8 +914,7 @@ def loopy_fft( knl = lp.add_inames_for_unused_hw_axes(knl) knl = lp.preprocess_kernel(knl) - knl = lp.linearize(knl) - return knl + return lp.linearize(knl) class FFTBackend(enum.Enum): diff --git a/sumpy/toys.py b/sumpy/toys.py index 032b74f34..71318a310 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -34,8 +34,7 @@ import numpy as np from typing_extensions import override -import pytools.obj_array as obj_array -from pytools import memoize_method +from pytools import memoize_method, obj_array from sumpy.kernel import TargetTransformationRemover From 7bcab92261cc5140a411196cfebf89df468464cb Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 20 Feb 2026 23:07:37 -0600 Subject: [PATCH 259/335] Update baseline --- .basedpyright/baseline.json | 1488 +++++------------------------------ 1 file changed, 184 insertions(+), 1304 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index b27e09015..bd2640514 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -2891,6 +2891,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -2951,28 +2959,36 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 47, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 48, + "startColumn": 43, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 60, + "startColumn": 36, + "endColumn": 17, + "lineCount": 4 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 32, "endColumn": 56, @@ -3011,30 +3027,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 74, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -3091,30 +3083,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -3549,22 +3517,6 @@ "lineCount": 1 } }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -3581,14 +3533,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -3725,14 +3669,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -3904,16 +3840,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 30, + "endColumn": 39, "lineCount": 1 } }, @@ -3928,8 +3864,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, @@ -4832,24 +4768,24 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 32, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 48, + "startColumn": 15, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 70, + "startColumn": 15, + "endColumn": 71, "lineCount": 1 } }, @@ -5192,8 +5128,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -6008,8 +5944,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -6088,8 +6024,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, @@ -6165,14 +6101,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -6352,16 +6280,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 30, + "endColumn": 39, "lineCount": 1 } }, @@ -6469,14 +6397,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -6664,16 +6584,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 44, + "startColumn": 30, + "endColumn": 39, "lineCount": 1 } }, @@ -7138,8 +7058,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -7330,8 +7250,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -8691,20 +8611,12 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 34, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 16, "endColumn": 40, @@ -8715,39 +8627,39 @@ "code": "reportMissingParameterType", "range": { "startColumn": 16, - "endColumn": 40, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 55, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, @@ -8755,180 +8667,52 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 64, - "endColumn": 78, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 64, - "endColumn": 78, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 47, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 55, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 55, - "lineCount": 1 + "startColumn": 12, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 55, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 12, "endColumn": 63, @@ -8983,30 +8767,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -9319,30 +9079,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -9455,30 +9191,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnusedVariable", "range": { @@ -9519,22 +9231,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -9591,22 +9287,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -9631,38 +9311,6 @@ "lineCount": 3 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -9679,150 +9327,6 @@ "lineCount": 3 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 44, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -10055,38 +9559,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10114,48 +9586,24 @@ { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 49, + "startColumn": 44, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 49, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, @@ -10247,14 +9695,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -10263,22 +9703,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -10391,54 +9815,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -10519,22 +9895,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -10591,30 +9951,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10719,6 +10055,14 @@ "lineCount": 2 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 63, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10727,6 +10071,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 69, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -10762,8 +10114,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, @@ -11015,30 +10367,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -11199,30 +10527,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -11383,14 +10687,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -11503,30 +10799,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -11626,56 +10898,24 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 42, + "startColumn": 26, + "endColumn": 69, "lineCount": 1 } }, @@ -11743,30 +10983,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -11863,30 +11079,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -11999,54 +11191,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -12119,38 +11263,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -12223,30 +11335,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -13086,8 +12174,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -13984,8 +13072,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -14312,8 +13400,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -14552,16 +13640,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 30, + "endColumn": 33, "lineCount": 1 } }, @@ -19741,14 +18829,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19766,23 +18846,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 25, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 53, "endColumn": 68, @@ -19790,7 +18854,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 54, "endColumn": 69, @@ -19805,6 +18869,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -20319,14 +19391,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20344,23 +19408,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -20368,7 +19416,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 34, "endColumn": 38, @@ -20376,7 +19424,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 34, "endColumn": 38, @@ -20728,10 +19776,18 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, @@ -20863,14 +19919,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20888,23 +19936,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21016,13 +20048,21 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -21056,7 +20096,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, "endColumn": 56, @@ -21064,7 +20104,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 8, "endColumn": 56, @@ -21072,7 +20112,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, "endColumn": 42, @@ -21080,7 +20120,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 8, "endColumn": 42, @@ -21088,7 +20128,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, "endColumn": 35, @@ -21096,7 +20136,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 8, "endColumn": 35, @@ -21104,7 +20144,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, "endColumn": 34, @@ -21112,7 +20152,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 8, "endColumn": 34, @@ -21159,14 +20199,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21184,23 +20216,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21240,21 +20256,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 54, "endColumn": 58, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 63, - "endColumn": 67, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21367,14 +20375,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21384,23 +20384,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21408,21 +20392,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 59, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -21439,14 +20415,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21456,23 +20424,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21480,7 +20432,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 49, "endColumn": 62, @@ -21488,7 +20440,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 49, "endColumn": 62, @@ -21496,21 +20448,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 59, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -21567,14 +20511,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21584,23 +20520,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21608,7 +20528,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 49, "endColumn": 62, @@ -21616,7 +20536,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 49, "endColumn": 62, @@ -21624,21 +20544,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 54, "endColumn": 58, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 63, - "endColumn": 67, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -21719,14 +20631,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21736,23 +20640,7 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, "endColumn": 31, @@ -21760,7 +20648,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 49, "endColumn": 62, @@ -21768,7 +20656,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 49, "endColumn": 62, @@ -21824,21 +20712,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 59, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -25648,8 +24528,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, From c58bbea6f4cb8bc369a9488e95cb0e2050aa62ec Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 1 Mar 2026 13:51:22 -0600 Subject: [PATCH 260/335] Update baseline --- .basedpyright/baseline.json | 356 +----------------------------------- 1 file changed, 2 insertions(+), 354 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index bd2640514..20facb1cc 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -8647,14 +8647,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 79, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10055,14 +10047,6 @@ "lineCount": 2 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10071,14 +10055,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -18845,22 +18821,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19407,78 +19367,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 49, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 49, - "endColumn": 71, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19488,29 +19376,13 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 21, "endColumn": 60, "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 31, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19520,21 +19392,13 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 30, "endColumn": 70, "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19775,14 +19639,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19935,14 +19791,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20047,14 +19895,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20095,70 +19935,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20215,14 +19991,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportCallIssue", "range": { @@ -20255,14 +20023,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20383,22 +20143,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -20423,38 +20167,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -20519,38 +20231,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { @@ -20639,30 +20319,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 62, - "lineCount": 1 - } - }, { "code": "reportCallIssue", "range": { @@ -20711,14 +20367,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportGeneralTypeIssues", "range": { From 184ec01b1d265bfbce9e6dc4885e3802510c1357 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 15:25:30 +0200 Subject: [PATCH 261/335] chore: remove unused mypy ignores --- sumpy/symbolic.py | 2 +- sumpy/toys.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 64a262947..0459485fc 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -98,7 +98,7 @@ def _find_symbolic_backend(): if TYPE_CHECKING or not USE_SYMENGINE: import sympy as sym - from pymbolic.interop.sympy import ( # type: ignore[assignment] + from pymbolic.interop.sympy import ( PymbolicToSympyMapper as PymbolicToSympyMapperBase, SympyToPymbolicMapper as SympyToPymbolicMapperBase, ) diff --git a/sumpy/toys.py b/sumpy/toys.py index 71318a310..3ccda9c82 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -540,7 +540,7 @@ def __add__(self, other: Number_ish | PotentialSource) -> PotentialSource: def __sub__(self, other: Number_ish | PotentialSource) -> PotentialSource: return self.__add__(-other) - def __rsub__(self, # type:ignore[misc] + def __rsub__(self, other: Number_ish | PotentialSource ) -> PotentialSource: return (-self).__add__(other) @@ -725,7 +725,7 @@ def __init__(self, psources: Sequence[PotentialSource]) -> None: def center(self) -> np.ndarray: for psource in self.psources: try: - return psource.center # type: ignore[attr-defined] + return psource.center except AttributeError: pass From ccd0d63e06ccb2e7dcd77722bc41a1a6b58caa13 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 11:44:50 +0200 Subject: [PATCH 262/335] feat(typing): improve types in sumpy.visualization --- sumpy/visualization.py | 104 ++++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 9033f24dd..2f47d0777 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -29,10 +29,21 @@ .. autoclass:: FieldPlotter """ +from typing import TYPE_CHECKING, Any, cast + import numpy as np -def separate_by_real_and_imag(data, real_only): +if TYPE_CHECKING: + import pathlib + from collections.abc import Iterable, Iterator, Sequence + + import optype.numpy as onp + + +def separate_by_real_and_imag( + data: Iterable[tuple[str, onp.ArrayND[Any]]], *, + real_only: bool) -> Iterator[tuple[str, onp.ArrayND[Any]]]: from pytools.obj_array import obj_array_imag_copy, obj_array_real_copy for name, field in data: @@ -51,7 +62,10 @@ def separate_by_real_and_imag(data, real_only): yield (f"{name}_i", obj_array_imag_copy(field)) -def make_field_plotter_from_bbox(bbox, h, extend_factor=0): +def make_field_plotter_from_bbox( + bbox: tuple[onp.Array1D[np.floating[Any]], onp.Array1D[np.floating[Any]]], + h: float | Sequence[float], + extend_factor: float = 0) -> FieldPlotter: """ :arg bbox: a tuple (low, high) of points represented as 1D numpy arrays indicating the low and high ends of the extent of a bounding box. @@ -63,21 +77,20 @@ def make_field_plotter_from_bbox(bbox, h, extend_factor=0): """ low, high = bbox - extent = (high-low) * (1 + extend_factor) - center = 0.5*(high+low) - + extent: onp.Array1D[np.floating[Any]] = (high-low) * (1 + extend_factor) + center: onp.Array1D[np.floating[Any]] = 0.5*(high+low) dimensions = len(center) + from numbers import Number - if isinstance(h, Number): - h = (h,)*dimensions + if isinstance(h, (int, float, Number)): + h = cast("Sequence[float]", (h,)*dimensions) else: if len(h) != dimensions: raise ValueError("length of 'h' must match number of dimensions") from math import ceil - npoints = tuple(ceil(extent[i] / h[i]) for i in range(dimensions)) - + npoints = tuple(ceil(float(extent[i]) / h[i]) for i in range(dimensions)) return FieldPlotter(center, extent, npoints) @@ -88,14 +101,28 @@ class FieldPlotter: .. automethod:: show_scalar_in_mayavi .. automethod:: write_vtk_file """ - def __init__(self, center, extent=1, npoints=1000): + + dimensions: int + a: onp.Array1D[np.floating[Any]] + b: onp.Array1D[np.floating[Any]] + + nd_points: onp.Array2D[np.floating[Any]] + points: onp.Array2D[np.floating[Any]] + npoints: int + + def __init__(self, + center: onp.ToArray1D[np.floating[Any]], + extent: float | onp.Array1D[np.floating[Any]] = 1, + npoints: int | tuple[int, ...] = 1000) -> None: center = np.asarray(center) - self.dimensions, = dim, = center.shape - self.a = a = center-extent*0.5 - self.b = b = center+extent*0.5 + dim, = cast("tuple[int]", center.shape) + + self.dimensions = dim + self.a = a = center - 0.5 * extent + self.b = b = center + 0.5 * extent from numbers import Number - if isinstance(npoints, Number): + if isinstance(npoints, (int, Number)): npoints = dim*(npoints,) else: if len(npoints) != dim: @@ -108,29 +135,30 @@ def __init__(self, center, extent=1, npoints=1000): mgrid_index = tuple( slice(a[i], b[i], 1j*npoints[i]) for i in range(dim)) - - # np.asarray is technically unneeded, used to placate pylint - # https://github.com/pylint-dev/pylint/issues/9989 - mgrid = np.asarray(np.mgrid[mgrid_index]) + mgrid = np.mgrid[mgrid_index] # (axis, point x idx, point y idx, ...) self.nd_points = mgrid self.points = self.nd_points.reshape(dim, -1).copy() + self.npoints = int(np.prod(mgrid.shape[1:])) - from pytools import product - self.npoints = product(npoints) - - def _get_nontrivial_dims(self): + def _get_nontrivial_dims(self) -> onp.Array1D[np.bool_]: return np.array(self.nd_points.shape[1:]) != 1 - def _get_squeezed_bounds(self): + def _get_squeezed_bounds( + self + ) -> tuple[onp.Array1D[np.floating[Any]], onp.Array1D[np.floating[Any]]]: nontriv_dims = self._get_nontrivial_dims() return self.a[nontriv_dims], self.b[nontriv_dims] - def show_scalar_in_matplotlib(self, fld, max_val=None, - func_name="imshow", **kwargs): + def show_scalar_in_matplotlib( + self, + fld: onp.ArrayND[Any], + max_val: float | None = None, + func_name: str = "imshow", + **kwargs: Any) -> Any: squeezed_points = self.points.squeeze() if len(squeezed_points.shape) != 2: @@ -158,31 +186,43 @@ def show_scalar_in_matplotlib(self, fld, max_val=None, import matplotlib.pyplot as pt return getattr(pt, func_name)(squeezed_fld.T, **kwargs) - def set_matplotlib_limits(self): + def set_matplotlib_limits(self) -> None: import matplotlib.pyplot as pt a, b = self._get_squeezed_bounds() pt.xlim((a[0], b[0])) pt.ylim((a[1], b[1])) - def show_vector_in_mayavi(self, fld, do_show=True, **kwargs): + def show_vector_in_mayavi( + self, + fld: onp.ArrayND[Any], + do_show: bool = True, + **kwargs: Any) -> None: c = self.points from mayavi import mlab - mlab.quiver3d(c[0], c[1], c[2], fld[0], fld[1], fld[2], - **kwargs) + mlab.quiver3d(c[0], c[1], c[2], fld[0], fld[1], fld[2], **kwargs) if do_show: mlab.show() - def write_vtk_file(self, file_name, data, real_only=False, overwrite=False): + def write_vtk_file( + self, + file_name: str | pathlib.Path, + data: Iterable[tuple[str, onp.ArrayND[Any]]], *, + real_only: bool = False, + overwrite: bool = False) -> None: from pyvisfile.vtk import write_structured_grid write_structured_grid(file_name, self.nd_points, - point_data=list(separate_by_real_and_imag(data, real_only)), + point_data=list(separate_by_real_and_imag(data, real_only=real_only)), overwrite=overwrite) - def show_scalar_in_mayavi(self, fld, max_val=None, **kwargs): + def show_scalar_in_mayavi( + self, + fld: onp.ArrayND[Any], + max_val: float | None = None, + **kwargs: Any) -> None: if max_val is not None: fld[fld > max_val] = max_val fld[fld < -max_val] = -max_val From 07b7d8b5d42d9467780f92f1999861149289f07e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 15:19:38 +0200 Subject: [PATCH 263/335] feat(typing): improve types in sumpy.point_calculus --- sumpy/point_calculus.py | 167 +++++++++++++++++++++++++--------------- 1 file changed, 107 insertions(+), 60 deletions(-) diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 2309b2e69..3a2d53de6 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from typing import TYPE_CHECKING, Literal, TypeAlias +from typing import TYPE_CHECKING, Any, Literal, TypeAlias, TypeVar, overload import numpy as np import numpy.linalg as la @@ -33,13 +33,14 @@ if TYPE_CHECKING: from collections.abc import Callable, Sequence - from optype.numpy import Array1D, Array2D + from optype.numpy import Array1D, Array2D, ArrayND __doc__ = """ .. autodata:: NodesKind :noindex: +.. autoclass:: InexactT .. class:: NodesKind .. autoclass:: CalculusPatch @@ -48,6 +49,7 @@ """ +InexactT = TypeVar("InexactT", bound=np.inexact[Any]) NodesKind: TypeAlias = Literal["chebyshev", "equispaced", "legendre"] @@ -55,14 +57,14 @@ class CalculusPatch: """Sets up a grid of points on which derivatives can be calculated. Useful to verify that an evaluated potential actually solves a PDE. - .. attribute:: dim - - .. attribute:: points - - shape: ``(dim, npoints_total)`` + .. autoattribute:: dim + .. autoattribute:: npoints + .. autoattribute:: points + .. autoattribute:: center .. automethod:: weights .. automethod:: basis + .. automethod:: diff .. automethod:: dx .. automethod:: dy @@ -71,40 +73,52 @@ class CalculusPatch: .. automethod:: div .. automethod:: curl .. automethod:: eval_at_center - .. autoattribute:: x - .. autoattribute:: y - .. autoattribute:: z + + .. autoproperty:: x + .. autoproperty:: y + .. autoproperty:: z + .. automethod:: norm .. automethod:: plot_nodes .. automethod:: plot """ + dim: int - center: Array1D[np.floating] - points: Array2D[np.floating] npoints: int + points: Array2D[np.floating[Any]] + """Shape: ``(dim, npoints)``.""" + center: Array1D[np.floating[Any]] + + h: float + _points_1d: Array1D[np.floating[Any]] + _weights_1d: Array1D[np.floating[Any]] | None + _points_shaped: ArrayND[np.floating[Any]] + """An array of shape ``(dim, nnodes, ...)``.""" + _pshape: tuple[int, ...] def __init__(self, - center: Array1D[np.floating], + center: Array1D[np.floating[Any]], h: float = 1e-1, order: int = 4, - nodes: NodesKind = "chebyshev"): + nodes: NodesKind = "chebyshev") -> None: self.center = center + dtype = center.dtype npoints = order + 1 if nodes == "equispaced": - points_1d = np.linspace(-h/2, h/2, npoints) + points_1d = np.linspace(-h/2, h/2, npoints, dtype=dtype) weights_1d = None elif nodes == "chebyshev": - a = np.arange(npoints, dtype=np.float64) + a = np.arange(npoints, dtype=dtype) points_1d = (h/2)*np.cos((2*(a+1)-1)/(2*npoints)*np.pi) weights_1d = None elif nodes == "legendre": from scipy.special import legendre points_1d, weights_1d, _ = legendre(npoints).weights.T - points_1d = points_1d * (h/2) - weights_1d = weights_1d * (h/2) + points_1d = (points_1d * (h/2)).astype(dtype) + weights_1d = (weights_1d * (h/2)).astype(dtype) else: raise ValueError(f"invalid node set: {nodes}") @@ -127,7 +141,7 @@ def __init__(self, self._pshape = points_shaped.shape[1:] @memoize_method - def _vandermonde_1d(self): + def _vandermonde_1d(self) -> Array2D[np.floating[Any]]: points_1d = self._points_1d npoints = len(self._points_1d) @@ -138,11 +152,13 @@ def _vandermonde_1d(self): return vandermonde @memoize_method - def _zero_eval_vec_1d(self): + def _zero_eval_vec_1d(self) -> Array1D[np.floating[Any]]: # The zeroth coefficient--all others involve x=0. return self._vandermonde_1d()[0] - def basis(self) -> Sequence[Callable[[Array2D[np.floating]], Array1D[np.floating]]]: + def basis(self) -> Sequence[ + Callable[[Array2D[np.floating[Any]]], Array1D[np.floating[Any]]] + ]: """ :returns: a :class:`list` containing functions that realize a high-order interpolation basis on the :py:attr:`points`. @@ -152,11 +168,15 @@ def basis(self) -> Sequence[Callable[[Array2D[np.floating]], Array1D[np.floating from pytools import indices_in_shape - def eval_basis(ind: tuple[int, ...], x: Array2D[np.floating]): - result = 1 + def eval_basis( + ind: tuple[int, ...], + x: Array2D[np.floating[Any]] + ) -> Array1D[np.floating[Any]]: + result = np.ones(x[0].shape, dtype=x.dtype) for i in range(self.dim): coord = (x[i] - self.center[i])/(self.h/2) result *= eval_chebyt(ind[i], coord) + return result from functools import partial @@ -165,8 +185,8 @@ def eval_basis(ind: tuple[int, ...], x: Array2D[np.floating]): for ind in indices_in_shape((self.npoints,)*self.dim)] @memoize_method - def weights(self): - """" + def weights(self) -> ArrayND[np.floating[Any]]: + """ :returns: a vector of high-order quadrature weights on the :attr:`points` """ @@ -182,7 +202,7 @@ def weights(self): return result.reshape(-1) @memoize_method - def _diff_mat_1d(self, nderivs): + def _diff_mat_1d(self, nderivs: int) -> Array2D[np.floating[Any]]: npoints = len(self._points_1d) vandermonde = self._vandermonde_1d() @@ -193,26 +213,33 @@ def _diff_mat_1d(self, nderivs): n_diff_mat = n_diff_mat.dot(coeff_diff_mat) deriv_coeffs_mat = la.solve(vandermonde.T, n_diff_mat.T).T - return vandermonde.dot(deriv_coeffs_mat) + return vandermonde @ deriv_coeffs_mat + + @overload + def diff(self, axis: int, f_values: np.number[Any] | complex, + nderivs: int = 1) -> Literal[0]: ... + + @overload + def diff(self, axis: int, f_values: Array1D[InexactT], + nderivs: int = 1) -> Array1D[InexactT]: ... def diff(self, axis: int, - f_values: Array1D[np.inexact], + f_values: np.number[Any] | complex | Array1D[InexactT], nderivs: int = 1 - ) -> Array1D[np.inexact] | Literal[0]: + ) -> Array1D[InexactT] | Literal[0]: """Return the derivative along *axis* of *f_values*. - :arg f_values: an array of shape ``(npoints_total,)`` - :returns: an array of shape ``(npoints_total,)`` + :arg f_values: an array of shape ``(npoints,)`` + :returns: an array of shape ``(npoints,)`` """ from numbers import Number - if isinstance(f_values, np.number | Number): + if isinstance(f_values, (int, float, complex, np.number, Number)): # constants differentiate to 0 return 0 dim = len(self.center) - assert axis < dim axes = "klmno" @@ -224,45 +251,49 @@ def diff(self, self._diff_mat_1d(nderivs), f_values.reshape(*self._pshape)).reshape(-1) - def dx(self, f_values: Array1D[np.inexact]): + def dx(self, f_values: Array1D[InexactT]) -> Array1D[InexactT]: return self.diff(0, f_values) - def dy(self, f_values: Array1D[np.inexact]): + def dy(self, f_values: Array1D[InexactT]) -> Array1D[InexactT]: return self.diff(1, f_values) - def dz(self, f_values: Array1D[np.inexact]): + def dz(self, f_values: Array1D[InexactT]) -> Array1D[InexactT]: return self.diff(2, f_values) - def laplace(self, f_values: Array1D[np.inexact]): + def laplace(self, f_values: Array1D[InexactT]) -> Array1D[InexactT]: """Return the Laplacian of *f_values*. - :arg f_values: an array of shape ``(npoints_total,)`` - :returns: an array of shape ``(npoints_total,)`` + :arg f_values: an array of shape ``(npoints,)`` + :returns: an array of shape ``(npoints,)`` representing the application + of the Laplacian to *f_values*. """ return sum(self.diff(iaxis, f_values, 2) for iaxis in range(self.dim)) def div(self, - arg: obj_array.ObjectArray1D[Array1D[np.inexact]] - ) -> Array1D[np.inexact] | int: + arg: obj_array.ObjectArray1D[Array1D[InexactT]] + ) -> Array1D[InexactT]: r""" :arg arg: an object array containing - :class:`numpy.ndarray`\ s with shape ``(npoints_total,)``. + :class:`numpy.ndarray`\ s with shape ``(npoints,)``. """ - result: Array1D[np.inexact] | int = 0 + result: Array1D[InexactT] | int = 0 for i, arg_i in enumerate(arg): result = result + self.diff(i, arg_i) return result def curl(self, - arg: obj_array.ObjectArray1D[Array1D[np.inexact]] - ) -> obj_array.ObjectArray1D[Array1D[np.inexact]]: + arg: obj_array.ObjectArray1D[Array1D[InexactT]] + ) -> obj_array.ObjectArray1D[Array1D[InexactT]]: r"""Take the curl of the vector quantity *arg*. :arg arg: an object array of shape ``(3,)`` containing - :class:`numpy.ndarray`\ s with shape ``(npoints_total,)``. + :class:`numpy.ndarray`\ s with shape ``(npoints,)``. """ + if arg.size != 3: + raise ValueError(f"can only take the curl of a 3d vector: {arg.shape}") + from pytools import levi_civita return obj_array.new_1d([ sum( @@ -270,10 +301,12 @@ def curl(self, for m in range(3) for n in range(3)) for k in range(3)]) - def eval_at_center(self, f_values): + def eval_at_center( + self, f_values: Array1D[InexactT] + ) -> InexactT: """Interpolate *f_values* to the center point. - :arg f_values: an array of shape ``(npoints_total,)`` + :arg f_values: an array of shape ``(npoints,)`` :returns: a scalar. """ f_values = f_values.reshape(*self._pshape) @@ -282,21 +315,26 @@ def eval_at_center(self, f_values): for _ in range(self.dim): f_values = zero_eval_vec_1d @ f_values + assert f_values.ndim == 0 return f_values @property - def x(self) -> Array1D[np.floating]: + def x(self) -> Array1D[np.floating[Any]]: return self.points[0] @property - def y(self) -> Array1D[np.floating]: + def y(self) -> Array1D[np.floating[Any]]: return self.points[1] @property - def z(self) -> Array1D[np.floating]: + def z(self) -> Array1D[np.floating[Any]]: return self.points[2] - def norm(self, arg, p): + def norm(self, + arg: ( + obj_array.ObjectArray1D[ArrayND[InexactT]] + | ArrayND[InexactT]), + p: float) -> np.floating[Any]: if p == np.inf: if arg.dtype == object: return max( @@ -307,7 +345,10 @@ def norm(self, arg, p): else: raise ValueError("unsupported norm") - def plot_nodes(self): + def plot_nodes(self) -> None: + if self.dim != 2: + raise ValueError(f"cannot plot {self.dim}d fields") + import matplotlib.pyplot as plt plt.gca().set_aspect("equal") plt.plot( @@ -315,7 +356,10 @@ def plot_nodes(self): self._points_shaped[1].reshape(-1), "o") - def plot(self, f: Array1D[np.floating]): + def plot(self, f: Array1D[np.floating[Any]]) -> None: + if self.dim != 2: + raise ValueError(f"cannot plot {self.dim}d fields") + f = f.reshape(*self._pshape) import matplotlib.pyplot as plt @@ -324,14 +368,17 @@ def plot(self, f: Array1D[np.floating]): def frequency_domain_maxwell( - cpatch: CalculusPatch, - e: obj_array.ObjectArray1D[Array1D[np.complexfloating]], - h: obj_array.ObjectArray1D[Array1D[np.complexfloating]], - k: complex - ): + cpatch: CalculusPatch, + e: obj_array.ObjectArray1D[Array1D[np.complexfloating[Any]]], + h: obj_array.ObjectArray1D[Array1D[np.complexfloating[Any]]], + k: complex + ) -> tuple[obj_array.ObjectArray1D[Array1D[np.complexfloating[Any]]], + obj_array.ObjectArray1D[Array1D[np.complexfloating[Any]]], + Array1D[np.complexfloating[Any]], + Array1D[np.complexfloating[Any]]]: mu = 1 epsilon = 1 - c = 1/np.sqrt(mu*epsilon) + c = np.float64(1/np.sqrt(mu*epsilon)) omega = k*c b = mu*h From 8d636bbf5e164a074635ed99ce54340ad888ae91 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 15:26:08 +0200 Subject: [PATCH 264/335] feat: make a FieldPlotter for CalculusPatch --- sumpy/point_calculus.py | 10 +++++++++ sumpy/visualization.py | 47 +++++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index 3a2d53de6..a83eef262 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -29,6 +29,8 @@ from pytools import memoize_method, obj_array +from sumpy.visualization import FieldPlotter + if TYPE_CHECKING: from collections.abc import Callable, Sequence @@ -345,6 +347,9 @@ def norm(self, else: raise ValueError("unsupported norm") + def make_field_plotter(self) -> FieldPlotter: + return FieldPlotter(self.center, self.h, points=self._points_shaped) + def plot_nodes(self) -> None: if self.dim != 2: raise ValueError(f"cannot plot {self.dim}d fields") @@ -357,6 +362,11 @@ def plot_nodes(self) -> None: "o") def plot(self, f: Array1D[np.floating[Any]]) -> None: + from warnings import warn + warn(f"Calling '{type(self).__name__}.plot' is deprecated. Use " + f"'{type(self).__name__}.make_field_plotter' instead, which also " + "supports 3d fields.", DeprecationWarning, stacklevel=2) + if self.dim != 2: raise ValueError(f"cannot plot {self.dim}d fields") diff --git a/sumpy/visualization.py b/sumpy/visualization.py index 2f47d0777..f3ffacac8 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -96,6 +96,10 @@ def make_field_plotter_from_bbox( class FieldPlotter: """ + .. autoattribute:: dimensions + .. autoattribute:: npoints + .. autoattribute:: points + .. automethod:: set_matplotlib_limits .. automethod:: show_scalar_in_matplotlib .. automethod:: show_scalar_in_mayavi @@ -103,17 +107,18 @@ class FieldPlotter: """ dimensions: int + npoints: int + points: onp.Array2D[np.floating[Any]] + a: onp.Array1D[np.floating[Any]] b: onp.Array1D[np.floating[Any]] - - nd_points: onp.Array2D[np.floating[Any]] - points: onp.Array2D[np.floating[Any]] - npoints: int + nd_points: onp.ArrayND[np.floating[Any]] def __init__(self, center: onp.ToArray1D[np.floating[Any]], extent: float | onp.Array1D[np.floating[Any]] = 1, - npoints: int | tuple[int, ...] = 1000) -> None: + npoints: int | tuple[int, ...] = 1000, + points: onp.ArrayND[np.floating[Any]] | None = None) -> None: center = np.asarray(center) dim, = cast("tuple[int]", center.shape) @@ -121,25 +126,27 @@ def __init__(self, self.a = a = center - 0.5 * extent self.b = b = center + 0.5 * extent - from numbers import Number - if isinstance(npoints, (int, Number)): - npoints = dim*(npoints,) + if points is None: + from numbers import Number + if isinstance(npoints, (int, Number)): + npoints = dim*(npoints,) + else: + if len(npoints) != dim: + raise ValueError("length of npoints must match dimension") + + for i in range(dim): + if npoints[i] == 1: + a[i] = center[i] + + mgrid_index = tuple( + slice(a[i], b[i], 1j*npoints[i]) + for i in range(dim)) + mgrid = np.mgrid[mgrid_index] else: - if len(npoints) != dim: - raise ValueError("length of npoints must match dimension") - - for i in range(dim): - if npoints[i] == 1: - a[i] = center[i] - - mgrid_index = tuple( - slice(a[i], b[i], 1j*npoints[i]) - for i in range(dim)) - mgrid = np.mgrid[mgrid_index] + mgrid = points # (axis, point x idx, point y idx, ...) self.nd_points = mgrid - self.points = self.nd_points.reshape(dim, -1).copy() self.npoints = int(np.prod(mgrid.shape[1:])) From ae22abdddd950fd54701b32dbccffa7d5311b620 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 16:09:26 +0200 Subject: [PATCH 265/335] docs: fix up docs for optype --- .github/workflows/ci.yml | 2 +- doc/conf.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f3dd2f1d..a22d16eb0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 build_py_project_in_conda_env - cipip install pytest pyfmmlib scipy scipy-stubs matplotlib pyvisfile + cipip install pytest pyfmmlib scipy scipy-stubs matplotlib pyvisfile optype cipip install basedpyright basedpyright diff --git a/doc/conf.py b/doc/conf.py index 21e6be08b..8f13fecaf 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -27,12 +27,16 @@ nitpick_ignore_regex = [ ["py:class", r"symengine\.(.+)"], # :cry: ["py:class", r"ToTagSetConvertible"], # :cry: + # NOTE: optype does not have Sphinx compatible documentation + ["py:class", r"op.*"], + ["py:class", r"onp.*"], ] sphinxconfig_missing_reference_aliases = { # numpy "Array1D": "class:numpy.ndarray", "Array2D": "class:numpy.ndarray", + "ArrayND": "class:numpy.ndarray", "np.floating": "class:numpy.floating", "np.complexfloating": "class:numpy.complexfloating", "np.inexact": "class:numpy.inexact", From 580ef6702faaa4c97b963d48fa0830dad05fdba2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 13 Mar 2026 15:49:34 +0200 Subject: [PATCH 266/335] chore: update baseline --- .basedpyright/baseline.json | 1386 ++++------------------------------- 1 file changed, 129 insertions(+), 1257 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 20facb1cc..4376065f6 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -13687,43 +13687,19 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, + "startColumn": 24, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 25, + "endColumn": 52, "lineCount": 1 } }, @@ -13735,22 +13711,6 @@ "lineCount": 3 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13759,59 +13719,27 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, @@ -13831,30 +13759,6 @@ "lineCount": 1 } }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 70, - "lineCount": 3 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -13863,14 +13767,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -13880,15 +13776,15 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 46, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 15, "endColumn": 29, @@ -13896,34 +13792,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, @@ -13935,14 +13807,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -13991,14 +13855,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -14019,31 +13875,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 33, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 15, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAssignmentType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 21, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportReturnType", "range": { - "startColumn": 34, - "endColumn": 46, + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, @@ -14056,34 +13912,34 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 23, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, @@ -14112,127 +13968,47 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportAny", + "code": "reportAny", "range": { "startColumn": 12, "endColumn": 46, @@ -14247,22 +14023,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -14271,51 +14031,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 5, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 9, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } } @@ -19335,22 +19055,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19383,22 +19087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 30, - "endColumn": 70, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20817,14 +20505,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 49, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20833,14 +20513,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -20882,15 +20554,7 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 51, "endColumn": 60, @@ -20905,22 +20569,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20953,14 +20601,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21009,14 +20649,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21073,14 +20705,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -21249,22 +20873,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 51, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21362,15 +20970,7 @@ } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownMemberType", "range": { "startColumn": 35, "endColumn": 54, @@ -21393,14 +20993,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21425,14 +21017,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21457,14 +21041,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21489,14 +21065,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -23318,7 +22886,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, "endColumn": 40, @@ -28047,38 +27615,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 71, - "endColumn": 77, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -28167,38 +27703,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -29124,829 +28628,197 @@ ], "./sumpy/visualization.py": [ { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 29, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 34, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 30, - "endColumn": 34, + "startColumn": 25, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 32, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 32, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, + "startColumn": 31, "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 26, - "endColumn": 37, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 31, + "startColumn": 32, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 22, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 22, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 40, + "startColumn": 18, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 40, + "startColumn": 15, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 38, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 69, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingImports", "range": { - "startColumn": 25, - "endColumn": 41, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, + "startColumn": 18, "endColumn": 29, "lineCount": 1 } }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 19, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", - "range": { - "startColumn": 37, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 31, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 45, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 31, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportMissingImports", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 46, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 63, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 27, - "endColumn": 75, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 15, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportMissingImports", "range": { From a8bdeb421d9ac805f878fb66cf0335eadd70f0a2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 15 Mar 2026 20:31:53 +0200 Subject: [PATCH 267/335] fix: allow sequences for center --- .basedpyright/baseline.json | 16 ---------------- doc/conf.py | 1 + sumpy/point_calculus.py | 18 +++++++++--------- 3 files changed, 10 insertions(+), 25 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 4376065f6..d183da00e 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -13687,22 +13687,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { diff --git a/doc/conf.py b/doc/conf.py index 8f13fecaf..9013483ac 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -37,6 +37,7 @@ "Array1D": "class:numpy.ndarray", "Array2D": "class:numpy.ndarray", "ArrayND": "class:numpy.ndarray", + "ToArray1D": "class:numpy.ndarray", "np.floating": "class:numpy.floating", "np.complexfloating": "class:numpy.complexfloating", "np.inexact": "class:numpy.inexact", diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index a83eef262..fb177185e 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -35,7 +35,7 @@ if TYPE_CHECKING: from collections.abc import Callable, Sequence - from optype.numpy import Array1D, Array2D, ArrayND + from optype.numpy import Array1D, Array2D, ArrayND, ToArray1D __doc__ = """ @@ -99,28 +99,28 @@ class CalculusPatch: _pshape: tuple[int, ...] def __init__(self, - center: Array1D[np.floating[Any]], + center: ToArray1D[np.floating[Any]], h: float = 1e-1, order: int = 4, nodes: NodesKind = "chebyshev") -> None: - self.center = center - dtype = center.dtype + center = np.asarray(center) + assert center.ndim == 1 npoints = order + 1 if nodes == "equispaced": - points_1d = np.linspace(-h/2, h/2, npoints, dtype=dtype) + points_1d = np.linspace(-h/2, h/2, npoints) weights_1d = None elif nodes == "chebyshev": - a = np.arange(npoints, dtype=dtype) + a = np.arange(npoints) points_1d = (h/2)*np.cos((2*(a+1)-1)/(2*npoints)*np.pi) weights_1d = None elif nodes == "legendre": from scipy.special import legendre points_1d, weights_1d, _ = legendre(npoints).weights.T - points_1d = (points_1d * (h/2)).astype(dtype) - weights_1d = (weights_1d * (h/2)).astype(dtype) + points_1d = points_1d * (h/2) + weights_1d = weights_1d * (h/2) else: raise ValueError(f"invalid node set: {nodes}") @@ -130,8 +130,8 @@ def __init__(self, self._points_1d = points_1d self._weights_1d = weights_1d - self.dim = dim = len(self.center) self.center = center + self.dim = dim = len(self.center) points_shaped = np.array(np.meshgrid( *[center[i] + points_1d for i in range(dim)], From 9464f46d23b9f6064b4195b68a4027bdbb63c05e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 15 Mar 2026 20:55:39 +0200 Subject: [PATCH 268/335] feat: add custom __reduce__ to kernels --- sumpy/kernel.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index b9b448a0f..3861f6509 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -466,6 +466,10 @@ def __init__(self, dim: int): global_scaling_const=1, ) + @override + def __reduce__(self) -> tuple[object, ...]: + return (self.__class__, (self.dim,)) + @property @override def is_complex_valued(self) -> bool: @@ -496,6 +500,10 @@ def __init__(self, dim: int) -> None: super().__init__(dim, expression=expr, global_scaling_const=scaling) + @override + def __reduce__(self) -> tuple[object, ...]: + return (self.__class__, (self.dim,)) + @property @override def is_complex_valued(self) -> bool: @@ -545,6 +553,10 @@ def __init__(self, dim: int) -> None: super().__init__(dim, expression=expr, global_scaling_const=scaling) + @override + def __reduce__(self) -> tuple[object, ...]: + return (self.__class__, (self.dim,)) + @property @override def is_complex_valued(self) -> bool: @@ -611,6 +623,13 @@ def __init__(self, object.__setattr__(self, "helmholtz_k_name", helmholtz_k_name) object.__setattr__(self, "allow_evanescent", allow_evanescent) + @override + def __reduce__(self) -> tuple[object, ...]: + return ( + self.__class__, + (self.dim, self.helmholtz_k_name, self.allow_evanescent), + ) + @property @override def is_complex_valued(self) -> bool: @@ -698,6 +717,10 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "yukawa_lambda_name", yukawa_lambda_name) + @override + def __reduce__(self) -> tuple[object, ...]: + return (self.__class__, (self.dim, self.yukawa_lambda_name)) + @property @override def is_complex_valued(self) -> bool: @@ -964,6 +987,13 @@ def __init__(self, object.__setattr__(self, "kcomp", kcomp) object.__setattr__(self, "viscosity_mu", mu) + @override + def __reduce__(self) -> tuple[object, ...]: + return ( + self.__class__, + (self.dim, self.icomp, self.jcomp, self.kcomp, self.viscosity_mu), + ) + @property @override def is_complex_valued(self) -> bool: @@ -1052,6 +1082,13 @@ def __init__(self, object.__setattr__(self, "viscosity_mu", mu) object.__setattr__(self, "poisson_ratio", nu) + @override + def __reduce__(self) -> tuple[object, ...]: + return ( + self.__class__, + (self.dim, self.axis, self.viscosity_mu, self.poisson_ratio), + ) + @property @override def is_complex_valued(self) -> bool: From 21c673599db777afbbbdf5b0d76657f2fa310b7b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 15 Mar 2026 21:19:33 +0200 Subject: [PATCH 269/335] test: add test to pickle kernels --- sumpy/test/test_kernels.py | 45 +++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index ae21ef035..24fa71087 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -26,6 +26,7 @@ import logging import sys from functools import partial +from typing import TYPE_CHECKING import numpy as np import numpy.linalg as la @@ -36,7 +37,7 @@ PyOpenCLArrayContext, pytest_generate_tests_for_array_contexts, ) -from pytools import obj_array +from pytools import memoize_on_first_arg, obj_array from pytools.convergence import PConvergenceVerifier import sumpy.symbolic as sym @@ -62,15 +63,22 @@ AxisTargetDerivative, BiharmonicKernel, DirectionalSourceDerivative, + ElasticityKernel, HelmholtzKernel, Kernel, LaplaceKernel, + LineOfCompressionKernel, + OneKernel, StokesletKernel, + StressletKernel, YukawaKernel, ) from sumpy.test.geometries import make_ellipsoid, make_torus +if TYPE_CHECKING: + from collections.abc import Callable + logger = logging.getLogger(__name__) pytest_generate_tests = pytest_generate_tests_for_array_contexts([ @@ -857,6 +865,8 @@ def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, # }}} +# {{{ test_jump + @pytest.mark.parametrize(("kernel_cls", "kernel_kwargs"), [ (LaplaceKernel, {}), (HelmholtzKernel, {"k": 1}), @@ -922,6 +932,39 @@ def test_jump( err = abs((inside-outside) - -1) assert err < tol, err +# }}} + + +# {{{ test_pickle + +@memoize_on_first_arg +def get_kernel_name_for_test(knl: Kernel) -> Callable[[str], str]: + return lambda prefix: f"{prefix}: {type(knl).__name__}" + + +@pytest.mark.parametrize("knl", [ + BiharmonicKernel(2), + ElasticityKernel(2, 0, 0), + HelmholtzKernel(3, helmholtz_k_name="kay"), + LaplaceKernel(3), + LineOfCompressionKernel(), + OneKernel(2), + StokesletKernel(2, 0, 0), + StressletKernel(2, 0, 0, 0), + YukawaKernel(2, yukawa_lambda_name="lambda"), +]) +def test_pickle(knl: Kernel) -> None: + import pickle + + result = pickle.dumps(knl) + assert pickle.loads(result) == knl + + _ = get_kernel_name_for_test(knl) + result = pickle.dumps(knl) + assert pickle.loads(result) == knl + +# }}} + # You can test individual routines by typing # $ python test_kernels.py 'test_p2p(_acf, True)' From a969c89841997f07e3e9d32dbc24e594b3e60d9b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 16 Mar 2026 13:30:41 +0200 Subject: [PATCH 270/335] fix: make TargetPointMultiplier a dataclass --- sumpy/kernel.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 3861f6509..df9c04686 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1447,6 +1447,7 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") +@dataclass(frozen=True) class TargetPointMultiplier(KernelWrapper): """Bases: :class:`Kernel` @@ -1463,8 +1464,8 @@ class TargetPointMultiplier(KernelWrapper): """Coordinate axis with which to multiply the kernel.""" def __init__(self, axis: int, inner_kernel: Kernel) -> None: - KernelWrapper.__init__(self, inner_kernel) - self.axis = axis + super().__init__(inner_kernel) + object.__setattr__(self, "axis", axis) @override def __str__(self) -> str: From 118ae83ba30ffb700aaef7b61b4c2acf108ce1f0 Mon Sep 17 00:00:00 2001 From: xywei Date: Tue, 17 Mar 2026 11:06:37 -0500 Subject: [PATCH 271/335] fix: correct NVIDIA queue guard in run_opencl_fft --- sumpy/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 952c594ca..99f4545e8 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1032,7 +1032,7 @@ def run_opencl_fft( # Not passing wait_for will wait for all events queued before # and therefore correctness is preserved if it's the same queue for evt in wait_for: - if not evt.command_queue != queue: + if evt.command_queue != queue: raise RuntimeError( "Different queues not supported with NVIDIA CUDA") start_evt = cl.enqueue_marker(queue) From 2a7adcd471067d6f133ce3dd02c295da53a085dd Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Tue, 20 Jan 2026 13:47:56 -0600 Subject: [PATCH 272/335] Add tests for compressed coefficient difference formula for L2L, M2M --- sumpy/test/coeff_test_tools.py | 68 ++++++++++ sumpy/test/test_l2l_coeffs.py | 211 +++++++++++++++++++++++++++++ sumpy/test/test_m2m_coeffs.py | 237 +++++++++++++++++++++++++++++++++ 3 files changed, 516 insertions(+) create mode 100644 sumpy/test/coeff_test_tools.py create mode 100644 sumpy/test/test_l2l_coeffs.py create mode 100644 sumpy/test/test_m2m_coeffs.py diff --git a/sumpy/test/coeff_test_tools.py b/sumpy/test/coeff_test_tools.py new file mode 100644 index 000000000..fa1d49af4 --- /dev/null +++ b/sumpy/test/coeff_test_tools.py @@ -0,0 +1,68 @@ +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2026 Shawn/Chaoqi Lin +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +import numpy as np +import sympy as sp + + +def to_scalar(val): + """Convert symbolic or array value to scalar.""" + if hasattr(val, "evalf"): + val = val.evalf() + if hasattr(val, "item"): + val = val.item() + return complex(val) + + +class NumericMatVecOperator: + """Wrapper for symbolic matrix-vector operator with numeric + substitution.""" + + def __init__(self, symbolic_op, repl_dict): + self.symbolic_op = symbolic_op + self.repl_dict = repl_dict + self.shape = symbolic_op.shape + + def matvec(self, vec): + result = self.symbolic_op.matvec(vec) + out = [] + for expr in result: + if hasattr(expr, "xreplace"): + out.append(complex(expr.xreplace(self.repl_dict).evalf())) + else: + out.append(complex(expr)) + return np.array(out) + + +def get_repl_dict(kernel, extra_kwargs): + """Numeric substitution for symbolic kernel parameters.""" + repl_dict = {} + if "lam" in extra_kwargs: + repl_dict[sp.Symbol("lam")] = extra_kwargs["lam"] + if "k" in extra_kwargs: + repl_dict[sp.Symbol("k")] = extra_kwargs["k"] + return repl_dict diff --git a/sumpy/test/test_l2l_coeffs.py b/sumpy/test/test_l2l_coeffs.py new file mode 100644 index 000000000..42ce8ea91 --- /dev/null +++ b/sumpy/test/test_l2l_coeffs.py @@ -0,0 +1,211 @@ +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2026 Shawn/Chaoqi Lin +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + + +import math +import sys +from typing import TYPE_CHECKING + +import numpy as np +import pytest +import scipy.special as spsp + +from arraycontext import ( + pytest_generate_tests_for_array_contexts, +) + +import sumpy.toys as t +from .coeff_test_tools import NumericMatVecOperator, get_repl_dict, to_scalar +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import ( + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, +) +from sumpy.kernel import ( + BiharmonicKernel, + HelmholtzKernel, + Kernel, + LaplaceKernel, + YukawaKernel, +) +from sumpy.tools import build_matrix + + +if TYPE_CHECKING: + from collections.abc import Mapping + + from arraycontext import ArrayContextFactory + + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +@pytest.mark.parametrize("knl,extra_kwargs", [ + (LaplaceKernel(2), {}), + (YukawaKernel(2), {"lam": 0.1}), + (HelmholtzKernel(2), {"k": 0.5}), + (BiharmonicKernel(2), {}), +]) +def test_l2l_coefficient_differences( + actx_factory: ArrayContextFactory, + knl: Kernel, + extra_kwargs: Mapping[str, float], + verbose: bool = True, + ): + """ + Tests that the expression for the difference between compressed and uncompressed + translation in the compressed-expansions paper matches implemented reality. + """ + order = 7 + dim = 2 + repl_dict = get_repl_dict(knl, extra_kwargs) + + # Setup sources and centers + source = np.array([[5.0], [5.0]]) + c1 = np.array([0.0, 0.0]) + c2 = c1 + np.array([-0.5, 1.0]) + strength = np.array([1.0]) + + actx = actx_factory() + toy_ctx = t.ToyContext( + knl, + local_expn_class=LinearPDEConformingVolumeTaylorLocalExpansion, + extra_kernel_kwargs=extra_kwargs + ) + toy_ctx_full = t.ToyContext( + knl, + local_expn_class=VolumeTaylorLocalExpansion, + extra_kernel_kwargs=extra_kwargs + ) + + # Compute expansions + p = t.PointSources(toy_ctx, source, weights=strength) + p_full = t.PointSources(toy_ctx_full, source, weights=strength) + + p2l = t.local_expand(actx, p, c1, order=order, rscale=1.0) + p2l2l = t.local_expand(actx, p2l, c2, order=order, rscale=1.0) + p2l_full = t.local_expand(actx, p_full, c1, order=order, rscale=1.0) + p2l2l_full = t.local_expand(actx, p2l_full, c2, order=order, rscale=1.0) + + # Build matrix M + p2l2l_expn = LinearPDEConformingVolumeTaylorLocalExpansion(knl, order) + wrangler = p2l2l_expn.expansion_terms_wrangler + M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # noqa: N806 + numeric_op = NumericMatVecOperator(M_symbolic, repl_dict) + M = build_matrix(numeric_op, dtype=np.complex128) # noqa: N806 + + # Get compressed coefficients + mu_c_symbolic = wrangler.get_full_kernel_derivatives_from_stored( + p2l2l.coeffs, rscale=1.0 + ) + mu_c = [] + for coeff in mu_c_symbolic: + if hasattr(coeff, "xreplace"): + mu_c.append(to_scalar(coeff.xreplace(repl_dict))) + else: + mu_c.append(to_scalar(coeff)) + + # Get identifiers + stored_identifiers = p2l2l_expn.get_coefficient_identifiers() + full_identifiers = p2l2l_expn.get_full_coefficient_identifiers() + lexpn = VolumeTaylorLocalExpansion(knl, order) + lexpn_idx = lexpn.get_full_coefficient_identifiers() + + h = c2 - c1 + global_const = to_scalar(knl.get_global_scaling_const()) + + if verbose: + print(f'\n{"="*104}') + print(f"L2L Verification: {type(knl).__name__} (order={order})") + print(f'{"="*104}') + print(f"c1 = {c1}, c2 = {c2}, h = {h}") + print() + print(f"{'i':>3s} | {'ν(i)':>15s} | {'|ν|':4s} | " # noqa: RUF001 + f"{'formula':>31s} | {'direct':>31s} | {'abs err':>10s}") + print("-" * 104) + + max_abs_error = 0.0 + + for i, nu_i in enumerate(full_identifiers): + i_card = sum(np.array(nu_i)) + + # Compute error by formula + error = 0.0 + 0.0j + for k, nu_jk in enumerate(stored_identifiers): + jk_card = sum(np.array(nu_jk)) + if jk_card >= i_card: + continue + + start_idx = math.comb(order - i_card + dim, dim) + end_idx = math.comb(order - jk_card + dim, dim) + + for q_idx in range(start_idx, end_idx): + nu_q = full_identifiers[q_idx] + nu_sum = tuple(map(sum, zip(nu_q, nu_jk, strict=True))) + if nu_sum not in full_identifiers: + continue + + deriv_idx = full_identifiers.index(nu_sum) + gamma_deriv = to_scalar(p2l_full.coeffs[deriv_idx]) + h_pow = np.prod(h ** np.array(nu_q)) + fact_nu_q = np.prod(spsp.factorial(nu_q)) + + error += -M[i, k] * gamma_deriv * h_pow / fact_nu_q + + error /= np.prod(spsp.factorial(nu_i)) + error *= global_const + + # Compute direct difference + true_i_idx = lexpn_idx.index(nu_i) + mu_full = to_scalar(p2l2l_full.coeffs[true_i_idx]) + direct_diff = (mu_full - mu_c[i]) / np.prod(spsp.factorial(nu_i)) + direct_diff *= global_const + + # Compute errors + abs_err = abs(error - direct_diff) + max_abs_error = max(max_abs_error, abs_err) + + if verbose: + print(f"{i:3d} | {nu_i!s:>15s} | {i_card:4d} | " + f"{error.real: .8e}{error.imag:+.8e}j | " + f"{direct_diff.real: .8e}{direct_diff.imag:+.8e}j | " + f"{abs_err:9.2e}") + + if verbose: + print(f"\nMaximum absolute error: {max_abs_error:.2e}") + + assert max_abs_error < 1e-10, \ + f"{type(knl).__name__}: error {max_abs_error:.2e}" + + +if __name__ == "__main__": + if len(sys.argv) > 1: + exec(sys.argv[1]) + else: + pytest.main([__file__]) diff --git a/sumpy/test/test_m2m_coeffs.py b/sumpy/test/test_m2m_coeffs.py new file mode 100644 index 000000000..59e5cdf91 --- /dev/null +++ b/sumpy/test/test_m2m_coeffs.py @@ -0,0 +1,237 @@ +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2026 Shawn/Chaoqi Lin +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + + +import math +import sys +from typing import TYPE_CHECKING + +import numpy as np +import pytest +import scipy.special as spsp + +from arraycontext import ( + pytest_generate_tests_for_array_contexts, +) + +import sumpy.toys as t +from .coeff_test_tools import NumericMatVecOperator, get_repl_dict, to_scalar +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import ( + LinearPDEConformingVolumeTaylorLocalExpansion, +) +from sumpy.expansion.multipole import ( + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, +) +from sumpy.kernel import ( + BiharmonicKernel, + HelmholtzKernel, + Kernel, + LaplaceKernel, + YukawaKernel, +) +from sumpy.tools import build_matrix + + +if TYPE_CHECKING: + from collections.abc import Mapping + + from arraycontext import ArrayContextFactory + + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +@pytest.mark.parametrize("knl,extra_kwargs", [ + (LaplaceKernel(2), {}), + (YukawaKernel(2), {"lam": 0.1}), + (HelmholtzKernel(2), {"k": 0.5}), + (BiharmonicKernel(2), {}), +]) +def test_m2m_coefficient_differences( + actx_factory: ArrayContextFactory, + knl: Kernel, + extra_kwargs: Mapping[str, float], + verbose: bool = True, + ): + """ + Compares two approaches: + 1. Compress coefficients -> embed -> M2M translate + 2. M2M translate with full coefficients + + Verifies the difference formula between these two approaches. + """ + order = 7 + dim = 2 + repl_dict = get_repl_dict(knl, extra_kwargs) + global_const = to_scalar(knl.get_global_scaling_const()) + + # Set up source, centers, and target + source = np.array([[0.0], [0.1]]) + strength = np.array([1.0]) + + m_center1 = np.array([0.0, 0.0]) + offset_direction = np.array([-0.5, 0.25]) + c2_c1_dist = 0.1 + m_center2 = m_center1 + c2_c1_dist * offset_direction + h = m_center2 - m_center1 + + target = np.array([[2.0], [2.0]]) + + if verbose: + print(f"M2M Coefficient Verification for {type(knl).__name__}:") + print(f"m_center1 = {m_center1}") + print(f"m_center2 = {m_center2}") + print(f"h = m_center2 - m_center1 = {h}") + print() + print(f"{'k':>3s} | {'ν(k)':>15s} | {'|ν(k)|':6s} | " # noqa: RUF001 + f"{'difference by formula':>31s} | " + f"{'difference by direct computation':>31s} | " + f"{'abs err':>10s}") + print("-" * 120) + + actx = actx_factory() + + toy_ctx_full = t.ToyContext( + knl, + mpole_expn_class=VolumeTaylorMultipoleExpansion, + extra_kernel_kwargs=extra_kwargs + ) + + toy_ctx_local = t.ToyContext( + knl, + local_expn_class=LinearPDEConformingVolumeTaylorLocalExpansion, + extra_kernel_kwargs=extra_kwargs + ) + + p_full = t.PointSources(toy_ctx_full, source, weights=strength) + p2m_full = t.multipole_expand(actx, p_full, m_center1, order=order, rscale=1.0) + + p_local = t.PointSources(toy_ctx_local, m_center2.reshape(2, 1), weights=strength) + p2l = t.local_expand(actx, p_local, target, order=order) + + mexpn = LinearPDEConformingVolumeTaylorMultipoleExpansion(knl, order) + + # Build matrix M + wrangler = mexpn.expansion_terms_wrangler + M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # noqa: N806 + numeric_op = NumericMatVecOperator(M_symbolic, repl_dict) + M = build_matrix(numeric_op, dtype=np.complex128) # noqa: N806 + coeffs_full = (M @ p2l.coeffs) * global_const + + # Get coefficient identifiers + stored_identifiers = mexpn.get_coefficient_identifiers() + full_identifiers = mexpn.get_full_coefficient_identifiers() + is_stored = [mi in stored_identifiers for mi in full_identifiers] + stored_indices = [i for i, st in enumerate(is_stored) if st] + + mexpn_full = VolumeTaylorMultipoleExpansion(knl, order) + mexpn_full_idx = mexpn_full.get_full_coefficient_identifiers() + + max_abs_error = 0.0 + + for k, nu_k in enumerate(full_identifiers): + k_card = sum(np.array(nu_k)) + # assume all coefficient values are 1 + alpha_k = 1 + + true_k_idx = mexpn_full_idx.index(nu_k) + basis_full = np.zeros(len(mexpn_full_idx), dtype=np.complex128) + basis_full[true_k_idx] = alpha_k + p2m_full_k = p2m_full.with_coeffs(basis_full) + + # M^T @ alpha + basis_cmp = np.zeros(M.shape[0], dtype=np.complex128) + basis_cmp[stored_indices] = M[k, :] * alpha_k + + # Embed back into full basis + basis_cmp_full = np.zeros(len(mexpn_full_idx), dtype=np.complex128) + for i, nu_i in enumerate(full_identifiers): + if basis_cmp[i] != 0: + true_i_idx = mexpn_full_idx.index(nu_i) + basis_cmp_full[true_i_idx] = basis_cmp[i] + + p2m_cmp_k = p2m_full.with_coeffs(basis_cmp_full) + + p2m2m_cmp = t.multipole_expand( + actx, p2m_cmp_k, m_center2, order=order + ).eval(actx, target) + p2m2m_full = t.multipole_expand( + actx, p2m_full_k, m_center2, order=order + ).eval(actx, target) + + direct_diff = (p2m2m_cmp - p2m2m_full)[0] + + error = 0.0 + 0.0j + for s, nu_js in enumerate(stored_identifiers): + nu_js_card = sum(np.array(nu_js)) + inner_sum = 0.0 + 0.0j + + if nu_js_card <= k_card: + start_idx = math.comb(order - k_card + dim, dim) + end_idx = math.comb(order - nu_js_card + dim, dim) + + for idx in range(start_idx, end_idx): + nu_l = full_identifiers[idx] + nu_sum = tuple(a + b for a, b in zip(nu_l, nu_js, strict=True)) + + if nu_sum not in full_identifiers: + continue + + derivative_idx = full_identifiers.index(nu_sum) + h_pow = np.prod(h ** np.array(nu_l)) + fact_nu_l = np.prod(spsp.factorial(nu_l)) + + inner_sum += coeffs_full[derivative_idx] * h_pow / fact_nu_l + + error += inner_sum * M[k, s] + + abs_err = abs(error - direct_diff) + max_abs_error = max(max_abs_error, abs_err) + + if verbose: + print(f"{k:3d} | {nu_k!s:>15s} | {k_card:6d} | " + f"{error.real: .8e}{error.imag:+.8e}j | " + f"{direct_diff.real: .8e}{direct_diff.imag:+.8e}j | " + f"{abs_err:9.2e}") + + if verbose: + print(f"\nMaximum absolute error: {max_abs_error:.2e}") + + assert max_abs_error < 1e-15, ( + f"{type(knl).__name__}: error {max_abs_error:.2e}" + ) + + +if __name__ == "__main__": + if len(sys.argv) > 1: + exec(sys.argv[1]) + else: + pytest.main([__file__]) From 9b0e892f0fd932d0edf9fd017a89751cf1e654d4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 18 Mar 2026 15:25:50 -0500 Subject: [PATCH 273/335] Update baseline --- .basedpyright/baseline.json | 4308 ++++++++++++++++++++--------------- 1 file changed, 2441 insertions(+), 1867 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index d183da00e..efee917ac 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -16244,118 +16244,116 @@ } } ], - "./sumpy/test/curve.py": [ + "./sumpy/test/coeff_test_tools.py": [ { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 19, - "endColumn": 41, + "startColumn": 7, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 55, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } - } - ], - "./sumpy/test/geometries.py": [ + }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 41, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 36, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 23, - "endColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, @@ -16367,90 +16365,106 @@ "lineCount": 1 } }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 13, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 24, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, + "startColumn": 21, "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 17, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 47, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 35, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnusedExpression", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 35, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, + "startColumn": 35, "endColumn": 39, "lineCount": 1 } @@ -16458,203 +16472,195 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 41, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 4, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 46, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 48, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } - }, + } + ], + "./sumpy/test/curve.py": [ { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 19, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 22, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } } ], - "./sumpy/test/test_codegen.py": [ + "./sumpy/test/geometries.py": [ { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { "startColumn": 28, - "endColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { "startColumn": 28, - "endColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 76, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_cse.py": [ - { - "code": "reportMissingTypeStubs", - "range": { - "startColumn": 9, - "endColumn": 38, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 23, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 32, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 0, - "endColumn": 1, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 3, - "endColumn": 4, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 6, - "endColumn": 7, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 10, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 13, + "startColumn": 16, "endColumn": 24, "lineCount": 1 } @@ -16662,231 +16668,235 @@ { "code": "reportAny", "range": { - "startColumn": 0, - "endColumn": 2, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 10, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 18, + "startColumn": 38, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 22, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedExpression", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 30, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 14, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 43, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 67, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 22, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 22, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_codegen.py": [ { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 75, + "endColumn": 76, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_cse.py": [ { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 9, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 9, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 31, + "startColumn": 9, "endColumn": 32, "lineCount": 1 } @@ -16894,112 +16904,104 @@ { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 0, + "endColumn": 1, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 29, + "startColumn": 3, + "endColumn": 4, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 6, + "endColumn": 7, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 9, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 0, + "endColumn": 2, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 8, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 43, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 45, + "startColumn": 16, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 28, + "endColumn": 30, "lineCount": 1 } }, @@ -17014,207 +17016,207 @@ { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 40, + "startColumn": 56, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { "startColumn": 4, - "endColumn": 5, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 51, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 51, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 27, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 31, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 33, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 64, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, + "startColumn": 32, "endColumn": 34, "lineCount": 1 } @@ -17222,151 +17224,151 @@ { "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 42, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 59, + "startColumn": 44, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 36, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 39, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 41, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 37, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 49, - "endColumn": 51, + "startColumn": 37, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 48, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, + "startColumn": 36, "endColumn": 38, "lineCount": 1 } @@ -17374,79 +17376,79 @@ { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 51, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 53, - "lineCount": 1 + "startColumn": 34, + "endColumn": 51, + "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 32, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 35, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 18, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, + "startColumn": 25, "endColumn": 27, "lineCount": 1 } @@ -17455,290 +17457,298 @@ "code": "reportAny", "range": { "startColumn": 29, - "endColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 25 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 62, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 46, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 58, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 50, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 35, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 15, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 13, + "startColumn": 15, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 35, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 49, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 52, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 46, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 15, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 51, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 15, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 26, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 14, + "lineCount": 25 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -17759,23 +17769,23 @@ "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, @@ -17783,202 +17793,218 @@ "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 23, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 39, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 19, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 46, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 12, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 41, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, + "startColumn": 19, "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, "endColumn": 33, "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -17990,16 +18016,16 @@ { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, @@ -18007,230 +18033,766 @@ "code": "reportAny", "range": { "startColumn": 18, - "endColumn": 20, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 12, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 24, - "endColumn": 30, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 41, + "startColumn": 15, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 49, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", + "range": { + "startColumn": 28, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", "range": { "startColumn": 12, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 13, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 15, "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 27, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 34, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 14, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 15, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIndexIssue", + "range": { + "startColumn": 22, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 14, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 32, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 30, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 30, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 47, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 36, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportConstantRedefinition", + "range": { + "startColumn": 4, + "endColumn": 8, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 11, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 21, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 17, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 15, + "endColumn": 28, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_distributed.py": [ + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 8, + "endColumn": 12, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 39, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 41, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 27, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 40, + "endColumn": 54, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 62, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 62, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, + "startColumn": 45, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportConstantRedefinition", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 34, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 42, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 32, + "startColumn": 39, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_distributed.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 18, "endColumn": 25, @@ -18240,978 +18802,978 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 70, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 42, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 36, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 53, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 73, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 28, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 15, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOptionalSubscript", "range": { "startColumn": 40, - "endColumn": 54, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { "startColumn": 40, - "endColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 46, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 46, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, + "startColumn": 39, "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 49, - "endColumn": 54, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 80, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_fmm.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 53, - "endColumn": 61, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 84, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 42, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 60, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 51, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 69, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 59, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 42, + "startColumn": 16, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 41, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 66, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 58, + "startColumn": 61, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 67, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 70, + "startColumn": 37, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 62, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } - } - ], - "./sumpy/test/test_fmm.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOptionalOperand", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 24, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 21, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 8, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 68, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportRedeclaration", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 16, - "endColumn": 39, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 64, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 66, - "endColumn": 73, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 61, - "endColumn": 77, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, + "startColumn": 56, "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 62, - "endColumn": 69, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 56, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportOptionalOperand", + "code": "reportUnusedParameter", "range": { - "startColumn": 24, - "endColumn": 68, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 15, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 60, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 64, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 68, - "endColumn": 84, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportRedeclaration", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 27, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, @@ -19219,7 +19781,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 35, - "endColumn": 41, + "endColumn": 46, "lineCount": 1 } }, @@ -19227,7 +19789,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 35, - "endColumn": 41, + "endColumn": 46, "lineCount": 1 } }, @@ -19235,2056 +19797,2032 @@ "code": "reportUnusedParameter", "range": { "startColumn": 35, - "endColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnusedParameter", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnusedParameter", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 27, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 14, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 17, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 8, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 52, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 70, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 71, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 12, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 36, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 55, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 48, - "endColumn": 55, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 64, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 12, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 67, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 11, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 45, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 38, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 51, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 39, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 74, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 15, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 79, + "startColumn": 22, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 57, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 56, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 8, - "endColumn": 22, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportCallIssue", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 70, - "endColumn": 76, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 23, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 37, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 58, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 79, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 73, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_kernels.py": [ { - "code": "reportGeneralTypeIssues", + "code": "reportUnusedImport", "range": { - "startColumn": 12, - "endColumn": 49, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 76, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 48, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 48, + "startColumn": 66, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 30, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 28, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 32, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 52, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 12, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 39, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 18, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 + "startColumn": 19, + "endColumn": 53, + "lineCount": 2 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 14, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 14, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 12, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 60, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 79, - "endColumn": 83, + "startColumn": 42, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } - } - ], - "./sumpy/test/test_kernels.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 60, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 66, - "endColumn": 78, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 50, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 36, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 61, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 58, + "startColumn": 22, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 69, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 52, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 23, "endColumn": 57, - "lineCount": 1 + "lineCount": 2 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, + "startColumn": 49, "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 58, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 64, + "startColumn": 34, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 53, - "lineCount": 2 + "startColumn": 51, + "endColumn": 60, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 26, + "startColumn": 18, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 20, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 46, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 50, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 17, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 17, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 34, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 46, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 57, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 28, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 60, + "startColumn": 41, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 41, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 64, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 68, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 69, - "endColumn": 76, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 52, - "endColumn": 59, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 2 + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 56, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 61, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, - "endColumn": 60, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 33, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 23, + "startColumn": 42, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 + "startColumn": 14, + "endColumn": 41, + "lineCount": 15 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 + "startColumn": 14, + "endColumn": 46, + "lineCount": 15 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 27, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 41, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 54, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 7, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 60, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, - "lineCount": 1 + "startColumn": 29, + "endColumn": 57, + "lineCount": 2 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 8, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 51, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 46, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, + "startColumn": 8, "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 53, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 46, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 55, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 69, + "startColumn": 50, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 8, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 45, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 63, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 8, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 52, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 15, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 42, - "endColumn": 49, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 15 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 46, - "lineCount": 15 + "startColumn": 36, + "endColumn": 43, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 48, + "startColumn": 70, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 7, - "endColumn": 14, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 63, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 57, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 17, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 54, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 59, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 45, + "startColumn": 21, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 56, + "startColumn": 21, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 59, + "startColumn": 30, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 47, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 58, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 63, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 42, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 56, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 61, + "startColumn": 73, + "endColumn": 83, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 79, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 11, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 37, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 42, - "endColumn": 50, + "startColumn": 60, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 17, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 80, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 77, + "endColumn": 82, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 20, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 59, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, + "startColumn": 31, "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 17, - "endColumn": 42, + "startColumn": 26, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 28, - "endColumn": 38, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 51, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 53, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, + "startColumn": 38, "endColumn": 43, "lineCount": 1 } @@ -21292,424 +21830,442 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 4, - "endColumn": 25, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 75, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 80, + "endColumn": 85, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 26, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 18, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 71, + "startColumn": 58, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 19, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 73, - "endColumn": 83, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 31, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 35, + "startColumn": 19, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 60, - "endColumn": 70, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 58, + "startColumn": 8, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 31, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 77, - "endColumn": 82, + "startColumn": 33, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 40, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 65, + "startColumn": 16, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 64, + "startColumn": 16, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 24, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 43, + "startColumn": 23, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 44, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 36, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 43, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 23, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 22, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 43, + "startColumn": 23, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 75, - "endColumn": 78, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 31, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 80, - "endColumn": 85, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 57, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 61, + "startColumn": 4, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 58, + "startColumn": 14, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_l2l_coeffs.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 17, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 26, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 69, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, + "startColumn": 12, "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 63, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 40, - "endColumn": 62, + "endColumn": 66, "lineCount": 1 } }, @@ -21717,86 +22273,96 @@ "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 23, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 28, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 37, + "startColumn": 28, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, + "startColumn": 22, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 48, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 44, - "endColumn": 47, + "endColumn": 60, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_m2m_coeffs.py": [ + { + "code": "reportUnusedImport", + "range": { + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 44, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 24, + "startColumn": 17, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 26, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, + "startColumn": 39, "endColumn": 49, "lineCount": 1 } @@ -21804,80 +22370,88 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 27, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 20, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 46, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 43, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 21, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 7, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 35, + "startColumn": 44, + "endColumn": 60, "lineCount": 1 } } From 709c65247349e81c89666594f4981c5cc0e4d747 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 5 Apr 2026 15:53:30 -0500 Subject: [PATCH 274/335] Update baseline --- .basedpyright/baseline.json | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index efee917ac..a62e1b170 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -17,6 +17,14 @@ "lineCount": 1 } }, + { + "code": "reportEmptyAbstractUsage", + "range": { + "startColumn": 22, + "endColumn": 50, + "lineCount": 1 + } + }, { "code": "reportCallIssue", "range": { @@ -16867,6 +16875,14 @@ "lineCount": 1 } }, + { + "code": "reportEmptyAbstractUsage", + "range": { + "startColumn": 11, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportArgumentType", "range": { @@ -22131,6 +22147,14 @@ "lineCount": 1 } }, + { + "code": "reportEmptyAbstractUsage", + "range": { + "startColumn": 22, + "endColumn": 67, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -22865,6 +22889,14 @@ "lineCount": 1 } }, + { + "code": "reportEmptyAbstractUsage", + "range": { + "startColumn": 11, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -24759,6 +24791,14 @@ } ], "./sumpy/test/test_target_deriv.py": [ + { + "code": "reportEmptyAbstractUsage", + "range": { + "startColumn": 16, + "endColumn": 56, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { From e4ac608987b1aeed38a0424fe018bce9f0543fcc Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 22 Nov 2025 20:25:53 +0200 Subject: [PATCH 275/335] 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 68d1bdc00..2436e30a5 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 07b828538ed0cb050f6d6e7b1776e2dbb46f3c28 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:03 +0200 Subject: [PATCH 276/335] 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 749be0359..3092aed80 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 7f30e7784ac8e4374a4bbe403c16614f553eeee2 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:24 +0200 Subject: [PATCH 277/335] 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 99f4545e8..755f13ad0 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 a83c46ef74374af70d71791c3746ff23051c0ef3 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 23 Nov 2025 14:52:41 +0200 Subject: [PATCH 278/335] 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 a72f1c583..384308b8a 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 be03a8b438c2a2061445b6591ad9864032b7433b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Mon, 24 Nov 2025 11:19:25 +0200 Subject: [PATCH 279/335] 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 34f17e716..86f24b253 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 d2e6bba38605246eb33669e7ed7a2ec436083644 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 15:51:38 +0300 Subject: [PATCH 280/335] 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 157436273..fe9a5cda1 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 4700f0b2559128309b6e9719d41e1549ea5a23c4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 16:02:29 +0300 Subject: [PATCH 281/335] 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 9013483ac..78ca6f540 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 384308b8a..120693f97 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -88,8 +88,9 @@ Common subexpression elimination -------------------------------- +.. autoclass:: OptimizationCallable +.. autoclass:: OptimizationPair .. autofunction:: cse - """ From e6f52c294d0092df445188ad9db402a227d5f942 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 9 Apr 2026 11:06:59 -0500 Subject: [PATCH 282/335] 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 8c0e17720..bdb46e158 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 3092aed80..45f4b7675 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 104452725..0e5bdfd76 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 b662808c3..a52cfbb5b 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 ed42212fa..5a77df51f 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 7cf2dc757..ad80cdd77 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 5c7428c9b..edbe5519c 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 69eacc98c7a53f19f604f726764461c76ff6e27d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 9 Apr 2026 15:51:55 +0300 Subject: [PATCH 283/335] 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 a62e1b170..53900ca23 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", From 8557d8e014fb1b8333561c67e253841f379e5047 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 20 Apr 2026 09:53:56 -0500 Subject: [PATCH 284/335] Git ignore .venv --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ab75b2eeb..3f27eed10 100644 --- a/.gitignore +++ b/.gitignore @@ -20,5 +20,6 @@ doc/_build sumpy/_git_rev.py .asv +.venv *.vts From 67c5eebe2e3183f8cdb3c12e0dfdb4bcdeca00f4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 20 Apr 2026 09:54:10 -0500 Subject: [PATCH 285/335] Bpr ignore .venv --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3233fc0e5..af402d9ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -186,6 +186,7 @@ exclude = [ "benchmarks", "contrib", ".conda-root", + ".venv", ] [[tool.basedpyright.executionEnvironments]] @@ -223,4 +224,3 @@ reportUnknownMemberType = "hint" reportMissingImports = "none" reportArgumentType = "hint" reportOperatorIssue = "hint" - From de2c536dd0d8fe768857155fb92a59036b6be9de Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 8 May 2026 14:39:44 +0300 Subject: [PATCH 286/335] feat: check inputs in SpatialConstant.from_sympy --- sumpy/symbolic.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 0459485fc..7c9904370 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -284,13 +284,16 @@ class SpatialConstant(prim.Variable): """Prefix used in code generation for variables of this type.""" def as_sympy(self) -> Symbol: - """Convert variable to a :mod:`sympy` expression.""" + """Convert this variable to a :mod:`sympy` expression.""" return Symbol(f"{self.prefix}{self.name}") @classmethod def from_sympy(cls, expr: Symbol) -> SpatialConstant: - """Convert :mod:`sympy` expression to a constant.""" - return cls(expr.name[len(cls.prefix):]) + """Convert a :mod:`sympy` expression to a constant.""" + if isinstance(expr, Symbol) and expr.name.startswith(cls.prefix): + return cls(expr.name[len(cls.prefix):]) + + raise ValueError(f"expression is not a spatial constant: {expr!r}") class PymbolicToSympyMapper(PymbolicToSympyMapperBase): @@ -301,10 +304,10 @@ def map_spatial_constant(self, expr: SpatialConstant) -> Basic: class SympyToPymbolicMapper(SympyToPymbolicMapperBase): @override def map_Symbol(self, expr: Symbol) -> Expression: - if expr.name.startswith(SpatialConstant.prefix): + try: return SpatialConstant.from_sympy(expr) - - return SympyToPymbolicMapperBase.map_Symbol(self, expr) + except ValueError: + return SympyToPymbolicMapperBase.map_Symbol(self, expr) @override def map_Pow(self, expr: Pow) -> Expression: From 88b56a23c9c1b056cb7b023480d119e7a979a3b5 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 10 May 2026 17:18:02 +0300 Subject: [PATCH 287/335] feat: add Brinkman velocity and stress kernels --- sumpy/kernel.py | 279 ++++++++++++++++++++++++++++++++++++- sumpy/test/test_kernels.py | 31 ++++- sumpy/test/test_misc.py | 15 +- 3 files changed, 320 insertions(+), 5 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index df9c04686..236d3b58a 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -106,6 +106,12 @@ .. autoclass:: LineOfCompressionKernel :show-inheritance: :members: mapper_method +.. autoclass:: BrinkmanletKernel + :show-inheritance: + :members: mapper_method +.. autoclass:: BrinkmanStressKernel + :show-inheritance: + :members: mapper_method Derivatives ----------- @@ -724,7 +730,7 @@ def __reduce__(self) -> tuple[object, ...]: @property @override def is_complex_valued(self) -> bool: - # FIXME + # FIXME: 2D uses Hankel functions (complex-valued); 3D uses real exp return True @override @@ -1119,6 +1125,273 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return laplacian(w) +@dataclass(frozen=True, repr=False) +class BrinkmanletKernel(ExpressionKernel): + r"""A kernel for the Brinkman equations. + + .. math:: + + \begin{cases} + -\mu (\Delta K_{ij}(\mathbf{x}, \mathbf{y}) + - k^2 K_{ij}(\mathbf{x}, \mathbf{y})) + + \nabla_i P_j(\mathbf{x}, \mathbf{y}) + = \delta_{ij}(\mathbf{x} - \mathbf{y}), \\ + \nabla_i K_{ij} = 0, + \end{cases} + + where :math:`P_j` is the pressure kernel. + """ + + mapper_method: ClassVar[str] = "map_brinkmanlet_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" + + viscosity_mu_name: str + """The argument name to use for the dynamic viscosity when generating + functions to evaluate this kernel. + """ + darcy_impermeability_name: str + """The argument name to use for the Darcy impermeability when generating + functions to evaluate this kernel. + """ + + def __init__(self, + dim: int, + icomp: int, + jcomp: int, + viscosity_mu_name: str = "mu", + darcy_impermeability_name: str = "k") -> None: + mu = SpatialConstant(viscosity_mu_name) + k = SpatialConstant(darcy_impermeability_name) + + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + R = k * r # noqa: N806 + delta_ij = 1 if icomp == jcomp else 0 + + # NOTE: + # [1] C. Pozrikidis, A Practical Guide to Boundary Element Methods, + # CRC Press, 2002. + # [2] https://dlmf.nist.gov/10.27#E8 + # [3] https://doi.org/10.1080/00036811.2011.614604 + # [4] https://doi.org/10.1002/mana.200710797 + + if dim == 2: + # transforming Bessel functions to Hankel functions using [2] + K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # noqa: N806 + K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # noqa: N806 + + # [1] Equations 7.7.5 and 7.7.6 + # [3] Equations 5.2 and 5.3 (for the scaling we use here) + a = 2 * (K0 + K1 / R - 1 / R**2) + b = 2 * (2 / R**2 - 2 * K1 / R - K0) + expr = a * delta_ij + b * d[icomp] * d[jcomp] / r ** 2 + scaling = -1 / (4 * var("pi") * mu) + elif dim == 3: + # [4] Equations 4.2 and 4.3 + a = 2 * var("exp")(-R) * (1 + 1 / R + 1 / R**2) - 2 / R**2 + b = 6 / R**2 - 2 * var("exp")(-R) * (1 + 3 / R + 3 / R**2) + expr = a * delta_ij / r + b * d[icomp] * d[jcomp] / r ** 3 + scaling = -1 / (8 * var("pi") * mu) + else: + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + from pymbolic.mapper.flattener import flatten + + super().__init__(dim, + expression=flatten(expr), + global_scaling_const=flatten(scaling)) + + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) + object.__setattr__(self, "darcy_impermeability_name", darcy_impermeability_name) + + @override + def __reduce__(self) -> tuple[object, ...]: + return ( + self.__class__, + (self.dim, self.icomp, self.jcomp, + self.viscosity_mu_name, self.darcy_impermeability_name), + ) + + @property + @override + def is_complex_valued(self) -> bool: + # FIXME: 2D uses Hankel functions (complex-valued); 3D uses real exp + return self.dim == 2 + + @override + def __str__(self) -> str: + return ( + f"BrinkmanletKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") + + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: + from sumpy.codegen import register_bessel_callables + return register_bessel_callables(loopy_knl) + + @memoize_method + @override + def get_args(self) -> Sequence[KernelArgument]: + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 + ] + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + + w = make_identity_diff_op(self.dim) + k = sym.Symbol(self.darcy_impermeability_name) + return laplacian(laplacian(w) - k**2 * w) + + +@dataclass(frozen=True, repr=False) +class BrinkmanStressKernel(ExpressionKernel): + r"""A kernel for the Brinkman equations. + + .. math:: + + K_{ijk} = + -p_j \delta_{ik} + + \mu (\partial_k K_{ij} + \partial_i K_{jk}), + + where the two-index :math:`K_{ij}` is the :class:`~sumpy.kernel.BrinkmanletKernel` + and :math:`P_j` is the pressure kernel. + """ + + mapper_method: ClassVar[str] = "map_brinkman_stress_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" + kcomp: int + """Component index for the kernel.""" + + # NOTE: we keep the viscosity_mu_name for symmetry with the BrinkmanKernel, + # even though it isn't actually used in the stress kernel + viscosity_mu_name: str + """The argument name to use for the dynamic viscosity when generating + functions to evaluate this kernel. + """ + darcy_impermeability_name: str + """The argument name to use for the Darcy impermeability when generating + functions to evaluate this kernel. + """ + + def __init__(self, + dim: int, + icomp: int, + jcomp: int, + kcomp: int, + viscosity_mu_name: str = "mu", + darcy_impermeability_name: str = "k") -> None: + k = SpatialConstant(darcy_impermeability_name) + + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + R = k * r # noqa: N806 + delta_ij = 1 if icomp == jcomp else 0 + delta_ik = 1 if icomp == kcomp else 0 + delta_kj = 1 if jcomp == kcomp else 0 + + # NOTE: + # [1] C. Pozrikidis, A Practical Guide to Boundary Element Methods, + # CRC Press, 2002. + # [2] https://dlmf.nist.gov/10.27#E8 + # [3] https://doi.org/10.1080/00036811.2011.614604 + # [4] https://doi.org/10.1002/mana.200710797 + + if dim == 2: + # transforming Bessel functions to Hankel functions using [2] + K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # noqa: N806 + K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # noqa: N806 + + # [1] Equations 7.7.7 and 7.7.8 + # [3] Equations 5.4-5.6 (for the scaling we use here) + a = 2 * (2 / R**2 - 2 * K1 / R - K0) + b = 8 / R**2 - 4*K0 - 2*(R + 4 / R)*K1 + c = b + R * K1 + expr = ( + 2 * (a - 1) * d[jcomp] / r**2 * delta_ik + + b * (d[kcomp] * delta_ij + d[icomp] * delta_kj) / r**2 + - 4 * c * d[icomp] * d[jcomp] * d[kcomp] / r**4 + ) + scaling = -1 / (4 * var("pi")) + elif dim == 3: + # [4] Equations 4.4-4.6 + d1 = 2 * var("exp")(-R) * (1 + 3 / R + 3 / R**2) - 6 / R**2 + 1 + d2 = var("exp")(-R) * (R + 3 + 6 / R + 6 / R**2) - 6 / R**2 + d3 = var("exp")(-R) * (-2 * R - 12 - 30 / R - 30 / R**2) + 30 / R**2 + expr = ( + d1 * d[jcomp] / r**3 * delta_ik + + d2 * (d[kcomp] * delta_ij + d[icomp] * delta_kj) / r**3 + + d3 * d[icomp] * d[jcomp] * d[kcomp] / r**5 + ) + scaling = 1/(4*var("pi")) + else: + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + from pymbolic.mapper.flattener import flatten + + super().__init__(dim, + expression=flatten(expr), + global_scaling_const=flatten(scaling)) + + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "kcomp", kcomp) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) + object.__setattr__(self, "darcy_impermeability_name", darcy_impermeability_name) + + @override + def __reduce__(self) -> tuple[object, ...]: + return ( + self.__class__, + (self.dim, self.icomp, self.jcomp, self.kcomp, + self.viscosity_mu_name, self.darcy_impermeability_name), + ) + + @property + @override + def is_complex_valued(self) -> bool: + # 2D uses Hankel functions (complex-valued); 3D uses real exp + return self.dim == 2 + + @override + def __str__(self) -> str: + return ( + f"BrinkmanStressKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") + + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: + from sumpy.codegen import register_bessel_callables + return register_bessel_callables(loopy_knl) + + @memoize_method + @override + def get_args(self) -> Sequence[KernelArgument]: + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 + ] + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + + w = make_identity_diff_op(self.dim) + k = sym.Symbol(self.darcy_impermeability_name) + return laplacian(laplacian(w) - k**2 * w) + # }}} @@ -1590,6 +1863,8 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: map_elasticity_kernel = map_expression_kernel map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel + map_brinkmanlet_kernel = map_expression_kernel + map_brinkman_stress_kernel = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) @@ -1662,6 +1937,8 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> int: map_yukawa_kernel = map_expression_kernel map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel + map_brinkmanlet_kernel = map_expression_kernel + map_brinkman_stress_kernel = map_expression_kernel @override def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 24fa71087..297bfe09f 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -62,6 +62,8 @@ from sumpy.kernel import ( AxisTargetDerivative, BiharmonicKernel, + BrinkmanletKernel, + BrinkmanStressKernel, DirectionalSourceDerivative, ElasticityKernel, HelmholtzKernel, @@ -528,6 +530,10 @@ def test_p2e2p( VolumeTaylorMultipoleExpansion, False), (StokesletKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion, False), + (BrinkmanletKernel(2, 0, 0), VolumeTaylorLocalExpansion, + VolumeTaylorMultipoleExpansion, False), + (BrinkmanStressKernel(2, 0, 0, 0), VolumeTaylorLocalExpansion, + VolumeTaylorMultipoleExpansion, False), ]) def test_translations( actx_factory: ArrayContextFactory, @@ -547,8 +553,16 @@ def test_translations( extra_kwargs = {} if isinstance(knl, HelmholtzKernel): extra_kwargs["k"] = 0.05 - if isinstance(knl, StokesletKernel): + elif isinstance(knl, YukawaKernel): + extra_kwargs["lam"] = 0.05 + elif isinstance(knl, (StokesletKernel, StressletKernel)): extra_kwargs["mu"] = 0.05 + elif isinstance(knl, ElasticityKernel): + extra_kwargs["mu"] = 0.05 + extra_kwargs["nu"] = 0.1 + elif isinstance(knl, (BrinkmanletKernel, BrinkmanStressKernel)): + extra_kwargs["mu"] = 0.1 + extra_kwargs["k"] = 0.1 # Just to make sure things also work away from the origin rng = np.random.default_rng(18) @@ -587,8 +601,11 @@ def test_translations( del eval_offset - if knl.dim == 2: # noqa: SIM108 - orders = [2, 3, 4] + if knl.dim == 2: + if isinstance(knl, BrinkmanStressKernel): # noqa: SIM108 + orders = [3, 4, 5] + else: + orders = [2, 3, 4] else: orders = [3, 4, 5] @@ -944,6 +961,14 @@ def get_kernel_name_for_test(knl: Kernel) -> Callable[[str], str]: @pytest.mark.parametrize("knl", [ BiharmonicKernel(2), + BrinkmanletKernel(2, 0, 1), + BrinkmanletKernel(3, 0, 0, + viscosity_mu_name="viscosity", + darcy_impermeability_name="kappa"), + BrinkmanStressKernel(2, 0, 1, 0), + BrinkmanStressKernel(3, 0, 0, 1, + viscosity_mu_name="viscosity", + darcy_impermeability_name="kappa"), ElasticityKernel(2, 0, 0), HelmholtzKernel(3, helmholtz_k_name="kay"), LaplaceKernel(3), diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index ce85f30b5..df3fc2081 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -57,6 +57,8 @@ ) from sumpy.kernel import ( BiharmonicKernel, + BrinkmanletKernel, + BrinkmanStressKernel, ElasticityKernel, ExpressionKernel, HelmholtzKernel, @@ -91,6 +93,9 @@ def __init__(self, kernel, **kwargs): eq = diff_op.eqs[0] self.eq = eq + def __repr__(self) -> str: + return str(self.kernel) + def pde_func(self, cp, pot): subs_dict = {sym.Symbol(k): v for k, v in self.extra_kwargs.items()} result = 0 @@ -130,7 +135,15 @@ def nderivs(self): KernelInfo(ElasticityKernel(3, 0, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 1), mu=5, nu=0.2), - ]) + KernelInfo(BrinkmanletKernel(2, 0, 1), mu=5, k=3), + KernelInfo(BrinkmanletKernel(2, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanletKernel(3, 0, 1), mu=5, k=3), + KernelInfo(BrinkmanletKernel(3, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanStressKernel(2, 0, 1, 0), mu=5, k=3), + KernelInfo(BrinkmanStressKernel(2, 0, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanStressKernel(3, 0, 1, 0), mu=5, k=3), + KernelInfo(BrinkmanStressKernel(3, 0, 1, 2), mu=5, k=3), + ], ids=repr) def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5): actx = actx_factory() From d6c9730f7f0655cdbc30f8635174d79eee88cc95 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 10 May 2026 17:26:07 +0300 Subject: [PATCH 288/335] chore: update baseline --- .basedpyright/baseline.json | 272 +++++++++--------------------------- 1 file changed, 64 insertions(+), 208 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 53900ca23..f474ccebd 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -2419,22 +2419,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -2443,22 +2427,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -2467,22 +2435,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 70, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -5941,30 +5893,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -10727,6 +10655,22 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -10935,6 +10879,22 @@ "lineCount": 1 } }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 30, + "lineCount": 1 + } + }, { "code": "reportUnusedParameter", "range": { @@ -10991,6 +10951,22 @@ "lineCount": 1 } }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnannotatedClassAttribute", + "range": { + "startColumn": 4, + "endColumn": 30, + "lineCount": 1 + } + }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -11129,22 +11105,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -11971,14 +11931,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -12699,14 +12651,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -12715,22 +12659,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -12739,78 +12667,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -12819,14 +12675,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -22465,6 +22313,22 @@ "lineCount": 1 } }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 30, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -23577,14 +23441,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { From c3e1a734b1a9032708bf4bd514f76f5757d676ad Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Thu, 14 May 2026 09:44:01 +0300 Subject: [PATCH 289/335] fix: remove redundant flatten in Brinkman kernels --- sumpy/kernel.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 236d3b58a..5fbb99d2f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1199,11 +1199,7 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - from pymbolic.mapper.flattener import flatten - - super().__init__(dim, - expression=flatten(expr), - global_scaling_const=flatten(scaling)) + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) @@ -1339,11 +1335,7 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - from pymbolic.mapper.flattener import flatten - - super().__init__(dim, - expression=flatten(expr), - global_scaling_const=flatten(scaling)) + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) From c99bab21499e87412bbbe2764c82b962dea6e15b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 11:21:25 +0300 Subject: [PATCH 290/335] docs: add more docs to LinearPDESystemOperator --- sumpy/expansion/diff_op.py | 84 +++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 20 deletions(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index b71d88b58..4f8866734 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -25,6 +25,7 @@ import logging from dataclasses import dataclass +from functools import cached_property from itertools import accumulate from typing import TYPE_CHECKING, TypeAlias @@ -92,23 +93,32 @@ class DerivativeIdentifier: class LinearPDESystemOperator: r""" Represents a constant-coefficient linear differential operator of a - vector-valued function with `dim` spatial variables. + vector-valued function with :attr:`dim` spatial variables. - It is represented by a tuple of immutable dictionaries. The dictionary maps a - :class:`DerivativeIdentifier` to the coefficient. Optionally supports a - time variable as the last variable in the multi-index of the - :class:`DerivativeIdentifier`. + The operator is given by a tuple of immutable dictionaries. The dictionary + maps a :class:`DerivativeIdentifier` to a (time- and space-independent) + coefficient. It optionally supports a time variable as the last element in + the multi-index of the :class:`DerivativeIdentifier`. + + The class also supports basic arithmetic, i.e. multiplication and addition + with other operators and constants. .. autoattribute:: dim .. autoattribute:: eqs + .. autoproperty:: is_time_dependent .. autoproperty:: order .. autoproperty:: total_dims .. automethod:: to_sym """ dim: int + """The total number of spatial dimensions of the PDE (use :attr:`total_dims` + to include time). + """ + eqs: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] + """A tuple of all the equations in the system.""" if __debug__: @@ -116,13 +126,7 @@ def __post_init__(self) -> None: # NOTE: this will raise a TypeError if it's not hashable _ = hash(self) - @property - def order(self) -> int: - deg = 0 - for eq in self.eqs: - deg = max(deg, max(sum(ident.mi) for ident in eq)) - - return deg + # {{{ arithmetic def __mul__(self, other: Number | sym.Expr) -> LinearPDESystemOperator: import numbers @@ -170,6 +174,8 @@ def __sub__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: def __neg__(self) -> LinearPDESystemOperator: return (-1) * self + # }}} + @override def __repr__(self) -> str: return f"LinearPDESystemOperator({self.dim}, {self.eqs!r})" @@ -180,29 +186,67 @@ def __getitem__(self, idx: int | slice) -> LinearPDESystemOperator: return LinearPDESystemOperator(self.dim, eqs) @property + def is_time_dependent(self) -> bool: + """Is *True* if the PDE operator has a time component.""" + return self.dim != self.total_dims + + @cached_property + def order(self) -> int: + """The order of the PDE operator (maximum order of all derivatives).""" + deg = 0 + for eq in self.eqs: + deg = max(deg, max(sum(ident.mi) for ident in eq)) + + return deg + + @cached_property def total_dims(self) -> int: - """ - Returns the total number of dimensions including time - """ - did = next(iter(self.eqs[0].keys())) + """The total number of dimensions (including time).""" + did = next(iter(self.eqs[0])) return len(did.mi) - def to_sym(self, fnames: Sequence[str] | None = None) -> list[sym.Expr]: - x: list[sym.Expr] = list(sym.make_sym_vector("x", self.dim)) - x.extend(sym.make_sym_vector("t", self.total_dims - self.dim)) + @cached_property + def nvariables(self) -> int: + """Number of variables in the system.""" + max_vec_idx = max((did.vec_idx for eq in self.eqs for did in eq), default=-1) + return max_vec_idx + 1 + + def to_sym( + self, + fnames: Sequence[str] | None = None, + *, + x_var_name: str = "x", + t_var_name: str = "t", + ) -> list[sym.Expr]: + """Transform the system to a list of :mod:`sympy` expressions. + + :arg fnames: the names of the variables in the system. + (defaults to `["f0", "f1", ....]`) + :arg x_var_name: the name of the spatial variables. + (defaults to `["x0", "x1", ....]`) + :arg t_var_name: the name of the temporal variables. + """ + x: list[sym.Expr] = list(sym.make_sym_vector(x_var_name, self.dim)) + x.extend(sym.make_sym_vector(t_var_name, self.total_dims - self.dim)) if fnames is None: noutputs = 0 for eq in self.eqs: for deriv_ident in eq: noutputs = max(noutputs, deriv_ident.vec_idx) + fnames = [f"f{i}" for i in range(noutputs+1)] funcs = [sym.Function(fname)(*x) for fname in fnames] + if len(funcs) < self.nvariables: + raise ValueError( + f"'fnames' does not match system: {len(fnames)} names " + f"(for a system of {self.nvariables} variables)" + ) res: list[sym.Expr] = [] for eq in self.eqs: - sym_eq: sym.Expr = sym.sympify(0) + sym_eq: sym.Expr = sym.Integer(0) for deriv_ident, coeff in eq.items(): expr = funcs[deriv_ident.vec_idx] for i, val in enumerate(deriv_ident.mi): From ab300c3053925a6a556419f2bda5e0f667f323c5 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 11:22:27 +0300 Subject: [PATCH 291/335] feat: add a helper function to create Fourier symbol --- sumpy/expansion/diff_op.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 4f8866734..6ce921450 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -63,6 +63,7 @@ .. autoclass:: DerivativeIdentifier .. autofunction:: make_identity_diff_op .. autofunction:: as_scalar_pde +.. autofunction:: to_fourier_matrix """ @@ -426,6 +427,42 @@ def as_scalar_pde( return _get_all_scalar_pdes(pde)[comp_idx] +def to_fourier_matrix( + pde: LinearPDESystemOperator, + ks: sym.Matrix, + ) -> sym.Matrix: + r"""Return the Fourier (symbol) matrix of a constant-coefficient PDE system. + + Each spatial derivative :math:`\partial / \partial x_j` is replaced by + multiplication by :math:`i\,k_j`. The result is a + :obj:`sympy.matrices.dense.Matrix` whose ``(row, col)`` entry is the + polynomial in the frequency variables contributed by equation *row* acting + on component *col*. + + :returns: a matrix of size ``(len(pde.eqs), nvariables)``. + """ + if pde.is_time_dependent: + raise ValueError("cannot compute Fourier symbol for time-dependent PDEs") + + ncols = pde.nvariables + + mat = [] + for eq in pde.eqs: + row = [sym.Integer(0)] * ncols + + for deriv_ident, coeff in eq.items(): + factor: sym.Expr = sym.Integer(1) + for j, power in enumerate(deriv_ident.mi): + factor *= (sym.I * ks[j]) ** power + + row[deriv_ident.vec_idx] += coeff * factor + + assert len(row) == ncols + mat.append(row) + + return sym.Matrix(mat) + + def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: dim = diff_op.dim empty: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] = ( From 4d231f14c35104026d3ab27b4f98c0ade2aa1d28 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 15:45:32 +0300 Subject: [PATCH 292/335] feat: add some simple tests for the Fourier symbols --- sumpy/test/test_misc.py | 111 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 107 insertions(+), 4 deletions(-) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index df3fc2081..da84d7b1c 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -54,6 +54,7 @@ gradient, laplacian, make_identity_diff_op, + to_fourier_matrix, ) from sumpy.kernel import ( BiharmonicKernel, @@ -475,7 +476,6 @@ def test_as_scalar_pde_maxwell(): # {{{ test_as_scalar_pde_elasticity def test_as_scalar_pde_elasticity(): - # Ref: https://doi.org/10.1006/jcph.1996.0102 diff_op = make_identity_diff_op(2, 5) @@ -492,21 +492,29 @@ def test_as_scalar_pde_elasticity(): x = (1, 0) y = (0, 1) - exprs = [ + pde = concat(*[ diff(sigma_x, x) + diff(tau, y), diff(tau, x) + diff(sigma_y, y), sigma_x - (lam + 2*mu)*diff(u, x) - lam*diff(v, y), sigma_y - (lam + 2*mu)*diff(v, y) - lam*diff(u, x), tau - mu*(diff(u, y) + diff(v, x)), - ] + ]) - pde = concat(*exprs) assert pde.order == 1 for i in range(5): scalar_pde = as_scalar_pde(pde, i) assert scalar_pde == laplacian(laplacian(diff_op[0])) assert scalar_pde.order == 4 + # Wikipedia: displacement formulation + + u = make_identity_diff_op(3, 3) + pde = mu * laplacian(u) + (mu + lam) * gradient(divergence(u)) + + for i in range(3): + scalar_pde = as_scalar_pde(pde, i) + assert scalar_pde == laplacian(laplacian(u[0])) + # }}} @@ -530,6 +538,101 @@ def test_elasticity_new(): # }}} +# {{{ test_to_fourier_matrix_laplace + +def test_to_fourier_matrix_scalar() -> None: + ks = sym.make_sym_vector("k", 3) + lam = sym.Symbol("lam") + + # LaplaceKernel + kernel = LaplaceKernel(2) + mat = to_fourier_matrix(kernel.get_pde_as_diff_op(), ks) + assert mat == sym.Matrix([[-ks[0]**2 - ks[1]**2]]) + + kernel = LaplaceKernel(3) + mat = to_fourier_matrix(kernel.get_pde_as_diff_op(), ks) + assert mat == sym.Matrix([[-ks[0]**2 - ks[1]**2 - ks[2]**2]]) + + # YukawaKernel + kernel = YukawaKernel(2, yukawa_lambda_name=lam.name) + mat = to_fourier_matrix(kernel.get_pde_as_diff_op(), ks) + assert mat == sym.Matrix([[-ks[0]**2 - ks[1]**2 - lam**2]]) + + kernel = YukawaKernel(3, yukawa_lambda_name=lam.name) + mat = to_fourier_matrix(kernel.get_pde_as_diff_op(), ks) + assert mat == sym.Matrix([[-ks[0]**2 - ks[1]**2 - ks[2]**2 - lam**2]]) + +# }}} + + +# {{{ test_to_fourier_matrix_stokes + +@pytest.mark.parametrize("dim", [2, 3]) +def test_to_fourier_matrix_stokes(dim: int) -> None: + ks = sym.make_sym_vector("k", dim) + mu = sym.Symbol("mu") + + diff_op = make_identity_diff_op(dim, dim + 1) + u = diff_op[:dim] + p = diff_op[dim] + pde = concat(mu * laplacian(u) - gradient(p), divergence(u)) + + k_sqr = sum(k**2 for k in ks) + if dim == 2: + expected = sym.Matrix([ + [-mu * k_sqr, 0, -sym.I*ks[0]], + [0, -mu * k_sqr, -sym.I*ks[1]], + [sym.I*ks[0], sym.I*ks[1], 0], + ]) + elif dim == 3: + expected = sym.Matrix([ + [-mu * k_sqr, 0, 0, -sym.I*ks[0]], + [0, -mu * k_sqr, 0, -sym.I*ks[1]], + [0, 0, -mu * k_sqr, -sym.I*ks[2]], + [sym.I*ks[0], sym.I*ks[1], sym.I*ks[2], 0], + ]) + else: + raise ValueError(f"unsupported dimension: {dim}") + + mat = to_fourier_matrix(pde, ks) + assert mat.expand() == expected.expand() + +# }}} + + +# {{{ test_to_fourier_matrix_elasticity + +@pytest.mark.parametrize("dim", [2, 3]) +def test_to_fourier_matrix_elasticity(dim: int) -> None: + ks = sym.make_sym_vector("k", dim) + mu = sym.Symbol("mu") + nu = sym.Symbol("nu") + mn = mu / (1 - 2 * nu) + + u = make_identity_diff_op(dim, dim) + pde = mu * laplacian(u) + mn * gradient(divergence(u)) + + k_sqr = sum(k**2 for k in ks) + if dim == 2: + expected = sym.Matrix([ + [-mu * k_sqr - mn * ks[0]**2, -mn * ks[0] * ks[1]], + [-mn * ks[1] * ks[0], -mu * k_sqr - mn * ks[1]**2], + ]) + elif dim == 3: + expected = sym.Matrix([ + [-mu * k_sqr - mn * ks[0]**2, -mn * ks[0] * ks[1], -mn * ks[0] * ks[2]], + [-mn * ks[1] * ks[0], -mu * k_sqr - mn * ks[1]**2, -mn * ks[1] * ks[2]], + [-mn * ks[2] * ks[0], -mn * ks[2] * ks[1], -mu * k_sqr - mn * ks[2]**2], + ]) + else: + raise ValueError(f"unsupported dimension: {dim}") + + mat = to_fourier_matrix(pde, ks) + assert mat.expand() == expected.expand() + +# }}} + + # {{{ test_weird_kernel w = make_identity_diff_op(2) From add2e63526423c461fce9b1a79a7b09d6d983124 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 15:56:43 +0300 Subject: [PATCH 293/335] feat: add the brinkman kernel to the tests --- sumpy/test/test_misc.py | 63 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index da84d7b1c..7affcf89f 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -518,6 +518,33 @@ def test_as_scalar_pde_elasticity(): # }}} +# {{{ test_as_scalar_pde_brinkman + +def test_as_scalar_pde_brinkman(): + dim = 3 + mu = sym.Symbol("mu") + k = sym.Symbol("k") + + # NOTE: momentum + incompressibility equations + diff_op = make_identity_diff_op(dim, dim + 1) + u = diff_op[:3] + p = diff_op[3] + pde = concat(mu * (laplacian(u) - k**2 * u) - gradient(p), divergence(u)) + + # velocity components in Brinkman should satisfy Yukawa + for i in range(3): + scalar_pde = as_scalar_pde(pde, i) + + logger.info("pde\n%s", scalar_pde) + logger.info("\n%s", laplacian(laplacian(u[i]))) + assert scalar_pde == laplacian(laplacian(u[0]) - k**2 * u[0]) + + # pressure should satisfy Laplace + assert as_scalar_pde(pde, 3) == laplacian(u[0]) + +# }}} + + # {{{ test_elasticity_new def test_elasticity_new(): @@ -633,6 +660,42 @@ def test_to_fourier_matrix_elasticity(dim: int) -> None: # }}} +# {{{ test_to_fourier_matrix_brinkman + +@pytest.mark.parametrize("dim", [2, 3]) +def test_to_fourier_matrix_brinkman(dim: int) -> None: + ks = sym.make_sym_vector("k", dim) + mu = sym.Symbol("mu") + kappa = sym.Symbol("k") + + diff_op = make_identity_diff_op(dim, dim + 1) + u = diff_op[:dim] + p = diff_op[dim] + pde = concat(mu * (laplacian(u) - kappa**2 * u) - gradient(p), divergence(u)) + + k_sqr = sum(k**2 for k in ks) + if dim == 2: + expected = sym.Matrix([ + [mu * (-k_sqr - kappa**2), 0, -sym.I*ks[0]], + [0, mu * (-k_sqr - kappa**2), -sym.I*ks[1]], + [sym.I*ks[0], sym.I*ks[1], 0], + ]) + elif dim == 3: + expected = sym.Matrix([ + [mu * (-k_sqr - kappa**2), 0, 0, -sym.I*ks[0]], + [0, mu * (-k_sqr - kappa**2), 0, -sym.I*ks[1]], + [0, 0, mu * (-k_sqr - kappa**2), -sym.I*ks[2]], + [sym.I*ks[0], sym.I*ks[1], sym.I*ks[2], 0], + ]) + else: + raise ValueError(f"unsupported dimension: {dim}") + + mat = to_fourier_matrix(pde, ks) + assert mat.expand() == expected.expand() + +# }}} + + # {{{ test_weird_kernel w = make_identity_diff_op(2) From 7e21492b4492dad6d919be92a827d5f61486e472 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 21:38:41 +0300 Subject: [PATCH 294/335] feat: rename LinearPDESystemOperator.dim to spatial_dim --- sumpy/expansion/diff_op.py | 72 ++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index 6ce921450..c17129f0d 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -94,30 +94,33 @@ class DerivativeIdentifier: class LinearPDESystemOperator: r""" Represents a constant-coefficient linear differential operator of a - vector-valued function with :attr:`dim` spatial variables. + vector-valued function with :attr:`spatial_dim` spatial variables and + additional temporal variables. The operator is given by a tuple of immutable dictionaries. The dictionary maps a :class:`DerivativeIdentifier` to a (time- and space-independent) - coefficient. It optionally supports a time variable as the last element in - the multi-index of the :class:`DerivativeIdentifier`. + coefficient. In the :class:`DerivativeIdentifier`, each multi-index has + :attr:`spatial_dim` indices for the spatial variables and the remaining + ones represent temporal variables. The class also supports basic arithmetic, i.e. multiplication and addition with other operators and constants. - .. autoattribute:: dim .. autoattribute:: eqs + .. autoattribute:: spatial_dim + .. autoproperty:: total_dims - .. autoproperty:: is_time_dependent .. autoproperty:: order - .. autoproperty:: total_dims + .. autoproperty:: nvariables + .. autoproperty:: is_time_dependent + .. automethod:: to_sym """ - dim: int - """The total number of spatial dimensions of the PDE (use :attr:`total_dims` + spatial_dim: int + """The number of spatial dimensions of the PDE (use :attr:`total_dims` to include time). """ - eqs: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] """A tuple of all the equations in the system.""" @@ -142,7 +145,7 @@ def __mul__(self, other: Number | sym.Expr) -> LinearPDESystemOperator: eqs.append(constantdict(deriv_ident_to_coeff)) - return LinearPDESystemOperator(self.dim, tuple(eqs)) + return LinearPDESystemOperator(self.spatial_dim, tuple(eqs)) def __rmul__(self, param: Number | sym.Expr) -> LinearPDESystemOperator: return self.__mul__(param) @@ -151,7 +154,7 @@ def __add__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: if not isinstance(other, LinearPDESystemOperator): return NotImplemented - assert self.dim == other.dim + assert self.spatial_dim == other.spatial_dim assert len(self.eqs) == len(other.eqs) eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] @@ -164,7 +167,7 @@ def __add__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: res[k] = v eqs.append(constantdict(res)) - return LinearPDESystemOperator(self.dim, tuple(eqs)) + return LinearPDESystemOperator(self.spatial_dim, tuple(eqs)) def __radd__(self, other: LinearPDESystemOperator) -> LinearPDESystemOperator: return self.__add__(other) @@ -179,17 +182,17 @@ def __neg__(self) -> LinearPDESystemOperator: @override def __repr__(self) -> str: - return f"LinearPDESystemOperator({self.dim}, {self.eqs!r})" + return f"LinearPDESystemOperator({self.spatial_dim}, {self.eqs!r})" def __getitem__(self, idx: int | slice) -> LinearPDESystemOperator: item = self.eqs.__getitem__(idx) eqs = item if isinstance(item, tuple) else (item,) - return LinearPDESystemOperator(self.dim, eqs) + return LinearPDESystemOperator(self.spatial_dim, eqs) @property def is_time_dependent(self) -> bool: """Is *True* if the PDE operator has a time component.""" - return self.dim != self.total_dims + return self.spatial_dim != self.total_dims @cached_property def order(self) -> int: @@ -227,8 +230,8 @@ def to_sym( (defaults to `["x0", "x1", ....]`) :arg t_var_name: the name of the temporal variables. """ - x: list[sym.Expr] = list(sym.make_sym_vector(x_var_name, self.dim)) - x.extend(sym.make_sym_vector(t_var_name, self.total_dims - self.dim)) + x: list[sym.Expr] = list(sym.make_sym_vector(x_var_name, self.spatial_dim)) + x.extend(sym.make_sym_vector(t_var_name, self.total_dims - self.spatial_dim)) if fnames is None: noutputs = 0 @@ -282,8 +285,8 @@ def _get_all_scalar_pdes(pde: LinearPDESystemOperator) -> list[LinearPDESystemOp import sympy as sp from sympy.polys.orderings import grevlex - gens = [sp.Symbol(f"_x{i}") for i in range(pde.dim)] - gens += [sp.Symbol(f"_t{i}") for i in range(pde.total_dims - pde.dim)] + gens = [sp.Symbol(f"_x{i}") for i in range(pde.spatial_dim)] + gens += [sp.Symbol(f"_t{i}") for i in range(pde.total_dims - pde.spatial_dim)] max_vec_idx = max(deriv_ident.vec_idx for eq in pde.eqs for deriv_ident in eq) @@ -348,7 +351,8 @@ def intersect(a: SubModulePolyRing, b: SubModulePolyRing) -> SubModulePolyRing: for (mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs(), strict=True) } - results.append(LinearPDESystemOperator(pde.dim, (constantdict(pde_dict),))) + results.append(LinearPDESystemOperator(pde.spatial_dim, + (constantdict(pde_dict),))) return results @@ -464,7 +468,7 @@ def to_fourier_matrix( def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - dim = diff_op.dim + dim = diff_op.spatial_dim empty: tuple[Mapping[DerivativeIdentifier, sym.Expr], ...] = ( (constantdict(),) * len(diff_op.eqs)) @@ -490,17 +494,17 @@ def diff( eqs.append(constantdict(res)) - return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) + return LinearPDESystemOperator(diff_op.spatial_dim, tuple(eqs)) def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - if len(diff_op.eqs) != diff_op.dim: + if len(diff_op.eqs) != diff_op.spatial_dim: raise ValueError( "number of equations does not match system dimension: " - f"got {len(diff_op.eqs)} equations for {diff_op.dim}d system") + f"got {len(diff_op.eqs)} equations for {diff_op.spatial_dim}d system") - res = LinearPDESystemOperator(diff_op.dim, (constantdict(),)) - for i in range(diff_op.dim): + res = LinearPDESystemOperator(diff_op.spatial_dim, (constantdict(),)) + for i in range(diff_op.spatial_dim): mi = [0]*diff_op.total_dims mi[i] = 1 res += diff(diff_op[i], tuple(mi)) @@ -514,7 +518,7 @@ def gradient(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: f"can only take gradient of scalar system: got {len(diff_op.eqs)}d") eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] - dim = diff_op.dim + dim = diff_op.spatial_dim for i in range(dim): mi = [0]*diff_op.total_dims mi[i] = 1 @@ -524,13 +528,13 @@ def gradient(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: def curl(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - if len(diff_op.eqs) != diff_op.dim: + if len(diff_op.eqs) != diff_op.spatial_dim: raise ValueError( "number of equations does not match system dimension: " - f"got {len(diff_op.eqs)} equations for {diff_op.dim}d system") + f"got {len(diff_op.eqs)} equations for {diff_op.spatial_dim}d system") - if diff_op.dim != 3: - raise ValueError(f"can only take curl of 3d system: got {diff_op.dim}d") + if diff_op.spatial_dim != 3: + raise ValueError(f"can only take curl of 3d system: got {diff_op.spatial_dim}d") eqs: list[Mapping[DerivativeIdentifier, sym.Expr]] = [] mis: list[MultiIndex] = [] @@ -545,7 +549,7 @@ def curl(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator: - diff(diff_op[(i+1) % 3], mis[(i+2) % 3])) eqs.append(new_pde.eqs[0]) - return LinearPDESystemOperator(diff_op.dim, tuple(eqs)) + return LinearPDESystemOperator(diff_op.spatial_dim, tuple(eqs)) def concat(*ops: LinearPDESystemOperator) -> LinearPDESystemOperator: @@ -555,8 +559,8 @@ def concat(*ops: LinearPDESystemOperator) -> LinearPDESystemOperator: if len(ops) == 1: return ops[0] - dim = ops[0].dim - if not all(op.dim == dim for op in ops): + dim = ops[0].spatial_dim + if not all(op.spatial_dim == dim for op in ops): raise ValueError(f"operators must have the same dimension (expected {dim}d)") eqs = list(ops[0].eqs) From 7725b195d3332e0200978008eea6c1536ba032df Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 22 May 2026 16:16:15 +0300 Subject: [PATCH 295/335] chore: update baseline --- .basedpyright/baseline.json | 308 +++++++++++++++++++++++++++++++++++- 1 file changed, 302 insertions(+), 6 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index f474ccebd..cb82cdc41 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -6509,7 +6509,7 @@ "code": "reportArgumentType", "range": { "startColumn": 33, - "endColumn": 67, + "endColumn": 82, "lineCount": 1 } }, @@ -6517,7 +6517,7 @@ "code": "reportArgumentType", "range": { "startColumn": 17, - "endColumn": 69, + "endColumn": 84, "lineCount": 1 } }, @@ -6788,16 +6788,40 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 81, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 78, + "startColumn": 61, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 12, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, @@ -23417,6 +23441,278 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 35, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 17, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 39, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 54, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 54, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 17, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 53, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 32, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 53, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 74, + "endColumn": 82, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 28, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 17, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 27, + "endColumn": 42, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { From 3c9b0c03b680b24d28c0cb7e24b4a0a9359d365b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 10:09:25 +0300 Subject: [PATCH 296/335] feat: separate ElasticityKernel and Stokeslet --- sumpy/kernel.py | 195 ++++++++++++++++++++++++++++++------------------ 1 file changed, 122 insertions(+), 73 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 5fbb99d2f..882d433fd 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -35,9 +35,10 @@ cast, overload, ) +from warnings import warn import numpy as np -from typing_extensions import Self, override +from typing_extensions import override import loopy as lp import pymbolic.primitives as prim @@ -785,59 +786,49 @@ class ElasticityKernel(ExpressionKernel): viscosity_mu: float | SpatialConstant r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. Can also be a numeric value. + generating functions to evaluate this kernel. """ poisson_ratio: float | SpatialConstant r"""The argument name to use for Poisson's ratio :math:`\nu` when generating - functions to evaluate this kernel. Can also be a numeric value. + functions to evaluate this kernel. """ - def __new__(cls, - dim: int, icomp: int, jcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant = "nu", - ) -> Self: - if poisson_ratio == 0.5: # noqa: RUF069 - return super().__new__(StokesletKernel) - else: - return super().__new__(cls) - def __init__(self, - dim: int, icomp: int, jcomp: int, + dim: int, + icomp: int, + jcomp: int, viscosity_mu: float | str | SpatialConstant = "mu", poisson_ratio: float | str | SpatialConstant = "nu") -> None: if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: + warn("Passing a non-str 'viscosity_mu' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + mu = viscosity_mu if isinstance(poisson_ratio, str): nu = SpatialConstant(poisson_ratio) else: + warn("Passing a non-str 'poisson_ratio' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + nu = poisson_ratio + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + delta_ij = 1 if icomp == jcomp else 0 + if dim == 2: - d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) # See (Berger and Karageorghis 2001) - expr = ( - -var("log")(r)*((3 - 4 * nu) if icomp == jcomp else 0) - + - d[icomp]*d[jcomp]/r**2 - ) + expr = -var("log")(r)*(3 - 4 * nu)*delta_ij + d[icomp]*d[jcomp]/r**2 scaling = -1/(8*var("pi")*(1 - nu)*mu) - elif dim == 3: - d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) # Kelvin solution - expr = ( - (1/r)*((3 - 4*nu) if icomp == jcomp else 0) - + - d[icomp]*d[jcomp]/r**3 - ) + expr = (1/r)*(3 - 4*nu)*delta_ij + d[icomp]*d[jcomp]/r**3 scaling = -1/(16*var("pi")*(1 - nu)*mu) - else: raise NotImplementedError(f"unsupported dimension: '{dim}'") @@ -848,6 +839,12 @@ def __init__(self, object.__setattr__(self, "viscosity_mu", mu) object.__setattr__(self, "poisson_ratio", nu) + @override + def __str__(self) -> str: + return ( + f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu}, {self.poisson_ratio})") + @override def __reduce__(self): return ( @@ -859,12 +856,6 @@ def __reduce__(self): def is_complex_valued(self) -> bool: return False - @override - def __str__(self) -> str: - return ( - f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" - f"({self.viscosity_mu}, {self.poisson_ratio})") - @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: @@ -898,43 +889,99 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class StokesletKernel(ElasticityKernel): +class StokesletKernel(ExpressionKernel): """ .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: viscosity_mu """ - def __new__(cls, - dim: int, - icomp: int, - jcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant | None = None, - ) -> Self: - return object.__new__(cls) + mapper_method: ClassVar[str] = "map_stokeslet_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" + + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ def __init__(self, - dim: int, - icomp: int, - jcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant | None = None) -> None: - if poisson_ratio is None: - poisson_ratio = 0.5 - - if poisson_ratio != 0.5: # noqa: RUF069 - raise ValueError( - "'StokesletKernel' must have a Poisson ratio of 0.5: " - f"got '{poisson_ratio}'") + dim: int, + icomp: int, + jcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant | None = None) -> None: + if poisson_ratio is not None: + warn(f"Passing 'poisson_ratio' to {type(self)} is deprecated. This " + "argument will be removed in Q1 2027.", + DeprecationWarning, stacklevel=2) + + if isinstance(viscosity_mu, str): + mu = SpatialConstant(viscosity_mu) + else: + warn("Passing a non-str 'viscosity_mu' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + + mu = viscosity_mu - super().__init__(dim, icomp, jcomp, viscosity_mu, poisson_ratio) + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + delta_ij = 1 if icomp == jcomp else 0 + + if dim == 2: + expr = -var("log")(r)*delta_ij + d[icomp]*d[jcomp]/r**2 + scaling = -1/(4*var("pi")*mu) + elif dim == 3: + expr = (1/r)*delta_ij + d[icomp]*d[jcomp]/r**3 + scaling = -1/(8*var("pi")*mu) + else: + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + super().__init__(dim, expression=expr, global_scaling_const=scaling) + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "viscosity_mu", mu) @override def __str__(self) -> str: return ( f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" - f"({self.viscosity_mu}, {self.poisson_ratio})") + f"({self.viscosity_mu})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.icomp, self.jcomp, self.viscosity_mu)) + + @property + @override + def is_complex_valued(self) -> bool: + return False + + @memoize_method + @override + def get_args(self) -> Sequence[KernelArgument]: + # TODO: remove this once we stop allowing non-str values for viscosity_mu + if isinstance(self.viscosity_mu, SpatialConstant): + return [ + KernelArgument( + loopy_arg=lp.ValueArg(self.viscosity_mu.name, np.float64), + ) + ] + else: + return [] + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + + w = make_identity_diff_op(self.dim) + return laplacian(laplacian(w)) @dataclass(frozen=True, repr=False) @@ -953,36 +1000,37 @@ class StressletKernel(ExpressionKernel): """Component index for the kernel.""" kcomp: int """Component index for the kernel.""" + viscosity_mu: float | SpatialConstant r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. Can also be a numeric value. + generating functions to evaluate this kernel. """ def __init__(self, - dim: int, icomp: int, jcomp: int, kcomp: int, + dim: int, + icomp: int, + jcomp: int, + kcomp: int, viscosity_mu: float | str | SpatialConstant = "mu") -> None: # mu is unused but kept for consistency with the Stokeslet. if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: + warn("Passing a non-str 'viscosity_mu' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + mu = viscosity_mu + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + if dim == 2: - d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) - expr = ( - d[icomp]*d[jcomp]*d[kcomp]/r**4 - ) + expr = d[icomp]*d[jcomp]*d[kcomp]/r**4 scaling = 1/(var("pi")) - elif dim == 3: - d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) - expr = ( - d[icomp]*d[jcomp]*d[kcomp]/r**5 - ) + expr = d[icomp]*d[jcomp]*d[kcomp]/r**5 scaling = 3/(4*var("pi")) - else: raise NotImplementedError(f"unsupported dimension: '{dim}'") @@ -1023,6 +1071,7 @@ def get_args(self) -> Sequence[KernelArgument]: @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) From 9788909af3bc9d3dd0c47395897405d287b1744e Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 10:13:22 +0300 Subject: [PATCH 297/335] feat: deprecate non-str args to LineOfCompressionKernel --- sumpy/kernel.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 882d433fd..81f688f80 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1098,13 +1098,14 @@ class LineOfCompressionKernel(ExpressionKernel): axis: int """Axis number (defaulting to 2 for the z axis).""" + viscosity_mu: float | SpatialConstant r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. Can also be a numeric value. + generating functions to evaluate this kernel. """ poisson_ratio: float | SpatialConstant r"""The argument name to use for Poisson's ratio :math:`\nu` when - generating functions to evaluate this kernel. Can also be a numeric value. + generating functions to evaluate this kernel. """ def __init__(self, @@ -1116,15 +1117,25 @@ def __init__(self, if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: + warn("Passing a non-str 'viscosity_mu' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + mu = viscosity_mu + if isinstance(poisson_ratio, str): nu = SpatialConstant(poisson_ratio) else: + warn("Passing a non-str 'poisson_ratio' is deprecated. This will " + "raise a TypeError starting with Q1 2027.", + DeprecationWarning, stacklevel=2) + nu = poisson_ratio if dim == 3: d = make_sym_vector("d", dim) r = pymbolic_real_norm_2(d) + # Kelvin solution expr = d[axis] * var("log")(r + d[axis]) - r scaling = (1 - 2*nu)/(4*var("pi")*mu) @@ -1137,6 +1148,12 @@ def __init__(self, object.__setattr__(self, "viscosity_mu", mu) object.__setattr__(self, "poisson_ratio", nu) + @override + def __str__(self) -> str: + return ( + f"LineOfCompressionKnl{self.dim}D_{self.axis}" + f"({self.viscosity_mu}, {self.poisson_ratio})") + @override def __reduce__(self) -> tuple[object, ...]: return ( @@ -1149,10 +1166,6 @@ def __reduce__(self) -> tuple[object, ...]: def is_complex_valued(self) -> bool: return False - @override - def __str__(self) -> str: - return f"LineOfCompressionKnl{self.dim}D_{self.axis}" - @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: @@ -1170,6 +1183,7 @@ def get_args(self) -> Sequence[KernelArgument]: @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) return laplacian(w) From 745f2a6c1d6660586263ff382478bce79179e90c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 10:31:43 +0300 Subject: [PATCH 298/335] test: update elasticity __new__ test --- sumpy/test/test_misc.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 7affcf89f..cb412e3d4 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -545,22 +545,20 @@ def test_as_scalar_pde_brinkman(): # }}} -# {{{ test_elasticity_new +# {{{ test_elasticity_pickle -def test_elasticity_new(): +def test_elasticity_pickle(): from pickle import dumps, loads - stokes_knl = StokesletKernel(3, 0, 1, "mu1", 0.5) - stokes_knl2 = ElasticityKernel(3, 0, 1, "mu1", 0.5) - elasticity_knl = ElasticityKernel(3, 0, 1, "mu1", "nu") - elasticity_helper_knl = LineOfCompressionKernel(3, 0, "mu1", "nu") + stokes_knl = StokesletKernel( + 3, 0, 1, viscosity_mu="mu1") + elasticity_knl = ElasticityKernel( + 3, 0, 1, viscosity_mu="mu1", poisson_ratio="nu1") + elasticity_helper_knl = LineOfCompressionKernel( + 3, 0, viscosity_mu="mu1", poisson_ratio="nu1") - assert isinstance(stokes_knl2, StokesletKernel) - assert stokes_knl == stokes_knl2 assert loads(dumps(stokes_knl)) == stokes_knl - - for knl in [elasticity_knl, elasticity_helper_knl]: - assert not isinstance(knl, StokesletKernel) - assert loads(dumps(knl)) == knl + assert loads(dumps(elasticity_knl)) == elasticity_knl + assert loads(dumps(elasticity_helper_knl)) == elasticity_helper_knl # }}} From db824143007fe8a33b22232435bcefcce2607b24 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 11:25:39 +0300 Subject: [PATCH 299/335] docs: write out the equations for each kernel --- sumpy/kernel.py | 84 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 7 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 81f688f80..a7bdc8370 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -114,6 +114,18 @@ :show-inheritance: :members: mapper_method +.. [Pozrikidis1992] C. Pozrikidis, + *Boundary Integral and Singularity Methods for Linearized Viscous Flow*, + Cambridge University Press, 1992. + +.. [Hsiao2008] G. C. Hsiao, W. L. Wendland, + *Boundary Integral Equations*, + Springer, 2008. + +.. [Kress2013] R. Kress, + *Linear Integral Equations*, + Springer Science & Business Media, 2013. + Derivatives ----------- @@ -490,6 +502,13 @@ def is_complex_valued(self) -> bool: # {{{ PDE kernels class LaplaceKernel(ExpressionKernel): + r"""A kernel for the Laplace equation (see e.g. Theorem 6.2 from [Kress2013]_). + + .. math:: + + \Delta K(\mathbf{x}, \mathbf{y}) = \delta(\mathbf{x} - \mathbf{y}). + """ + mapper_method: ClassVar[str] = "map_laplace_kernel" def __init__(self, dim: int) -> None: @@ -538,6 +557,13 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: class BiharmonicKernel(ExpressionKernel): + r"""A kernel for the biharmonic equation. + + .. math:: + + \Delta^2 K(\mathbf{x}, \mathbf{y}) = \delta(\mathbf{x} - \mathbf{y}). + """ + mapper_method: ClassVar[str] = "map_biharmonic_kernel" def __init__(self, dim: int) -> None: @@ -592,7 +618,13 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class HelmholtzKernel(ExpressionKernel): - """ + r"""A kernel for the Helmholtz equation (see e.g. Example 12.14 in [Kress2013]_). + + .. math:: + + \Delta K(\mathbf{x}, \mathbf{y}) + k^2 K(\mathbf{x}, \mathbf{y}) + = \delta(\mathbf{x} - \mathbf{y}). + .. autoattribute:: helmholtz_k_name .. autoattribute:: allow_evanescent """ @@ -680,7 +712,13 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class YukawaKernel(ExpressionKernel): - """ + r"""A kernel for the Yukawa equation. + + .. math:: + + \Delta K(\mathbf{x}, \mathbf{y}) - \lambda^2 K(\mathbf{x}, \mathbf{y}) + = \delta(\mathbf{x} - \mathbf{y}). + .. autoattribute:: yukawa_lambda_name """ @@ -771,7 +809,15 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class ElasticityKernel(ExpressionKernel): - """ + r"""A kernel for the linear elasticity (Navier-Cauchy) equations + (see e.g. Section 2.2 in [Hsiao2008]_). + + .. math:: + + \mu \Delta K_{ij}(\mathbf{x}, \mathbf{y}) + + \frac{\mu}{1 - 2 \nu} \nabla (\nabla \cdot K_{ij}(\mathbf{x}, \mathbf{y})) + = \delta_{ij} \delta(\mathbf{x} - \mathbf{y}). + .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: viscosity_mu @@ -890,7 +936,21 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class StokesletKernel(ExpressionKernel): - """ + r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). + + .. math:: + + \begin{cases} + -\mu \Delta K_{ij}(\mathbf{x}, \mathbf{y}) + + \nabla_i P_j(\mathbf{x}, \mathbf{y}) + = \delta_{ij} \delta(\mathbf{x} - \mathbf{y}), \\ + \nabla_i K_{ij}(\mathbf{x}, \mathbf{y}) = 0, \\ + \end{cases} + + where pressure kernel :math:`P_j = \partial_j K` is the derivative of the + Laplace kernel. This kernel is often called the Stokeslet or the Oseen-Burgers + tensor and it represents the velocity field. + .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: viscosity_mu @@ -986,7 +1046,17 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class StressletKernel(ExpressionKernel): - """ + r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). + + .. math:: + + K_{ijk}(\mathbf{x}, \mathbf{y}) = + -P_j \delta_{ik} + + \mu (\partial_k K_{ij} + \partial_i K_{kj}) + + where the two-index :math:`K_{ij}` is the :class:`~sumpy.kernel.StokesletKernel`. + This kernel is often called the Stresslet and it represents the stress tensor. + .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: kcomp @@ -1079,9 +1149,9 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class LineOfCompressionKernel(ExpressionKernel): """A kernel for the line of compression or dilatation of constant strength - along the axis "axis" from zero to negative infinity. + along an axis from zero to negative infinity. - This is used for the explicit solution to half-space Elasticity problem. + This is used for the explicit solution to half-space linear elasticity problem. See [Mindlin1936]_ for details. .. [Mindlin1936] R. D. Mindlin (1936). From 1db701f983cd214f42de8dc66000bdff4852172c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 11:50:56 +0300 Subject: [PATCH 300/335] feat: pickle string values for Stokeslet if possible --- sumpy/kernel.py | 52 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index a7bdc8370..a01ae30c6 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -861,6 +861,11 @@ def __init__(self, "raise a TypeError starting with Q1 2027.", DeprecationWarning, stacklevel=2) + if poisson_ratio == 0.5: # noqa: RUF069 + raise ValueError( + f"{type(self)} cannot accept 'poisson_ratio' of 0.5 " + "(use StokesletKernel instead)") + nu = poisson_ratio d = make_sym_vector("d", dim) @@ -893,9 +898,19 @@ def __str__(self) -> str: @override def __reduce__(self): + # TODO: remove this once we stop allowing non-str values for viscosity_mu + viscosity_mu = ( + self.viscosity_mu.name + if isinstance(self.viscosity_mu, SpatialConstant) + else self.viscosity_mu) + poisson_ratio = ( + self.poisson_ratio.name + if isinstance(self.poisson_ratio, SpatialConstant) + else self.poisson_ratio) + return ( type(self), - (self.dim, self.icomp, self.jcomp, self.viscosity_mu, self.poisson_ratio)) + (self.dim, self.icomp, self.jcomp, viscosity_mu, poisson_ratio)) @property @override @@ -979,6 +994,9 @@ def __init__(self, "argument will be removed in Q1 2027.", DeprecationWarning, stacklevel=2) + if poisson_ratio != 0.5: # noqa: RUF069 + raise ValueError("'poisson_ratio' must be 0.5 (if provided)") + if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: @@ -1014,9 +1032,15 @@ def __str__(self) -> str: @override def __reduce__(self): + # TODO: remove this once we stop allowing non-str values for viscosity_mu + viscosity_mu = ( + self.viscosity_mu.name + if isinstance(self.viscosity_mu, SpatialConstant) + else self.viscosity_mu) + return ( type(self), - (self.dim, self.icomp, self.jcomp, self.viscosity_mu)) + (self.dim, self.icomp, self.jcomp, viscosity_mu)) @property @override @@ -1113,10 +1137,15 @@ def __init__(self, @override def __reduce__(self) -> tuple[object, ...]: + # TODO: remove this once we stop allowing non-str values for viscosity_mu + viscosity_mu = ( + self.viscosity_mu.name + if isinstance(self.viscosity_mu, SpatialConstant) + else self.viscosity_mu) + return ( self.__class__, - (self.dim, self.icomp, self.jcomp, self.kcomp, self.viscosity_mu), - ) + (self.dim, self.icomp, self.jcomp, self.kcomp, viscosity_mu)) @property @override @@ -1200,6 +1229,9 @@ def __init__(self, "raise a TypeError starting with Q1 2027.", DeprecationWarning, stacklevel=2) + if poisson_ratio == 0.5: # noqa: RUF069 + raise ValueError(f"{type(self)} cannot accept 'poisson_ratio' of 0.5") + nu = poisson_ratio if dim == 3: @@ -1226,9 +1258,19 @@ def __str__(self) -> str: @override def __reduce__(self) -> tuple[object, ...]: + # TODO: remove this once we stop allowing non-str values for viscosity_mu + viscosity_mu = ( + self.viscosity_mu.name + if isinstance(self.viscosity_mu, SpatialConstant) + else self.viscosity_mu) + poisson_ratio = ( + self.poisson_ratio.name + if isinstance(self.poisson_ratio, SpatialConstant) + else self.poisson_ratio) + return ( self.__class__, - (self.dim, self.axis, self.viscosity_mu, self.poisson_ratio), + (self.dim, self.axis, viscosity_mu, poisson_ratio), ) @property From e6771a09913c338e40f0a66ffc1cabc31962bcbe Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 9 May 2026 12:08:05 +0300 Subject: [PATCH 301/335] feat: update DerivativeCounter and KernelIdentityMapper --- sumpy/kernel.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index a01ae30c6..527582079 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -2029,6 +2029,7 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: map_yukawa_kernel = map_expression_kernel map_elasticity_kernel = map_expression_kernel map_line_of_compression_kernel = map_expression_kernel + map_stokeslet_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel map_brinkmanlet_kernel = map_expression_kernel map_brinkman_stress_kernel = map_expression_kernel @@ -2102,7 +2103,9 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> int: map_biharmonic_kernel = map_expression_kernel map_helmholtz_kernel = map_expression_kernel map_yukawa_kernel = map_expression_kernel + map_elasticity_kernel = map_expression_kernel map_line_of_compression_kernel = map_expression_kernel + map_stokeslet_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel map_brinkmanlet_kernel = map_expression_kernel map_brinkman_stress_kernel = map_expression_kernel From 79ec779c9b8ad1dcf2d5e85621de9d0c2a08a6f5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 13 May 2026 17:15:58 -0500 Subject: [PATCH 302/335] Annotate some kernel mappers --- sumpy/kernel.py | 62 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 527582079..3486cc529 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -38,7 +38,7 @@ from warnings import warn import numpy as np -from typing_extensions import override +from typing_extensions import Self, override import loopy as lp import pymbolic.primitives as prim @@ -2023,16 +2023,26 @@ class KernelIdentityMapper(KernelMapper[Kernel]): def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: return kernel - map_laplace_kernel = map_expression_kernel - map_biharmonic_kernel = map_expression_kernel - map_helmholtz_kernel = map_expression_kernel - map_yukawa_kernel = map_expression_kernel - map_elasticity_kernel = map_expression_kernel - map_line_of_compression_kernel = map_expression_kernel - map_stokeslet_kernel = map_expression_kernel - map_stresslet_kernel = map_expression_kernel - map_brinkmanlet_kernel = map_expression_kernel - map_brinkman_stress_kernel = map_expression_kernel + map_laplace_kernel: \ + Callable[[Self, LaplaceKernel], Kernel] = map_expression_kernel + map_biharmonic_kernel: \ + Callable[[Self, BiharmonicKernel], Kernel] = map_expression_kernel + map_helmholtz_kernel: \ + Callable[[Self, HelmholtzKernel], Kernel] = map_expression_kernel + map_yukawa_kernel: \ + Callable[[Self, YukawaKernel], Kernel] = map_expression_kernel + map_elasticity_kernel: \ + Callable[[Self, ElasticityKernel], Kernel] = map_expression_kernel + map_line_of_compression_kernel: \ + Callable[[Self, LineOfCompressionKernel], Kernel] = map_expression_kernel + map_stokeslet_kernel: \ + Callable[[Self, StokesletKernel], Kernel] = map_expression_kernel + map_stresslet_kernel: \ + Callable[[Self, StressletKernel], Kernel] = map_expression_kernel + map_brinkmanlet_kernel: \ + Callable[[Self, BrinkmanletKernel], Kernel] = map_expression_kernel + map_brinkman_stress_kernel: \ + Callable[[Self, BrinkmanStressKernel], Kernel] = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) @@ -2099,16 +2109,26 @@ def combine(self, values: Iterable[int]) -> int: def map_expression_kernel(self, kernel: ExpressionKernel) -> int: return 0 - map_laplace_kernel = map_expression_kernel - map_biharmonic_kernel = map_expression_kernel - map_helmholtz_kernel = map_expression_kernel - map_yukawa_kernel = map_expression_kernel - map_elasticity_kernel = map_expression_kernel - map_line_of_compression_kernel = map_expression_kernel - map_stokeslet_kernel = map_expression_kernel - map_stresslet_kernel = map_expression_kernel - map_brinkmanlet_kernel = map_expression_kernel - map_brinkman_stress_kernel = map_expression_kernel + map_laplace_kernel: \ + Callable[[Self, LaplaceKernel], int] = map_expression_kernel + map_biharmonic_kernel: \ + Callable[[Self, BiharmonicKernel], int] = map_expression_kernel + map_helmholtz_kernel: \ + Callable[[Self, HelmholtzKernel], int] = map_expression_kernel + map_yukawa_kernel: \ + Callable[[Self, YukawaKernel], int] = map_expression_kernel + map_elasticity_kernel: \ + Callable[[Self, ElasticityKernel], int] = map_expression_kernel + map_line_of_compression_kernel: \ + Callable[[Self, LineOfCompressionKernel], int] = map_expression_kernel + map_stokeslet_kernel: \ + Callable[[Self, StokesletKernel], int] = map_expression_kernel + map_stresslet_kernel: \ + Callable[[Self, StressletKernel], int] = map_expression_kernel + map_brinkmanlet_kernel: \ + Callable[[Self, BrinkmanletKernel], int] = map_expression_kernel + map_brinkman_stress_kernel: \ + Callable[[Self, BrinkmanStressKernel], int] = map_expression_kernel @override def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: From 8fab4b3c0668675dcd85a32ebbf291db8f880f43 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sat, 23 May 2026 15:47:48 +0300 Subject: [PATCH 303/335] feat: rename arguments for Elasticity and Stokeslet kernels --- sumpy/kernel.py | 264 +++++++++++++--------------------------- sumpy/test/test_misc.py | 6 +- 2 files changed, 90 insertions(+), 180 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 3486cc529..de6f3eebe 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -35,7 +35,6 @@ cast, overload, ) -from warnings import warn import numpy as np from typing_extensions import Self, override @@ -820,9 +819,10 @@ class ElasticityKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp - .. autoattribute:: viscosity_mu - .. autoattribute:: poisson_ratio + .. autoattribute:: viscosity_mu_name + .. autoattribute:: poisson_ratio_name """ + mapper_method: ClassVar[str] = "map_elasticity_kernel" icomp: int @@ -830,11 +830,11 @@ class ElasticityKernel(ExpressionKernel): jcomp: int """Component index for the kernel.""" - viscosity_mu: float | SpatialConstant + viscosity_mu_name: str r"""The argument name to use for the dynamic viscosity :math:`\mu` when generating functions to evaluate this kernel. """ - poisson_ratio: float | SpatialConstant + poisson_ratio_name: str r"""The argument name to use for Poisson's ratio :math:`\nu` when generating functions to evaluate this kernel. """ @@ -843,30 +843,20 @@ def __init__(self, dim: int, icomp: int, jcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant = "nu") -> None: - if isinstance(viscosity_mu, str): - mu = SpatialConstant(viscosity_mu) - else: - warn("Passing a non-str 'viscosity_mu' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) - - mu = viscosity_mu - - if isinstance(poisson_ratio, str): - nu = SpatialConstant(poisson_ratio) - else: - warn("Passing a non-str 'poisson_ratio' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) + viscosity_mu_name: str = "mu", + poisson_ratio_name: str = "nu") -> None: + if not isinstance(viscosity_mu_name, str): + raise TypeError( + f"'viscosity_mu_name' is not a str: {type(viscosity_mu_name)}" + ) - if poisson_ratio == 0.5: # noqa: RUF069 - raise ValueError( - f"{type(self)} cannot accept 'poisson_ratio' of 0.5 " - "(use StokesletKernel instead)") + if not isinstance(poisson_ratio_name, str): + raise TypeError( + f"'poisson_ratio_name' is not a str: {type(poisson_ratio_name)}" + ) - nu = poisson_ratio + mu = SpatialConstant(viscosity_mu_name) + nu = SpatialConstant(poisson_ratio_name) d = make_sym_vector("d", dim) r = pymbolic_real_norm_2(d) @@ -887,30 +877,22 @@ def __init__(self, object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - object.__setattr__(self, "viscosity_mu", mu) - object.__setattr__(self, "poisson_ratio", nu) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) + object.__setattr__(self, "poisson_ratio_name", poisson_ratio_name) @override def __str__(self) -> str: return ( f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" - f"({self.viscosity_mu}, {self.poisson_ratio})") + f"({self.viscosity_mu_name}, {self.poisson_ratio_name})") @override def __reduce__(self): - # TODO: remove this once we stop allowing non-str values for viscosity_mu - viscosity_mu = ( - self.viscosity_mu.name - if isinstance(self.viscosity_mu, SpatialConstant) - else self.viscosity_mu) - poisson_ratio = ( - self.poisson_ratio.name - if isinstance(self.poisson_ratio, SpatialConstant) - else self.poisson_ratio) - return ( type(self), - (self.dim, self.icomp, self.jcomp, viscosity_mu, poisson_ratio)) + (self.dim, self.icomp, self.jcomp, + self.viscosity_mu_name, + self.poisson_ratio_name)) @property @override @@ -920,26 +902,10 @@ def is_complex_valued(self) -> bool: @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: - from sumpy.tools import get_all_variables - variables = get_all_variables(self.viscosity_mu) - - args: list[KernelArgument] = [ - KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) - for v in variables] - - return [*args, *self.get_source_args()] - - @memoize_method - @override - def get_source_args(self) -> Sequence[KernelArgument]: - from sumpy.tools import get_all_variables - variables = get_all_variables(self.poisson_ratio) - - args: list[KernelArgument] = [ - KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) - for v in variables] - - return args + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.poisson_ratio_name, np.float64)), + ] @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @@ -968,7 +934,7 @@ class StokesletKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp - .. autoattribute:: viscosity_mu + .. autoattribute:: viscosity_mu_name """ mapper_method: ClassVar[str] = "map_stokeslet_kernel" @@ -978,7 +944,7 @@ class StokesletKernel(ExpressionKernel): jcomp: int """Component index for the kernel.""" - viscosity_mu: float | SpatialConstant + viscosity_mu_name: str r"""The argument name to use for the dynamic viscosity :math:`\mu` when generating functions to evaluate this kernel. """ @@ -987,24 +953,12 @@ def __init__(self, dim: int, icomp: int, jcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant | None = None) -> None: - if poisson_ratio is not None: - warn(f"Passing 'poisson_ratio' to {type(self)} is deprecated. This " - "argument will be removed in Q1 2027.", - DeprecationWarning, stacklevel=2) - - if poisson_ratio != 0.5: # noqa: RUF069 - raise ValueError("'poisson_ratio' must be 0.5 (if provided)") - - if isinstance(viscosity_mu, str): - mu = SpatialConstant(viscosity_mu) - else: - warn("Passing a non-str 'viscosity_mu' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) - - mu = viscosity_mu + viscosity_mu_name: str = "mu") -> None: + if not isinstance(viscosity_mu_name, str): + raise TypeError( + f"'viscosity_mu_name' is not a str: {type(viscosity_mu_name)}" + ) + mu = SpatialConstant(viscosity_mu_name) d = make_sym_vector("d", dim) r = pymbolic_real_norm_2(d) @@ -1022,25 +976,19 @@ def __init__(self, super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) @override def __str__(self) -> str: return ( f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" - f"({self.viscosity_mu})") + f"({self.viscosity_mu_name})") @override def __reduce__(self): - # TODO: remove this once we stop allowing non-str values for viscosity_mu - viscosity_mu = ( - self.viscosity_mu.name - if isinstance(self.viscosity_mu, SpatialConstant) - else self.viscosity_mu) - return ( type(self), - (self.dim, self.icomp, self.jcomp, viscosity_mu)) + (self.dim, self.icomp, self.jcomp, self.viscosity_mu_name)) @property @override @@ -1050,15 +998,11 @@ def is_complex_valued(self) -> bool: @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: - # TODO: remove this once we stop allowing non-str values for viscosity_mu - if isinstance(self.viscosity_mu, SpatialConstant): - return [ - KernelArgument( - loopy_arg=lp.ValueArg(self.viscosity_mu.name, np.float64), - ) - ] - else: - return [] + return [ + KernelArgument( + loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64), + ) + ] @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @@ -1084,7 +1028,7 @@ class StressletKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: kcomp - .. autoattribute:: viscosity_mu + .. autoattribute:: viscosity_mu_name """ mapper_method: ClassVar[str] = "map_stresslet_kernel" @@ -1095,7 +1039,7 @@ class StressletKernel(ExpressionKernel): kcomp: int """Component index for the kernel.""" - viscosity_mu: float | SpatialConstant + viscosity_mu_name: str r"""The argument name to use for the dynamic viscosity :math:`\mu` when generating functions to evaluate this kernel. """ @@ -1105,16 +1049,12 @@ def __init__(self, icomp: int, jcomp: int, kcomp: int, - viscosity_mu: float | str | SpatialConstant = "mu") -> None: + viscosity_mu_name: str = "mu") -> None: # mu is unused but kept for consistency with the Stokeslet. - if isinstance(viscosity_mu, str): - mu = SpatialConstant(viscosity_mu) - else: - warn("Passing a non-str 'viscosity_mu' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) - - mu = viscosity_mu + if not isinstance(viscosity_mu_name, str): + raise TypeError( + f"'viscosity_mu_name' is not a str: {type(viscosity_mu_name)}" + ) d = make_sym_vector("d", dim) r = pymbolic_real_norm_2(d) @@ -1133,39 +1073,33 @@ def __init__(self, object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) object.__setattr__(self, "kcomp", kcomp) - object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) @override def __reduce__(self) -> tuple[object, ...]: - # TODO: remove this once we stop allowing non-str values for viscosity_mu - viscosity_mu = ( - self.viscosity_mu.name - if isinstance(self.viscosity_mu, SpatialConstant) - else self.viscosity_mu) - return ( self.__class__, - (self.dim, self.icomp, self.jcomp, self.kcomp, viscosity_mu)) + (self.dim, self.icomp, self.jcomp, self.kcomp, + self.viscosity_mu_name)) @property @override def is_complex_valued(self) -> bool: return False - @override - def __str__(self) -> str: - return ( - f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" - f"({self.viscosity_mu})") - @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: - from sumpy.tools import get_all_variables - variables = get_all_variables(self.viscosity_mu) + # NOTE: this is not used, but kept for symmetry with the StokesletKernel return [ - KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) - for v in variables] + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)) + ] + + @override + def __str__(self) -> str: + return ( + f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + f"({self.viscosity_mu_name})") @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @@ -1189,8 +1123,8 @@ class LineOfCompressionKernel(ExpressionKernel): `doi:10.1063/1.1745385 `__. .. autoattribute:: axis - .. autoattribute:: viscosity_mu - .. autoattribute:: poisson_ratio + .. autoattribute:: viscosity_mu_name + .. autoattribute:: poisson_ratio_name """ mapper_method: ClassVar[str] = "map_line_of_compression_kernel" @@ -1198,11 +1132,11 @@ class LineOfCompressionKernel(ExpressionKernel): axis: int """Axis number (defaulting to 2 for the z axis).""" - viscosity_mu: float | SpatialConstant + viscosity_mu_name: str r"""The argument name to use for the dynamic viscosity :math:`\mu` when generating functions to evaluate this kernel. """ - poisson_ratio: float | SpatialConstant + poisson_ratio_name: str r"""The argument name to use for Poisson's ratio :math:`\nu` when generating functions to evaluate this kernel. """ @@ -1210,29 +1144,21 @@ class LineOfCompressionKernel(ExpressionKernel): def __init__(self, dim: int = 3, axis: int = 2, - viscosity_mu: float | str | SpatialConstant = "mu", - poisson_ratio: float | str | SpatialConstant = "nu" + viscosity_mu_name: str = "mu", + poisson_ratio_name: str = "nu" ) -> None: - if isinstance(viscosity_mu, str): - mu = SpatialConstant(viscosity_mu) - else: - warn("Passing a non-str 'viscosity_mu' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) - - mu = viscosity_mu - - if isinstance(poisson_ratio, str): - nu = SpatialConstant(poisson_ratio) - else: - warn("Passing a non-str 'poisson_ratio' is deprecated. This will " - "raise a TypeError starting with Q1 2027.", - DeprecationWarning, stacklevel=2) + if not isinstance(viscosity_mu_name, str): + raise TypeError( + f"'viscosity_mu_name' is not a str: {type(viscosity_mu_name)}" + ) - if poisson_ratio == 0.5: # noqa: RUF069 - raise ValueError(f"{type(self)} cannot accept 'poisson_ratio' of 0.5") + if not isinstance(poisson_ratio_name, str): + raise TypeError( + f"'poisson_ratio_name' is not a str: {type(poisson_ratio_name)}" + ) - nu = poisson_ratio + mu = SpatialConstant(viscosity_mu_name) + nu = SpatialConstant(poisson_ratio_name) if dim == 3: d = make_sym_vector("d", dim) @@ -1247,31 +1173,21 @@ def __init__(self, super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "axis", axis) - object.__setattr__(self, "viscosity_mu", mu) - object.__setattr__(self, "poisson_ratio", nu) + object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) + object.__setattr__(self, "poisson_ratio_name", poisson_ratio_name) @override def __str__(self) -> str: return ( f"LineOfCompressionKnl{self.dim}D_{self.axis}" - f"({self.viscosity_mu}, {self.poisson_ratio})") + f"({self.viscosity_mu_name}, {self.poisson_ratio_name})") @override def __reduce__(self) -> tuple[object, ...]: - # TODO: remove this once we stop allowing non-str values for viscosity_mu - viscosity_mu = ( - self.viscosity_mu.name - if isinstance(self.viscosity_mu, SpatialConstant) - else self.viscosity_mu) - poisson_ratio = ( - self.poisson_ratio.name - if isinstance(self.poisson_ratio, SpatialConstant) - else self.poisson_ratio) - return ( self.__class__, - (self.dim, self.axis, viscosity_mu, poisson_ratio), - ) + (self.dim, self.axis, + self.viscosity_mu_name, self.poisson_ratio_name)) @property @override @@ -1281,16 +1197,10 @@ def is_complex_valued(self) -> bool: @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: - from sumpy.tools import get_all_variables - variables = [ - *get_all_variables(self.viscosity_mu), - *get_all_variables(self.poisson_ratio)] - - args: list[KernelArgument] = [ - KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) - for v in variables] - - return args + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.poisson_ratio_name, np.float64)), + ] @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index cb412e3d4..c6c8245e0 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -550,11 +550,11 @@ def test_as_scalar_pde_brinkman(): def test_elasticity_pickle(): from pickle import dumps, loads stokes_knl = StokesletKernel( - 3, 0, 1, viscosity_mu="mu1") + 3, 0, 1, viscosity_mu_name="mu1") elasticity_knl = ElasticityKernel( - 3, 0, 1, viscosity_mu="mu1", poisson_ratio="nu1") + 3, 0, 1, viscosity_mu_name="mu1", poisson_ratio_name="nu1") elasticity_helper_knl = LineOfCompressionKernel( - 3, 0, viscosity_mu="mu1", poisson_ratio="nu1") + 3, 0, viscosity_mu_name="mu1", poisson_ratio_name="nu1") assert loads(dumps(stokes_knl)) == stokes_knl assert loads(dumps(elasticity_knl)) == elasticity_knl From fee4d01ab741faf04b47d17b1ac013aad3ca8123 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 13 May 2026 17:16:09 -0500 Subject: [PATCH 304/335] Update baseline.json --- .basedpyright/baseline.json | 144 ------------------------------------ 1 file changed, 144 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index cb82cdc41..84a6a7514 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -10671,14 +10671,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 35, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -10847,78 +10839,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnusedParameter", "range": { @@ -10927,70 +10847,6 @@ "lineCount": 1 } }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { From 469be9ffe3adfbd260d7251aa27fed3878f078fb Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 29 May 2026 09:44:55 +0300 Subject: [PATCH 305/335] feat: use multiindex functions in tests --- sumpy/test/test_l2l_coeffs.py | 17 ++++++++--------- sumpy/test/test_m2m_coeffs.py | 15 +++++++-------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/sumpy/test/test_l2l_coeffs.py b/sumpy/test/test_l2l_coeffs.py index 42ce8ea91..482ae95f4 100644 --- a/sumpy/test/test_l2l_coeffs.py +++ b/sumpy/test/test_l2l_coeffs.py @@ -32,7 +32,6 @@ import numpy as np import pytest -import scipy.special as spsp from arraycontext import ( pytest_generate_tests_for_array_contexts, @@ -52,7 +51,7 @@ LaplaceKernel, YukawaKernel, ) -from sumpy.tools import build_matrix +from sumpy.tools import add_mi, build_matrix, mi_factorial, mi_power if TYPE_CHECKING: @@ -153,12 +152,12 @@ def test_l2l_coefficient_differences( max_abs_error = 0.0 for i, nu_i in enumerate(full_identifiers): - i_card = sum(np.array(nu_i)) + i_card = sum(nu_i) # Compute error by formula error = 0.0 + 0.0j for k, nu_jk in enumerate(stored_identifiers): - jk_card = sum(np.array(nu_jk)) + jk_card = sum(nu_jk) if jk_card >= i_card: continue @@ -167,24 +166,24 @@ def test_l2l_coefficient_differences( for q_idx in range(start_idx, end_idx): nu_q = full_identifiers[q_idx] - nu_sum = tuple(map(sum, zip(nu_q, nu_jk, strict=True))) + nu_sum = add_mi(nu_q, nu_jk) if nu_sum not in full_identifiers: continue deriv_idx = full_identifiers.index(nu_sum) gamma_deriv = to_scalar(p2l_full.coeffs[deriv_idx]) - h_pow = np.prod(h ** np.array(nu_q)) - fact_nu_q = np.prod(spsp.factorial(nu_q)) + h_pow = float(mi_power(h, nu_q)) + fact_nu_q = mi_factorial(nu_q) error += -M[i, k] * gamma_deriv * h_pow / fact_nu_q - error /= np.prod(spsp.factorial(nu_i)) + error /= mi_factorial(nu_i) error *= global_const # Compute direct difference true_i_idx = lexpn_idx.index(nu_i) mu_full = to_scalar(p2l2l_full.coeffs[true_i_idx]) - direct_diff = (mu_full - mu_c[i]) / np.prod(spsp.factorial(nu_i)) + direct_diff = (mu_full - mu_c[i]) / mi_factorial(nu_i) direct_diff *= global_const # Compute errors diff --git a/sumpy/test/test_m2m_coeffs.py b/sumpy/test/test_m2m_coeffs.py index 59e5cdf91..a44f10300 100644 --- a/sumpy/test/test_m2m_coeffs.py +++ b/sumpy/test/test_m2m_coeffs.py @@ -32,7 +32,6 @@ import numpy as np import pytest -import scipy.special as spsp from arraycontext import ( pytest_generate_tests_for_array_contexts, @@ -55,7 +54,7 @@ LaplaceKernel, YukawaKernel, ) -from sumpy.tools import build_matrix +from sumpy.tools import add_mi, build_matrix, mi_factorial, mi_power if TYPE_CHECKING: @@ -191,7 +190,7 @@ def test_m2m_coefficient_differences( error = 0.0 + 0.0j for s, nu_js in enumerate(stored_identifiers): - nu_js_card = sum(np.array(nu_js)) + nu_js_card = sum(nu_js) inner_sum = 0.0 + 0.0j if nu_js_card <= k_card: @@ -200,14 +199,14 @@ def test_m2m_coefficient_differences( for idx in range(start_idx, end_idx): nu_l = full_identifiers[idx] - nu_sum = tuple(a + b for a, b in zip(nu_l, nu_js, strict=True)) + nu_sum = add_mi(nu_l, nu_js) if nu_sum not in full_identifiers: continue derivative_idx = full_identifiers.index(nu_sum) - h_pow = np.prod(h ** np.array(nu_l)) - fact_nu_l = np.prod(spsp.factorial(nu_l)) + h_pow = float(mi_power(h, nu_l)) + fact_nu_l = mi_factorial(nu_l) inner_sum += coeffs_full[derivative_idx] * h_pow / fact_nu_l @@ -218,8 +217,8 @@ def test_m2m_coefficient_differences( if verbose: print(f"{k:3d} | {nu_k!s:>15s} | {k_card:6d} | " - f"{error.real: .8e}{error.imag:+.8e}j | " - f"{direct_diff.real: .8e}{direct_diff.imag:+.8e}j | " + f"{error.real:.8e}{error.imag:+.8e}j | " + f"{direct_diff.real:.8e}{direct_diff.imag:+.8e}j | " f"{abs_err:9.2e}") if verbose: From 17fbef73810a3ab7f08cf21df910a6a02708518f Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 29 May 2026 10:09:05 +0300 Subject: [PATCH 306/335] feat: remove simple usages of scipy --- sumpy/point_calculus.py | 12 ++++++++---- sumpy/test/curve.py | 35 ++++++++++++++++++++++------------- sumpy/test/geometries.py | 32 ++++++++++++++++++-------------- 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/sumpy/point_calculus.py b/sumpy/point_calculus.py index fb177185e..54a151de2 100644 --- a/sumpy/point_calculus.py +++ b/sumpy/point_calculus.py @@ -117,8 +117,9 @@ def __init__(self, weights_1d = None elif nodes == "legendre": - from scipy.special import legendre - points_1d, weights_1d, _ = legendre(npoints).weights.T + from numpy.polynomial.legendre import leggauss + + points_1d, weights_1d = leggauss(npoints) points_1d = points_1d * (h/2) weights_1d = weights_1d * (h/2) @@ -166,10 +167,13 @@ def basis(self) -> Sequence[ a high-order interpolation basis on the :py:attr:`points`. """ - from scipy.special import eval_chebyt - from pytools import indices_in_shape + def eval_chebyt(n: int, + x: Array1D[np.floating[Any]]) -> Array1D[np.floating[Any]]: + # T_n(x) = cos(n * arccos(x)), valid for x in [-1, 1] + return np.cos(n * np.arccos(x)) + def eval_basis( ind: tuple[int, ...], x: Array2D[np.floating[Any]] diff --git a/sumpy/test/curve.py b/sumpy/test/curve.py index 7960b4249..ce2536cea 100644 --- a/sumpy/test/curve.py +++ b/sumpy/test/curve.py @@ -23,36 +23,45 @@ THE SOFTWARE. """ -from typing import TYPE_CHECKING, final +from typing import TYPE_CHECKING, Any, final import numpy as np -from scipy import fftpack if TYPE_CHECKING: - from numpy.typing import NDArray + import optype.numpy as onp + + +def fftdiff(x: onp.Array1D[np.floating[Any]], *, + period: float = 1.0) -> onp.Array1D[np.floating[Any]]: + n = len(x) + return np.fft.ifft( + 2j * np.pi * np.fft.fftfreq(n, d=period/n) * np.fft.fft(x) + ).real @final class CurveGrid: - pos: NDArray[np.floating] - mean_curvature: NDArray[np.floating] - normal: NDArray[np.floating] + pos: onp.Array2D[np.floating[Any]] + mean_curvature: onp.Array1D[np.floating[Any]] + normal: onp.Array2D[np.floating[Any]] - def __init__(self, x: NDArray[np.floating], y: NDArray[np.floating]): + def __init__(self, + x: onp.Array1D[np.floating[Any]], + y: onp.Array1D[np.floating[Any]]) -> None: self.pos = np.vstack([x, y]).copy() - xp = self.xp = fftpack.diff(x, period=1) - yp = self.yp = fftpack.diff(y, period=1) - xpp = self.xpp = fftpack.diff(xp, period=1) - ypp = self.ypp = fftpack.diff(yp, period=1) + xp = self.xp = fftdiff(x, period=1) + yp = self.yp = fftdiff(y, period=1) + xpp = self.xpp = fftdiff(xp, period=1) + ypp = self.ypp = fftdiff(yp, period=1) self.mean_curvature = (xp*ypp-yp*xpp)/((xp**2+yp**2)**(3/2)) speed = self.speed = np.sqrt(xp**2+yp**2) self.normal = (np.vstack([yp, -xp])/speed).copy() - def __len__(self): + def __len__(self) -> int: return len(self.pos) - def plot(self): + def plot(self) -> None: import matplotlib.pyplot as pt pt.plot(self.pos[:, 0], self.pos[:, 1]) diff --git a/sumpy/test/geometries.py b/sumpy/test/geometries.py index 1687ab6dd..5104ab39d 100644 --- a/sumpy/test/geometries.py +++ b/sumpy/test/geometries.py @@ -24,27 +24,27 @@ """ from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any import numpy as np import numpy.linalg as la if TYPE_CHECKING: - from numpy.typing import NDArray + import optype.numpy as onp @dataclass(frozen=True) class Geometry: - nodes: NDArray[np.floating] - normals: NDArray[np.floating] - weights: NDArray[np.floating] - area_elements: NDArray[np.floating] + nodes: onp.ArrayND[np.floating[Any]] + normals: onp.ArrayND[np.floating[Any]] + weights: onp.Array1D[np.floating[Any]] + area_elements: onp.Array1D[np.floating[Any]] def _geometry_from_curve_nodes( - x: NDArray[np.floating], - y: NDArray[np.floating] + x: onp.Array1D[np.floating[Any]], + y: onp.Array1D[np.floating[Any]] ): npts: int npts, = x.shape @@ -95,12 +95,16 @@ def make_torus( r_minor * np.sin(v) ]) - def diff2d(ary: NDArray[np.floating]): - from scipy import fftpack - return np.array([ - fftpack.diff(ary[idx]) - for idx in np.ndindex(ary.shape[:-1]) - ]) + def fftdiff(x: onp.Array1D[np.floating[Any]], *, + period: float = 2.0 * np.pi) -> onp.Array1D[np.floating[Any]]: + n = len(x) + return np.fft.ifft( + 2j * np.pi * np.fft.fftfreq(n, d=period/n) * np.fft.fft(x) + ).real + + def diff2d(ary: onp.Array2D[np.floating[Any]]) -> onp.Array2D[np.floating[Any]]: + return np.array([fftdiff(ary[idx]) for idx in np.ndindex(ary.shape[:-1])]) + dnodes_du = np.array( [diff2d(nodes[i].T).T for i in range(3)]) dnodes_dv = np.array( From 7a14b91f94c45500abc4cd89fee5ae2d26be32ac Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 29 May 2026 10:09:13 +0300 Subject: [PATCH 307/335] docs: fix typo --- doc/misc.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/misc.rst b/doc/misc.rst index 7b4f427f8..3080189b9 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -111,7 +111,7 @@ The FAQ is maintained collaboratively on the Acknowledgments =============== -Work on meshmode was supported in part by +Work on sumpy was supported in part by * the US National Science Foundation under grant numbers DMS-1418961, DMS-1654756, SHF-1911019, and OAC-1931577. From c65b0560602610ef1529bf43ea53cea5d5bb7157 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 29 May 2026 10:12:04 +0300 Subject: [PATCH 308/335] chore: update baseline --- .basedpyright/baseline.json | 46 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 84a6a7514..0e95ae81e 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -12606,21 +12606,13 @@ ], "./sumpy/point_calculus.py": [ { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 66, + "startColumn": 17, + "endColumn": 60, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 30, - "lineCount": 3 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -15479,14 +15471,6 @@ } ], "./sumpy/test/geometries.py": [ - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -21323,6 +21307,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 39, + "endColumn": 40, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -21461,6 +21453,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -21488,8 +21488,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 37, + "endColumn": 47, "lineCount": 1 } }, @@ -21504,8 +21504,8 @@ { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 60, + "startColumn": 43, + "endColumn": 59, "lineCount": 1 } } From ab4945f54f4048f57d6c7ced19a4506e9500dc92 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 20 Apr 2026 09:39:05 -0500 Subject: [PATCH 309/335] Add heat kernel Squashed from https://github.com/inducer/sumpy/pull/185 heat kernel: update test_pde_check & remove test_toy_p2e2e2p reset the m2l reset toys.py revert to sumpy test_kernels update + toy p2m, p2l update heat kernel update heat kernel test_p2e2p revert + fix remove redundant lines update kernel class + e2e baseline Co-authored-by: Shawn Lin --- sumpy/e2e.py | 18 +- sumpy/kernel.py | 67 ++++++ sumpy/test/test_heat_translations.py | 315 +++++++++++++++++++++++++++ sumpy/test/test_kernels.py | 190 ++++++---------- sumpy/test/test_misc.py | 18 +- sumpy/toys.py | 4 +- 6 files changed, 484 insertions(+), 128 deletions(-) create mode 100644 sumpy/test/test_heat_translations.py diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 0e5bdfd76..e83a4f0e3 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -312,15 +312,25 @@ def get_translation_loopy_insns(self, result_dtype): src_rscale = sym.Symbol("src_rscale") tgt_rscale = sym.Symbol("tgt_rscale") + from sumpy.expansion.local import LocalExpansionBase + from sumpy.expansion.multipole import MultipoleExpansionBase + + assert isinstance(self.tgt_expansion, LocalExpansionBase) + assert isinstance(self.src_expansion, MultipoleExpansionBase) + m2l_translation = self.tgt_expansion.m2l_translation m2l_translation_classes_dependent_ndata = ( m2l_translation.translation_classes_dependent_ndata(self.tgt_expansion, self.src_expansion)) - m2l_translation_classes_dependent_data = \ - [sym.Symbol(f"data{i}") - for i in range(m2l_translation_classes_dependent_ndata)] + m2l_translation_classes_dependent_data = tuple( + sym.Symbol(f"data{i}") + for i in range(m2l_translation_classes_dependent_ndata)) - ncoeff_src = len(self.src_expansion) + if m2l_translation.use_preprocessing: + ncoeff_src = m2l_translation.preprocess_multipole_nexprs( + self.tgt_expansion, self.src_expansion) + else: + ncoeff_src = len(self.src_expansion) src_coeff_exprs = [sym.Symbol(f"src_coeffs{i}") for i in range(ncoeff_src)] diff --git a/sumpy/kernel.py b/sumpy/kernel.py index de6f3eebe..e0a7ba79f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -112,6 +112,9 @@ .. autoclass:: BrinkmanStressKernel :show-inheritance: :members: mapper_method +.. autoclass:: HeatKernel + :show-inheritance: + :members: mapper_method .. [Pozrikidis1992] C. Pozrikidis, *Boundary Integral and Singularity Methods for Linearized Viscous Flow*, @@ -1469,6 +1472,66 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: k = sym.Symbol(self.darcy_impermeability_name) return laplacian(laplacian(w) - k**2 * w) + +@dataclass(frozen=True, repr=False) +class HeatKernel(ExpressionKernel): + r"""The Green's function for the heat equation given by + :math:`e^{-r^2/{4 \alpha t}}/\sqrt{(4 \pi \alpha t)^d}` + where :math:`d` is the number of spatial dimensions. + + .. note:: + + This kernel cannot be used in an FMM yet and can only + be used in expansions and evaluations that occur forward + in the time dimension. + """ + heat_alpha_name: str + + mapper_method: ClassVar[str] = "map_heat_kernel" + + def __init__(self, spatial_dims: int, heat_alpha_name: str = "alpha"): + dim = spatial_dims + 1 + d = make_sym_vector("d", dim) + t = d[-1] + r = pymbolic_real_norm_2(d[:-1]) + alpha = SpatialConstant(heat_alpha_name) + expr = var("exp")(-r**2/(4 * alpha * t)) / var("sqrt")(t**(dim - 1)) + scaling = 1/var("sqrt")((4*var("pi")*alpha)**(dim - 1)) + + super().__init__( + dim, + expression=expr, + global_scaling_const=scaling, + ) + + object.__setattr__(self, "heat_alpha_name", heat_alpha_name) + + @property + @override + def is_complex_valued(self) -> bool: + return False + + @override + def __repr__(self): + return f"HeatKnl{self.dim - 1}D" + + @override + def get_args(self): + return [ + KernelArgument( + loopy_arg=lp.ValueArg(self.heat_alpha_name, np.float64), + )] + + @override + def get_pde_as_diff_op(self): + from sumpy.expansion.diff_op import diff, laplacian, make_identity_diff_op + alpha = sym.Symbol(self.heat_alpha_name) + w = make_identity_diff_op(self.dim - 1, time_dependent=True) + time_diff = [0]*self.dim + time_diff[-1] = 1 + return diff(w, tuple(time_diff)) - laplacian(w) * alpha + + # }}} @@ -1953,6 +2016,8 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: Callable[[Self, BrinkmanletKernel], Kernel] = map_expression_kernel map_brinkman_stress_kernel: \ Callable[[Self, BrinkmanStressKernel], Kernel] = map_expression_kernel + map_heat_kernel: \ + Callable[[Self, HeatKernel], Kernel] = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) @@ -2039,6 +2104,8 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> int: Callable[[Self, BrinkmanletKernel], int] = map_expression_kernel map_brinkman_stress_kernel: \ Callable[[Self, BrinkmanStressKernel], int] = map_expression_kernel + map_heat_kernel: \ + Callable[[Self, HeatKernel], int] = map_expression_kernel @override def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: diff --git a/sumpy/test/test_heat_translations.py b/sumpy/test/test_heat_translations.py new file mode 100644 index 000000000..d7fa323c9 --- /dev/null +++ b/sumpy/test/test_heat_translations.py @@ -0,0 +1,315 @@ +from __future__ import annotations + + +__copyright__ = "Copyright (C) 2012 Chaoqi Lin" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + + +import logging +import sys +from functools import partial + +import numpy as np +import numpy.linalg as la +import pytest + +from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts +from pytools.convergence import EOCRecorder + +import sumpy.toys as t +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import ( + LinearPDEConformingVolumeTaylorLocalExpansion, + VolumeTaylorLocalExpansion, +) +from sumpy.expansion.m2l import NonFFTM2LTranslationClassFactory +from sumpy.expansion.multipole import ( + LinearPDEConformingVolumeTaylorMultipoleExpansion, + VolumeTaylorMultipoleExpansion, +) +from sumpy.kernel import HeatKernel + + +logger = logging.getLogger(__name__) + +pytest_generate_tests = pytest_generate_tests_for_array_contexts([ + PytestPyOpenCLArrayContextFactory, + ]) + + +# {{{ test_heat_m2m + +@pytest.mark.parametrize("order", [4]) +@pytest.mark.parametrize("alpha", [1.0]) +@pytest.mark.parametrize(("knl", "mpole_expn_class"), [ + (HeatKernel(1), LinearPDEConformingVolumeTaylorMultipoleExpansion), + (HeatKernel(1), VolumeTaylorMultipoleExpansion), + ]) +def test_heat_m2m( + actx_factory: ArrayContextFactory, + knl, + mpole_expn_class, + alpha, + order): + # h-convergence of the heat-kernel M2M translation. + # src_center = (1, 0.5), shrinks with h (half-sizes h_x, h_t). + # tgt_center = (0, 2.5), fixed (half-sizes 1, 0.5). + # M2M from src_center to a shifted center c5 = src_center + (-h_x, h_t). + actx = actx_factory() + + extra_kwargs = {"alpha": alpha} + + t_sep = 1.0 + L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + + src_center = np.array([1.0, 0.5]) + tgt_center = np.array([0.0, 2.5]) + + grid = np.linspace(-1.0, 1.0, 5) + xs, ts = np.meshgrid(grid, grid, indexing="xy") + targets = np.vstack([ + tgt_center[0] + 1.0 * xs.ravel(), + tgt_center[1] + 0.5 * ts.ravel(), + ]) + + toy_ctx = t.ToyContext( + kernel=knl, + mpole_expn_class=mpole_expn_class, + extra_kernel_kwargs=extra_kwargs, + ) + + h_values = [1/4, 1/8, 1/16, 1/32] + rscale = 1 / order + + eoc_rec = EOCRecorder() + for h in h_values: + h_x = h * L + h_t = h * t_sep + + src_grid = np.linspace(-1.0, 1.0, 11) + sxs, sts = np.meshgrid(src_grid, src_grid, indexing="xy") + sources = np.vstack([ + src_center[0] + h_x * sxs.ravel(), + src_center[1] + h_t * sts.ravel(), + ]) + strengths = np.ones(sources.shape[1]) + + pt_src = t.PointSources(toy_ctx, sources, weights=strengths) + + c5 = src_center + np.array([-h_x, h_t]) + + p2m = t.multipole_expand(actx, pt_src, src_center, + order=order, rscale=rscale) + m2m = t.multipole_expand(actx, p2m, c5, order=order, rscale=rscale) + p2m_direct = t.multipole_expand(actx, pt_src, c5, + order=order, rscale=rscale) + + m2m_vals = np.asarray(m2m.eval(actx, targets)).ravel() + p2m_direct_vals = np.asarray(p2m_direct.eval(actx, targets)).ravel() + err = la.norm(m2m_vals - p2m_direct_vals) / la.norm(p2m_direct_vals) + eoc_rec.add_data_point(h, err) + + logger.info("knl %s order %d", knl, order) + logger.info("M2M:\n%s", eoc_rec) + + tgt_order = order + 1 + slack = 0.5 + assert eoc_rec.order_estimate() > tgt_order - slack + +# }}} + + +# {{{ test_heat_l2l + +@pytest.mark.parametrize("order", [4]) +@pytest.mark.parametrize("alpha", [1.0]) +@pytest.mark.parametrize(("knl", "local_expn_class"), [ + (HeatKernel(1), LinearPDEConformingVolumeTaylorLocalExpansion), + (HeatKernel(1), VolumeTaylorLocalExpansion), + ]) +def test_heat_l2l( + actx_factory: ArrayContextFactory, + knl, + local_expn_class, + alpha, + order): + # h-convergence of the heat-kernel L2L translation. + # src_center = (0, 0.5), fixed (half-widths 1, 0.5). + # tgt_center = (0, 2.5), shrinks with h (half-sizes h_x, h_t). + # L2L from tgt_center to a shifted center c2 = tgt_center - (h_x, h_t). + actx = actx_factory() + + extra_kwargs = {"alpha": alpha} + + src_center = np.array([0.0, 0.5]) + src_hx = 1.0 + src_ht = 0.5 + tgt_center = np.array([0.0, 2.5]) + + t_sep = 2 * src_ht + L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + + rng = np.random.default_rng(0) + src_grid = np.linspace(-1.0, 1.0, 11) + sxs, sts = np.meshgrid(src_grid, src_grid, indexing="xy") + sources = np.vstack([ + src_center[0] + src_hx * sxs.ravel(), + src_center[1] + src_ht * sts.ravel(), + ]) + strengths = rng.random(sources.shape[1]) + + toy_ctx = t.ToyContext( + kernel=knl, + local_expn_class=local_expn_class, + extra_kernel_kwargs=extra_kwargs, + ) + pt_src = t.PointSources(toy_ctx, sources, weights=strengths) + + rscale = 1 / order + p2l = t.local_expand(actx, pt_src, tgt_center, + order=order, rscale=rscale) + + h_values = [1/4, 1/8, 1/16, 1/32] + + eoc_rec = EOCRecorder() + for h in h_values: + h_x = h * L + h_t = h * t_sep + c2 = tgt_center - np.array([h_x, h_t]) + + l2l = t.local_expand(actx, p2l, c2, order=order, rscale=rscale) + p2l_direct = t.local_expand(actx, pt_src, c2, + order=order, rscale=rscale) + + tgt_grid = np.linspace(-1.0, 1.0, 5) + txs, tts = np.meshgrid(tgt_grid, tgt_grid, indexing="xy") + targets = np.vstack([ + tgt_center[0] + h_x * txs.ravel(), + tgt_center[1] + h_t * tts.ravel(), + ]) + l2l_vals = np.asarray(l2l.eval(actx, targets)).ravel() + p2l_direct_vals = np.asarray(p2l_direct.eval(actx, targets)).ravel() + err = la.norm(l2l_vals - p2l_direct_vals) / la.norm(p2l_direct_vals) + eoc_rec.add_data_point(h, err) + + logger.info("knl %s order %d", knl, order) + logger.info("L2L:\n%s", eoc_rec) + + tgt_order = order + 1 + slack = 0.5 + assert eoc_rec.order_estimate() > tgt_order - slack + +# }}} + + +# {{{ test_heat_m2l + +@pytest.mark.parametrize("order", [4]) +@pytest.mark.parametrize("alpha", [1.0]) +@pytest.mark.parametrize(("knl", "local_expn_class", "mpole_expn_class"), [ + (HeatKernel(1), + LinearPDEConformingVolumeTaylorLocalExpansion, + LinearPDEConformingVolumeTaylorMultipoleExpansion), + ]) +def test_heat_m2l( + actx_factory: ArrayContextFactory, + knl, + local_expn_class, + mpole_expn_class, + alpha, + order): + # h-convergence of the heat-kernel M2L translation. + # src_center = (0, 0.5), fixed (half-widths 1, 0.5). + # tgt_center = (0, 2.5), shrinks with h (half-sizes h_x, h_t). + # Local expansion formed at c2 = tgt_center - (h_x, h_t). + actx = actx_factory() + + extra_kwargs = {"alpha": alpha} + + src_center = np.array([0.0, 0.5]) + src_hx = 1.0 + src_ht = 0.5 + tgt_center = np.array([0.0, 2.5]) + + t_sep = 2 * src_ht + L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + + rng = np.random.default_rng(0) + src_grid = np.linspace(-1.0, 1.0, 11) + sxs, sts = np.meshgrid(src_grid, src_grid, indexing="xy") + sources = np.vstack([ + src_center[0] + src_hx * sxs.ravel(), + src_center[1] + src_ht * sts.ravel(), + ]) + strengths = rng.random(sources.shape[1]) + + m2l_factory = NonFFTM2LTranslationClassFactory() + m2l_translation = m2l_factory.get_m2l_translation_class(knl, local_expn_class)() + toy_ctx = t.ToyContext( + kernel=knl, + local_expn_class=partial(local_expn_class, + m2l_translation_override=m2l_translation), + mpole_expn_class=mpole_expn_class, + extra_kernel_kwargs=extra_kwargs, + ) + pt_src = t.PointSources(toy_ctx, sources, weights=strengths) + + rscale = 1 / order + p2m = t.multipole_expand(actx, pt_src, src_center, + order=order, rscale=rscale) + + h_values = [1/4, 1/8, 1/16, 1/32] + + eoc_rec = EOCRecorder() + for h in h_values: + h_x = h * L + h_t = h * t_sep + c2 = tgt_center - np.array([h_x, h_t]) + + m2l = t.local_expand(actx, p2m, c2, order=order, rscale=rscale) + + tgt_grid = np.linspace(-1.0, 1.0, 5) + txs, tts = np.meshgrid(tgt_grid, tgt_grid, indexing="xy") + targets = np.vstack([ + tgt_center[0] + h_x * txs.ravel(), + tgt_center[1] + h_t * tts.ravel(), + ]) + m2l_vals = np.asarray(m2l.eval(actx, targets)).ravel() + p2m_vals = np.asarray(p2m.eval(actx, targets)).ravel() + err = la.norm(m2l_vals - p2m_vals) / la.norm(p2m_vals) + eoc_rec.add_data_point(h, err) + + logger.info("knl %s order %d", knl, order) + logger.info("M2L:\n%s", eoc_rec) + + tgt_order = order + 1 + slack = 0.5 + assert eoc_rec.order_estimate() > tgt_order - slack + +# }}} + + +if __name__ == "__main__": + if len(sys.argv) > 1: + exec(sys.argv[1]) + else: + pytest.main([__file__]) diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 297bfe09f..44f13c35c 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -37,7 +37,7 @@ PyOpenCLArrayContext, pytest_generate_tests_for_array_contexts, ) -from pytools import memoize_on_first_arg, obj_array +from pytools import memoize_on_first_arg from pytools.convergence import PConvergenceVerifier import sumpy.symbolic as sym @@ -318,17 +318,6 @@ def test_p2e2p( else: knl = base_knl - target_kernels = [ - knl, - AxisTargetDerivative(0, knl), - ] - expn = expn_class(knl, order=order) - - from sumpy import P2P, E2PFromSingleBox, P2EFromSingleBox - p2e = P2EFromSingleBox(expn, kernels=[knl]) - e2p = E2PFromSingleBox(expn, kernels=target_kernels) - p2p = P2P(target_kernels, exclude_self=False) - from pytools.convergence import EOCRecorder eoc_rec_pot = EOCRecorder() eoc_rec_grad_x = EOCRecorder() @@ -341,16 +330,11 @@ def test_p2e2p( rng = np.random.default_rng(19) center = np.array([2, 1, 0][:knl.dim], np.float64) - sources = actx.from_numpy( + sources = ( 0.7 * (-0.5 + rng.random((knl.dim, nsources), dtype=np.float64)) + center[:, np.newaxis]) - strengths = actx.from_numpy(np.ones(nsources, dtype=np.float64) / nsources) - - source_boxes = actx.from_numpy(np.array([0], dtype=np.int32)) - box_source_starts = actx.from_numpy(np.array([0], dtype=np.int32)) - box_source_counts_nonchild = ( - actx.from_numpy(np.array([nsources], dtype=np.int32))) + strengths = np.ones(nsources, dtype=np.float64) / nsources extra_source_kwargs = extra_kwargs.copy() if isinstance(knl, DirectionalSourceDerivative): @@ -358,103 +342,71 @@ def test_p2e2p( dir_vec = np.vstack([np.cos(alpha), np.sin(alpha)]) extra_source_kwargs["dir_vec"] = actx.from_numpy(dir_vec) + if issubclass(expn_class, LocalExpansionBase): + toy_ctx = t.ToyContext( + knl, + local_expn_class=expn_class, + extra_source_kwargs=extra_source_kwargs, + extra_kernel_kwargs=extra_kwargs, + ) + toy_ctx_grad_x = t.ToyContext( + AxisTargetDerivative(0, knl), + local_expn_class=expn_class, + extra_source_kwargs=extra_source_kwargs, + extra_kernel_kwargs=extra_kwargs, + ) + else: + toy_ctx = t.ToyContext( + knl, + mpole_expn_class=expn_class, + extra_source_kwargs=extra_source_kwargs, + extra_kernel_kwargs=extra_kwargs, + ) + toy_ctx_grad_x = t.ToyContext( + AxisTargetDerivative(0, knl), + mpole_expn_class=expn_class, + extra_source_kwargs=extra_source_kwargs, + extra_kernel_kwargs=extra_kwargs, + ) + + point_sources = t.PointSources(toy_ctx, sources, strengths) + point_sources_grad_x = t.PointSources(toy_ctx_grad_x, sources, strengths) + from sumpy.visualization import FieldPlotter for h in h_values: if issubclass(expn_class, LocalExpansionBase): loc_center = np.array([5.5, 0.0, 0.0][:knl.dim]) + center - centers = np.array(loc_center, dtype=np.float64).reshape(knl.dim, 1) fp = FieldPlotter(loc_center, extent=h, npoints=res) else: eval_center = np.array([1/h, 0.0, 0.0][:knl.dim]) + center fp = FieldPlotter(eval_center, extent=0.1, npoints=res) - centers = (np.array([0.0, 0.0, 0.0][:knl.dim], - dtype=np.float64).reshape(knl.dim, 1) - + center[:, np.newaxis]) - centers = actx.from_numpy(centers) - targets = actx.from_numpy(obj_array.new_1d(fp.points)) + targets = fp.points rscale = 0.5 # pick something non-1 - # {{{ apply p2e - - mpoles = p2e(actx, - source_boxes=source_boxes, - box_source_starts=box_source_starts, - box_source_counts_nonchild=box_source_counts_nonchild, - centers=centers, - sources=sources, - strengths=(strengths,), - nboxes=1, - tgt_base_ibox=0, - rscale=rscale, - **extra_source_kwargs) - - # }}} - - # {{{ apply e2p - - ntargets = fp.points.shape[-1] - - box_target_starts = actx.from_numpy(np.array([0], dtype=np.int32)) - box_target_counts_nonchild = ( - actx.from_numpy(np.array([ntargets], dtype=np.int32))) - - pot, grad_x = e2p( - actx, - src_expansions=mpoles, - src_base_ibox=0, - target_boxes=source_boxes, - box_target_starts=box_target_starts, - box_target_counts_nonchild=box_target_counts_nonchild, - centers=centers, - targets=targets, - rscale=rscale, - **extra_kwargs) - pot = actx.to_numpy(pot) - grad_x = actx.to_numpy(grad_x) - - # }}} - - # {{{ compute (direct) reference solution - - pot_direct, grad_x_direct = p2p( - actx, - targets, sources, (strengths,), - **extra_source_kwargs) - pot_direct = actx.to_numpy(pot_direct) - grad_x_direct = actx.to_numpy(grad_x_direct) - - err_pot = la.norm((pot - pot_direct)/res**2) - err_grad_x = la.norm((grad_x - grad_x_direct)/res**2) - - if 1: - err_pot = err_pot / la.norm((pot_direct)/res**2) - err_grad_x = err_grad_x / la.norm((grad_x_direct)/res**2) - - if 0: - import matplotlib.pyplot as pt - from matplotlib.colors import Normalize - - pt.subplot(131) - im = fp.show_scalar_in_matplotlib(pot.real) - im.set_norm(Normalize(vmin=-0.1, vmax=0.1)) - - pt.subplot(132) - im = fp.show_scalar_in_matplotlib(pot_direct.real) - im.set_norm(Normalize(vmin=-0.1, vmax=0.1)) - pt.colorbar() - - pt.subplot(133) - im = fp.show_scalar_in_matplotlib(np.log10(1e-15+np.abs(pot-pot_direct))) - im.set_norm(Normalize(vmin=-6, vmax=1)) - - pt.colorbar() - pt.show() - - # }}} - + if issubclass(expn_class, LocalExpansionBase): + expn = t.local_expand(actx, point_sources, loc_center, + order=order, rscale=rscale) + expn_grad_x = t.local_expand(actx, point_sources_grad_x, loc_center, + order=order, rscale=rscale) + else: + expn = t.multipole_expand(actx, point_sources, center, + order=order, rscale=rscale) + expn_grad_x = t.multipole_expand(actx, point_sources_grad_x, center, + order=order, rscale=rscale) + + pot = expn.eval(actx, targets) + pot_direct = point_sources.eval(actx, targets) + grad_x = expn_grad_x.eval(actx, targets) + grad_x_direct = point_sources_grad_x.eval(actx, targets) + + # In the multipole expansion testing, ||pot_direct|| and + # ||grad_x_direct|| vary with h, so absolute error measure + # is more accurate for estimating convergence order. + err_pot = la.norm(pot - pot_direct) + err_grad_x = la.norm(grad_x - grad_x_direct) eoc_rec_pot.add_data_point(h, err_pot) eoc_rec_grad_x.add_data_point(h, err_grad_x) @@ -467,25 +419,25 @@ def test_p2e2p( tgt_order = order + 1 if issubclass(expn_class, LocalExpansionBase): tgt_order_grad = tgt_order - 1 - slack = 0.7 - grad_slack = 0.5 + slack = 0.5 + grad_slack = 0.6 else: tgt_order_grad = tgt_order + 1 - slack = 0.5 - grad_slack = 1 - - if order <= 2: - slack += 1 - grad_slack += 1 - - if isinstance(knl, DirectionalSourceDerivative): - slack += 1 - grad_slack += 2 - - if isinstance(base_knl, DirectionalSourceDerivative): - slack += 1 - grad_slack += 2 + grad_slack = 0.6 + + # For the 2D biharmonic kernel K(r) = r^2 log(r), + # the expected convergence order for multipole expansions is p-1. + # Adding source derivatives does not change the convergence order, + # since the differentiation is applied to the truncated Taylor expansion + # of the kernel. + if (isinstance(base_knl, DirectionalSourceDerivative) + and isinstance(base_knl.inner_kernel, BiharmonicKernel)): + if not issubclass(expn_class, LocalExpansionBase): + tgt_order = order - 1 + tgt_order_grad = tgt_order + 1 + slack = 0.7 + grad_slack = 0.7 if isinstance(base_knl, HelmholtzKernel): if base_knl.allow_evanescent: diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index c6c8245e0..04f05169b 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -62,6 +62,7 @@ BrinkmanStressKernel, ElasticityKernel, ExpressionKernel, + HeatKernel, HelmholtzKernel, Kernel, LaplaceKernel, @@ -86,7 +87,9 @@ # {{{ pde check for kernels class KernelInfo: - def __init__(self, kernel, **kwargs): + kernel: Kernel + + def __init__(self, kernel: Kernel, **kwargs): self.kernel = kernel self.extra_kwargs = kwargs diff_op = self.kernel.get_pde_as_diff_op() @@ -144,6 +147,9 @@ def nderivs(self): KernelInfo(BrinkmanStressKernel(2, 0, 1, 1), mu=5, k=3), KernelInfo(BrinkmanStressKernel(3, 0, 1, 0), mu=5, k=3), KernelInfo(BrinkmanStressKernel(3, 0, 1, 2), mu=5, k=3), + KernelInfo(HeatKernel(1), alpha=0.1), + KernelInfo(HeatKernel(2), alpha=0.1), + KernelInfo(HeatKernel(3), alpha=0.1), ], ids=repr) def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5): actx = actx_factory() @@ -153,9 +159,12 @@ def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5) extra_source_kwargs=knl_info.extra_kwargs) rng = np.random.default_rng(42) + source_points = rng.random(size=(dim, 50)) - 0.5 + if isinstance(knl_info.kernel, HeatKernel): + source_points[-1] += 0.5 pt_src = t.PointSources( tctx, - rng.random(size=(dim, 50)) - 0.5, + source_points, np.ones(50)) from pytools.convergence import EOCRecorder @@ -164,7 +173,10 @@ def test_pde_check_kernels(actx_factory: ArrayContextFactory, knl_info, order=5) eoc_rec = EOCRecorder() for h in [0.1, 0.05, 0.025]: - cp = CalculusPatch(np.array([1, 0, 0])[:dim], h=h, order=order) + if isinstance(knl_info.kernel, HeatKernel): + cp = CalculusPatch(np.array([0, 0, 0, 2])[-dim:], h=h, order=order) + else: + cp = CalculusPatch(np.array([1, 0, 0])[:dim], h=h, order=order) pot = pt_src.eval(actx, cp.points) pde = knl_info.pde_func(cp, pot) diff --git a/sumpy/toys.py b/sumpy/toys.py index 3ccda9c82..6d77405fa 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -183,14 +183,14 @@ def get_p2m(self, order: int): from sumpy import P2EFromSingleBox return P2EFromSingleBox( self.mpole_expn_class(self.no_target_deriv_kernel, order), - kernels=(self.kernel,)) + kernels=(self.no_target_deriv_kernel,)) @memoize_method def get_p2l(self, order: int): from sumpy import P2EFromSingleBox return P2EFromSingleBox( self.local_expn_class(self.no_target_deriv_kernel, order), - kernels=(self.kernel,)) + kernels=(self.no_target_deriv_kernel,)) @memoize_method def get_m2p(self, order: int): From c5ffd401189855ed141b8ad006b0d252c5fab2fd Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 3 Jun 2026 15:14:25 -0500 Subject: [PATCH 310/335] Minor typing in E2EBase --- sumpy/e2e.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sumpy/e2e.py b/sumpy/e2e.py index e83a4f0e3..70fd0ad49 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -42,6 +42,8 @@ if TYPE_CHECKING: from arraycontext import ArrayContext + from sumpy.expansion import ExpansionBase + logger = logging.getLogger(__name__) @@ -61,7 +63,14 @@ # {{{ E2EBase: base class class E2EBase(KernelCacheMixin, ABC): - def __init__(self, src_expansion, tgt_expansion, name=None): + src_expansion: ExpansionBase + tgt_expansion: ExpansionBase + name: str + + def __init__(self, + src_expansion: ExpansionBase, + tgt_expansion: ExpansionBase, + name: str | None = None): """ :arg expansion: a subclass of :class:`sympy.expansion.ExpansionBase` :arg strength_usage: A list of integers indicating which expression @@ -93,7 +102,9 @@ def __init__(self, src_expansion, tgt_expansion, name=None): raise ValueError("source and target expansions must have " "same dimensionality") - self.dim = src_expansion.dim + @property + def dim(self): + return self.tgt_expansion.dim @property @abstractmethod From 83c5db03ba9266e8c2b24e5d3115142db6ca1be8 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 3 Jun 2026 15:14:33 -0500 Subject: [PATCH 311/335] Update baseline --- .basedpyright/baseline.json | 12368 +++++++++++++++------------------- 1 file changed, 5609 insertions(+), 6759 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 0e95ae81e..97c797718 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -2364,202 +2364,186 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 23, - "endColumn": 36, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 38, - "endColumn": 51, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 57, - "lineCount": 1 + "startColumn": 20, + "endColumn": 66, + "lineCount": 3 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 53, - "endColumn": 57, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 41, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 41, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 16, - "endColumn": 41, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 8, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 47, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 28, + "startColumn": 20, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 + "startColumn": 20, + "endColumn": 46, + "lineCount": 3 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportArgumentType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 + "startColumn": 16, + "endColumn": 62, + "lineCount": 19 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 48, - "lineCount": 1 + "startColumn": 16, + "endColumn": 20, + "lineCount": 28 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, @@ -2567,7 +2551,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 38, + "endColumn": 32, "lineCount": 1 } }, @@ -2575,95 +2559,95 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 53, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 66, - "lineCount": 3 + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 78, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 55, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 75, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, @@ -2671,7 +2655,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 20, "lineCount": 1 } }, @@ -2679,7 +2663,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 20, "lineCount": 1 } }, @@ -2687,7 +2671,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 35, "lineCount": 1 } }, @@ -2695,124 +2679,196 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 35, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 48, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 40, - "endColumn": 48, + "startColumn": 29, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 47, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 8, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 54, + "startColumn": 37, + "endColumn": 49, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 37, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 19, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 3 + "startColumn": 45, + "endColumn": 60, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 16, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 25, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 78, + "startColumn": 49, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 12, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 44, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", + "range": { + "startColumn": 28, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, "endColumn": 18, @@ -2828,18 +2884,50 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 25, - "endColumn": 43, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 25, - "endColumn": 43, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 26, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 45, + "endColumn": 60, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 11, + "endColumn": 44, "lineCount": 1 } }, @@ -2847,32 +2935,32 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 25, - "endColumn": 43, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 25, - "endColumn": 43, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 62, - "lineCount": 19 + "startColumn": 26, + "endColumn": 53, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 20, - "lineCount": 28 + "startColumn": 54, + "endColumn": 66, + "lineCount": 1 } }, { @@ -2908,82 +2996,82 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 2 + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 62, + "startColumn": 29, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, @@ -2991,31 +3079,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 29, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 39, + "startColumn": 15, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 34, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 30, - "endColumn": 33, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, @@ -3094,24 +3182,32 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 50, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 70, "lineCount": 1 } }, @@ -3119,7 +3215,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 20, "lineCount": 1 } }, @@ -3127,39 +3223,39 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 35, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 42, - "endColumn": 54, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 48, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 48, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, @@ -3167,14 +3263,14 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 44, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 26, + "startColumn": 45, "endColumn": 60, "lineCount": 1 } @@ -3190,360 +3286,328 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 64, - "endColumn": 82, + "startColumn": 12, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 66, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 29, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 53, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 68, - "lineCount": 5 + "startColumn": 35, + "endColumn": 47, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 78, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 75, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, + "startColumn": 34, "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 59, + "startColumn": 21, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 30, + "startColumn": 21, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 56, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 49, + "startColumn": 49, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 37, + "startColumn": 23, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 58, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 44, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 25, - "endColumn": 68, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 15, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 12, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 61, + "startColumn": 39, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 29, + "endColumn": 67, "lineCount": 1 } }, @@ -3551,7 +3615,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, @@ -3559,7 +3623,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, @@ -3567,151 +3631,143 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 35, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 14, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, + "startColumn": 27, "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 44, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 68, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 23, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 65, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 46, + "endColumn": 58, "lineCount": 1 } }, @@ -3719,103 +3775,95 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 26, - "endColumn": 53, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 54, - "endColumn": 66, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 15, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { "startColumn": 45, - "endColumn": 63, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 62, + "startColumn": 12, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 40, + "endColumn": 76, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 57, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -3823,39 +3871,39 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 38, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 29, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, @@ -3918,265 +3966,273 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 33, + "startColumn": 27, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 49, + "startColumn": 64, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 71, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 45, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 59, + "startColumn": 25, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 50, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 35, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 70, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 70, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 63, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 36, - "endColumn": 54, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 68, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { "startColumn": 16, - "endColumn": 34, - "lineCount": 1 + "endColumn": 58, + "lineCount": 19 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 54, - "lineCount": 1 + "startColumn": 16, + "endColumn": 20, + "lineCount": 26 } }, { @@ -4196,402 +4252,396 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 43, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 50, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 70, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 77, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 53, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 70, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 21, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } - }, + } + ], + "./sumpy/e2p.py": [ { - "code": "reportMissingParameterType", + "code": "reportUnusedImport", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 26, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 34, - "endColumn": 44, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 55, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 66, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 49, - "endColumn": 59, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 67, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 13, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 13, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 39, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 19, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 57, + "startColumn": 37, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 32, + "startColumn": 20, "endColumn": 50, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 29, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 38, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 24, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 24, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 24, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 24, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 56, - "endColumn": 74, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 75, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, @@ -4606,120 +4656,120 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 46, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 48, - "endColumn": 73, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 49, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 67, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, + "startColumn": 18, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 17, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, @@ -4727,135 +4777,135 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 27, - "endColumn": 63, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 48, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 56, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 58, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, @@ -4863,606 +4913,608 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 54, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 32, - "endColumn": 50, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 17, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 17, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/__init__.py": [ { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 60, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAssignmentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 52, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 53, - "endColumn": 71, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 40, - "endColumn": 76, + "startColumn": 59, + "endColumn": 62, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/diff_op.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 9, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 33, + "endColumn": 82, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 17, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 31, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 9, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 17, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 17, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 21, - "endColumn": 46, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 48, - "endColumn": 66, + "startColumn": 9, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 48, - "endColumn": 73, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 49, + "startColumn": 11, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 68, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 39, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 39, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 23, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 47, + "startColumn": 23, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 29, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 16, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 63, + "startColumn": 15, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 76, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 19, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 28, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 34, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 35, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 52, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 33, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 62, + "startColumn": 53, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 53, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 53, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 35, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 35, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 47, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 61, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 12, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 12, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/level_to_order.py": [ { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 13, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 49, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 59, + "endColumn": 67, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/local.py": [ { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 49, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 49, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 42, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 47, - "endColumn": 65, + "startColumn": 46, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 21, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 43, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 39, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/loopy.py": [ { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 36, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, + "startColumn": 16, "endColumn": 28, "lineCount": 1 } @@ -5470,857 +5522,853 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 28, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/m2l.py": [ { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 26, - "endColumn": 44, + "startColumn": 53, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnusedParameter", "range": { "startColumn": 16, - "endColumn": 58, - "lineCount": 19 + "endColumn": 29, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { "startColumn": 16, - "endColumn": 20, - "lineCount": 26 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 84, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 83, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 67, - "endColumn": 75, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 38, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } - }, + } + ], + "./sumpy/expansion/multipole.py": [ { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, + "startColumn": 51, "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", "range": { "startColumn": 34, - "endColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 56, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 39, + "startColumn": 75, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 19, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 54, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 59, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 50, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 44, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 21, - "endColumn": 39, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 54, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } } ], - "./sumpy/e2p.py": [ + "./sumpy/fmm.py": [ { - "code": "reportUnusedImport", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 54, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 51, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 18, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 47, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 20, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 17, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 45, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 12, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 51, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 69, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 69, + "endColumn": 78, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 51, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 76, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 53, + "startColumn": 42, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 38, + "startColumn": 42, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 45, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 70, + "startColumn": 53, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 72, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 43, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 43, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 29, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 41, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 18, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 19, + "endColumn": 86, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 15, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 13, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, + "startColumn": 19, "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, + "startColumn": 19, "endColumn": 32, "lineCount": 1 } @@ -6328,48 +6376,48 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 + "startColumn": 12, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 + "startColumn": 12, + "endColumn": 63, + "lineCount": 2 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 13, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, @@ -6377,524 +6425,516 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 29, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 8, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 30, + "startColumn": 37, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 35, + "startColumn": 26, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } - } - ], - "./sumpy/expansion/__init__.py": [ + }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 8, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 20, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 59, - "endColumn": 62, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } - } - ], - "./sumpy/expansion/diff_op.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 33, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 82, + "startColumn": 16, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 84, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 31, - "endColumn": 40, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, + "startColumn": 8, "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 67, + "startColumn": 36, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 29, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 31, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 30, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 16, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 30, + "startColumn": 8, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 66, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 68, + "startColumn": 56, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 43, + "startColumn": 8, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 46, + "startColumn": 33, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 37, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 26, + "startColumn": 61, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 40, + "startColumn": 57, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 50, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 49, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 73, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 36, - "endColumn": 39, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportAny", "range": { - "startColumn": 52, - "endColumn": 62, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 35, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 53, - "endColumn": 66, + "startColumn": 26, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 77, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 79, + "startColumn": 8, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 52, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 54, + "startColumn": 48, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 52, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 54, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 72, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 61, - "endColumn": 69, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 36, + "startColumn": 4, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 36, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 4, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedVariable", "range": { - "startColumn": 39, - "endColumn": 44, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } - } - ], - "./sumpy/expansion/level_to_order.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 21, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 57, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 67, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } - } - ], - "./sumpy/expansion/local.py": [ + }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 49, - "endColumn": 65, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 73, + "startColumn": 33, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { "startColumn": 33, "endColumn": 43, @@ -6902,1098 +6942,210 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 46, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/loopy.py": [ - { - "code": "reportArgumentType", - "range": { - "startColumn": 36, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/m2l.py": [ - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 53, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 16, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - } - ], - "./sumpy/expansion/multipole.py": [ - { - "code": "reportArgumentType", - "range": { - "startColumn": 62, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 56, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 75, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 64, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - } - ], - "./sumpy/fmm.py": [ - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 58, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 69, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 69, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 53, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 53, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 43, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 86, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 20, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 45, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 37, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 37, - "lineCount": 1 + "startColumn": 15, + "endColumn": 20, + "lineCount": 3 } }, { "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 9, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 32, - "lineCount": 1 + "startColumn": 15, + "endColumn": 20, + "lineCount": 3 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 32, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 41, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 63, - "lineCount": 2 - } - }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 13, - "endColumn": 63, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 22, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 52, + "startColumn": 32, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 59, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 74, + "startColumn": 45, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 62, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 33, + "startColumn": 13, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 18, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 42, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 60, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 52, - "endColumn": 57, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, @@ -8001,31 +7153,15 @@ "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, @@ -8033,7 +7169,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 23, "lineCount": 1 } }, @@ -8041,639 +7177,623 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 29, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 46, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 56, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 51, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 54, + "startColumn": 51, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 61, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 61, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 34, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 44, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 66, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 62, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 34, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 12, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, + "startColumn": 12, "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 46, + "startColumn": 12, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 25, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 41, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 26, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 58, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 60, - "endColumn": 65, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 65, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 23, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 24, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 31, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnusedVariable", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 51, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 33, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 43, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 42, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 20, - "lineCount": 3 + "startColumn": 30, + "endColumn": 45, + "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 31, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 20, - "lineCount": 3 + "startColumn": 40, + "endColumn": 68, + "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 40, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 30, + "code": "reportArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 40, + "startColumn": 16, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 20, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 45, - "endColumn": 60, + "startColumn": 20, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 77, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 77, - "lineCount": 1 + "startColumn": 30, + "endColumn": 64, + "lineCount": 2 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 20, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 19, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 21, + "startColumn": 38, + "endColumn": 76, + "lineCount": 2 + } + }, + { + "code": "reportOptionalMemberAccess", + "range": { + "startColumn": 21, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 49, + "startColumn": 48, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 68, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 + "startColumn": 55, + "endColumn": 64, + "lineCount": 2 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 37, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 21, + "startColumn": 16, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 24, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 38, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 41, + "endColumn": 55, "lineCount": 1 } }, @@ -8681,7 +7801,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 15, "lineCount": 1 } }, @@ -8689,135 +7809,135 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 77, + "startColumn": 8, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 16, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 64, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 44, - "endColumn": 74, + "startColumn": 42, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 50, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 45, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 45, + "startColumn": 26, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 42, + "endColumn": 55, "lineCount": 1 } }, @@ -8825,7 +7945,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 22, "lineCount": 1 } }, @@ -8833,71 +7953,95 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 59, + "startColumn": 51, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 16, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 61, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 29, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 35, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 59, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 35, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, @@ -8905,31 +8049,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 50, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 57, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 24, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 55, + "endColumn": 65, "lineCount": 1 } }, @@ -8942,386 +8086,386 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 48, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 64, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 28, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 43, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 43, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 33, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 35, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 68, + "startColumn": 34, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 68, + "startColumn": 12, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 68, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 68, + "startColumn": 24, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 20, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 24, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 75, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 20, - "endColumn": 68, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 69, + "startColumn": 24, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 29, + "startColumn": 28, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 64, - "lineCount": 2 + "startColumn": 35, + "endColumn": 53, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 63, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 19, - "endColumn": 48, + "startColumn": 8, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 38, - "endColumn": 76, - "lineCount": 2 + "startColumn": 12, + "endColumn": 40, + "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 75, + "startColumn": 12, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 79, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 64, - "lineCount": 2 + "startColumn": 65, + "endColumn": 75, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 37, - "endColumn": 66, + "startColumn": 65, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 59, + "startColumn": 19, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 39, + "startColumn": 41, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 67, + "startColumn": 19, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 55, + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 55, + "startColumn": 51, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 35, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 15, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 39, + "startColumn": 33, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 64, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 67, + "startColumn": 38, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 79, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 79, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, @@ -9329,7 +8473,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 19, "lineCount": 1 } }, @@ -9337,7 +8481,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 19, "lineCount": 1 } }, @@ -9345,7 +8489,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 38, + "endColumn": 55, "lineCount": 1 } }, @@ -9353,7 +8497,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 38, + "endColumn": 55, "lineCount": 1 } }, @@ -9361,7 +8505,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 41, "lineCount": 1 } }, @@ -9369,55 +8513,55 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 40, + "startColumn": 43, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 55, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 58, + "endColumn": 73, "lineCount": 1 } }, @@ -9432,64 +8576,32 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 73, + "startColumn": 26, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 59, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 65, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 61, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, @@ -9497,15 +8609,7 @@ "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 23, + "endColumn": 35, "lineCount": 1 } }, @@ -9513,239 +8617,239 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 63, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 54, + "startColumn": 38, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 65, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 76, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 56, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 12, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 26, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 63, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 47, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 43, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 30, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 64, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 50, + "startColumn": 20, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 43, + "startColumn": 35, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 68, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 53, + "startColumn": 33, + "endColumn": 74, "lineCount": 1 } }, @@ -9753,7 +8857,7 @@ "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 19, "lineCount": 1 } }, @@ -9761,7 +8865,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 23, + "endColumn": 19, "lineCount": 1 } }, @@ -9769,7 +8873,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 40, + "endColumn": 38, "lineCount": 1 } }, @@ -9777,63 +8881,63 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 40, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 63, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 63, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 65, - "endColumn": 75, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 65, - "endColumn": 75, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 36, + "startColumn": 51, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 62, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 19, - "endColumn": 59, + "endColumn": 23, "lineCount": 1 } }, @@ -9857,15 +8961,15 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 20, - "endColumn": 50, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 61, + "startColumn": 47, + "endColumn": 57, "lineCount": 1 } }, @@ -9873,7 +8977,7 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 35, - "endColumn": 53, + "endColumn": 57, "lineCount": 1 } }, @@ -9889,55 +8993,15 @@ "code": "reportUnknownArgumentType", "range": { "startColumn": 33, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 27, "lineCount": 1 } }, @@ -9945,103 +9009,97 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 49, + "startColumn": 41, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 56, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 73, + "startColumn": 56, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 73, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 47, - "lineCount": 1 + "startColumn": 16, + "endColumn": 40, + "lineCount": 2 } - }, + } + ], + "./sumpy/kernel.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 26, - "endColumn": 69, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, @@ -10054,1021 +9112,1011 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 19, - "endColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 16, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportReturnType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 74, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 38, - "endColumn": 58, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 65, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, + "code": "reportArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 55, + "startColumn": 25, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 25, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 41, + "startColumn": 8, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 26, - "endColumn": 69, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { "startColumn": 20, - "endColumn": 46, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIndexIssue", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportCallIssue", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { "startColumn": 20, - "endColumn": 46, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 41, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 33, - "endColumn": 74, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 58, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { "startColumn": 40, - "endColumn": 52, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 4, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 33, + "endColumn": 59, "lineCount": 1 } - }, + } + ], + "./sumpy/p2e.py": [ { - "code": "reportMissingParameterType", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 77, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 20, - "endColumn": 46, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 57, + "startColumn": 59, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 57, + "startColumn": 59, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 57, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 23, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 20, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 31, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 39, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 27, - "endColumn": 39, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 17, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 54, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 56, - "endColumn": 68, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 68, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 2 + "startColumn": 19, + "endColumn": 32, + "lineCount": 1 } - } - ], - "./sumpy/kernel.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 29, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { "startColumn": 16, - "endColumn": 20, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 19, + "startColumn": 17, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 48, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 48, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 48, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 54, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 68, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 20, - "endColumn": 74, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 63, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 63, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 42, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 67, + "range": { + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 67, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 67, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 37, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 66, + "startColumn": 27, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitOverride", "range": { - "startColumn": 4, - "endColumn": 30, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 59, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } - } - ], - "./sumpy/p2e.py": [ + }, { - "code": "reportImplicitAbstractClass", + "code": "reportMissingParameterType", "range": { - "startColumn": 6, - "endColumn": 13, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 14, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 59, - "endColumn": 73, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 59, - "endColumn": 73, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 39, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 39, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 41, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 47, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 34, + "startColumn": 22, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 17, - "endColumn": 21, + "startColumn": 31, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 20, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, + "startColumn": 20, "endColumn": 32, "lineCount": 1 } @@ -11076,72 +10124,72 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 34, + "startColumn": 41, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 51, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 61, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 31, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 14, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 62, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 37, + "endColumn": 57, "lineCount": 1 } }, @@ -11149,239 +10197,241 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 40, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/p2p.py": [ { - "code": "reportUnknownMemberType", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 51, + "range": { + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 28, + "startColumn": 39, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 61, + "startColumn": 53, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 68, - "endColumn": 81, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 27, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 31, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 42, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 42, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 27, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 56, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 58, + "endColumn": 72, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 13, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 27, - "endColumn": 35, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, @@ -11389,159 +10439,151 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 8, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 23, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 42, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 60, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 31, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 40, - "endColumn": 46, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnusedParameter", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 36, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, @@ -11554,42 +10596,42 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 31, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, + "range": { + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 41, - "endColumn": 49, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, @@ -11597,39 +10639,39 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 28, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 77, - "lineCount": 1 + "startColumn": 12, + "endColumn": 21, + "lineCount": 13 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, @@ -11637,23 +10679,23 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 14, - "endColumn": 42, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 37, - "endColumn": 57, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, @@ -11661,1749 +10703,1787 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 16, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 51, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 31, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 40, - "endColumn": 46, + "endColumn": 50, "lineCount": 1 } - } - ], - "./sumpy/p2p.py": [ + }, { - "code": "reportImplicitAbstractClass", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 6, - "endColumn": 13, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 + "startColumn": 12, + "endColumn": 21, + "lineCount": 11 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 39, - "endColumn": 51, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 67, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 53, - "endColumn": 67, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 35, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 56, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 27, - "endColumn": 30, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 70, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 72, - "lineCount": 1 + "startColumn": 12, + "endColumn": 21, + "lineCount": 21 } }, { - "code": "reportUnknownArgumentType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 25, - "endColumn": 37, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 44, - "endColumn": 48, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 25, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportMissingParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 35, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 40, + "startColumn": 57, + "endColumn": 77, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 68, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 53, - "endColumn": 61, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 60, - "endColumn": 64, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 18, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 20, - "endColumn": 32, + "startColumn": 22, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 37, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 27, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 29, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 14, + "endColumn": 36, + "lineCount": 1 + } + } + ], + "./sumpy/point_calculus.py": [ + { + "code": "reportAny", + "range": { + "startColumn": 17, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 22, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 13 + "startColumn": 15, + "endColumn": 40, + "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 46, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 27, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 11 + "startColumn": 36, + "endColumn": 49, + "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 36, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 51, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 + "startColumn": 15, + "endColumn": 56, + "lineCount": 4 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 + "startColumn": 15, + "endColumn": 60, + "lineCount": 4 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 78, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 21, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 + "startColumn": 15, + "endColumn": 31, + "lineCount": 5 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 19, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 23, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 15, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 21 + "startColumn": 15, + "endColumn": 29, + "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 15, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 55, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 57, - "endColumn": 77, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 12, + "endColumn": 42, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 12, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 19, + "endColumn": 40, "lineCount": 1 } - }, + } + ], + "./sumpy/qbx.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 24, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 42, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 48, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 49, + "startColumn": 12, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 22, + "startColumn": 27, "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 53, + "startColumn": 17, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 13, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 53, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } - } - ], - "./sumpy/point_calculus.py": [ + }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 17, - "endColumn": 60, + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 43, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 27, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 39, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, + "startColumn": 47, "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 47, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 30, - "endColumn": 52, + "startColumn": 34, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 59, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 33, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 52, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 16, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 66, + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 49, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 63, + "startColumn": 29, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 56, - "lineCount": 4 + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 60, - "lineCount": 4 + "startColumn": 35, + "endColumn": 39, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 78, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportAssignmentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 49, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 21, + "startColumn": 49, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 31, - "lineCount": 5 + "startColumn": 63, + "endColumn": 75, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 35, + "startColumn": 63, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 50, + "startColumn": 28, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 + "startColumn": 16, + "endColumn": 70, + "lineCount": 3 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 36, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 29, + "startColumn": 62, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 23, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 24, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 46, + "startColumn": 29, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 42, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 46, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 40, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } - } - ], - "./sumpy/qbx.py": [ + }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 31, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 26, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedVariable", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 57, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 16, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 18, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 39, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 25, - "endColumn": 37, - "lineCount": 1 + "startColumn": 12, + "endColumn": 25, + "lineCount": 8 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, + "startColumn": 12, "endColumn": 21, - "lineCount": 1 + "lineCount": 15 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownParameterType", "range": { - "startColumn": 13, - "endColumn": 16, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 39, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 39, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 50, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 14, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 58, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 59, - "endColumn": 63, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 37, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 52, - "endColumn": 58, + "startColumn": 33, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 16, - "endColumn": 19, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 17, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { - "startColumn": 24, + "startColumn": 8, "endColumn": 27, "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 34, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 33, + "startColumn": 40, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 23, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 25, + "lineCount": 6 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 21, + "lineCount": 13 + } + }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 49, - "endColumn": 61, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 61, + "startColumn": 21, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 63, - "endColumn": 75, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 75, + "startColumn": 30, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 57, + "startColumn": 39, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 58, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 70, - "lineCount": 3 + "startColumn": 58, + "endColumn": 64, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 15, - "endColumn": 32, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 43, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 74, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 23, - "endColumn": 35, + "startColumn": 8, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 24, - "endColumn": 38, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportImplicitOverride", "range": { - "startColumn": 29, - "endColumn": 41, + "startColumn": 8, + "endColumn": 27, "lineCount": 1 } }, @@ -13423,14 +12503,6 @@ "lineCount": 1 } }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -13448,42 +12520,18 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnusedVariable", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 57, - "endColumn": 69, + "startColumn": 23, + "endColumn": 44, "lineCount": 1 } }, @@ -13512,75 +12560,75 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 + "startColumn": 12, + "endColumn": 25, + "lineCount": 14 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 + "startColumn": 12, + "endColumn": 21, + "lineCount": 20 } }, { - "code": "reportAny", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 39, - "endColumn": 45, + "startColumn": 8, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 12, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 34, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 8 + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 15 + "startColumn": 56, + "endColumn": 76, + "lineCount": 1 } }, { @@ -13635,7 +12683,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 39, - "endColumn": 48, + "endColumn": 54, "lineCount": 1 } }, @@ -13643,63 +12691,63 @@ "code": "reportMissingParameterType", "range": { "startColumn": 39, - "endColumn": 48, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 50, - "endColumn": 65, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 65, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 20, + "startColumn": 24, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 38, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 14, + "endColumn": 36, "lineCount": 1 } }, @@ -13714,280 +12762,272 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 4, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 27, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 12, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 44, + "startColumn": 21, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 25, - "lineCount": 6 + "endColumn": 34, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 13 + "startColumn": 21, + "endColumn": 34, + "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 19, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 21, - "endColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 28, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 37, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 37, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 54, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 54, + "startColumn": 37, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 67, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 33, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 46, + "endColumn": 75, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 54, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 20, + "startColumn": 60, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 27, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { "startColumn": 34, - "endColumn": 38, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 38, + "startColumn": 40, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 55, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 50, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, @@ -13995,142 +13035,150 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 23, - "endColumn": 44, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 38, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 26, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 41, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 14 + "startColumn": 22, + "endColumn": 40, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 20 + "startColumn": 22, + "endColumn": 31, + "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 32, + "startColumn": 42, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, + "startColumn": 50, "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 54, + "startColumn": 56, + "endColumn": 75, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 76, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 76, + "startColumn": 22, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 22, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 22, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportUnusedClass", + "range": { + "startColumn": 6, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 28, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 30, + "startColumn": 34, "endColumn": 37, "lineCount": 1 } @@ -14138,7 +13186,7 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 30, + "startColumn": 34, "endColumn": 37, "lineCount": 1 } @@ -14147,7 +13195,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 39, - "endColumn": 54, + "endColumn": 55, "lineCount": 1 } }, @@ -14155,7 +13203,7 @@ "code": "reportMissingParameterType", "range": { "startColumn": 39, - "endColumn": 54, + "endColumn": 55, "lineCount": 1 } }, @@ -14163,7 +13211,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 25, "lineCount": 1 } }, @@ -14171,535 +13219,579 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 25, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 27, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 13, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 24, - "endColumn": 34, + "startColumn": 13, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 13, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 38, - "endColumn": 44, + "startColumn": 13, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 36, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 29, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 52, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 18, + "startColumn": 45, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 25, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 19, - "endColumn": 25, + "startColumn": 37, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 39, + "startColumn": 39, + "endColumn": 58, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 40, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 34, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 34, + "startColumn": 29, + "endColumn": 48, "lineCount": 1 } - }, + } + ], + "./sumpy/symbolic.py": [ { - "code": "reportAttributeAccessIssue", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 28, - "endColumn": 34, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 20, - "endColumn": 35, + "startColumn": 11, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 7, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 48, + "startColumn": 10, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedFunction", "range": { - "startColumn": 67, - "endColumn": 79, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 33, + "startColumn": 15, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 33, - "endColumn": 44, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 44, + "startColumn": 16, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 46, - "endColumn": 75, + "startColumn": 39, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 58, + "startColumn": 4, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 74, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 16, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 31, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 53, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 51, + "startColumn": 33, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 66, + "startColumn": 41, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 34, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 31, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 50, + "startColumn": 50, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 37, + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 53, + "startColumn": 37, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 24, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 31, + "startColumn": 41, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 27, + "endColumn": 32, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 16, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 42, - "endColumn": 76, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 54, + "startColumn": 32, + "endColumn": 88, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 56, - "endColumn": 75, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportReturnType", "range": { - "startColumn": 22, - "endColumn": 34, + "startColumn": 23, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 22, - "endColumn": 31, + "startColumn": 5, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOperatorIssue", "range": { - "startColumn": 22, - "endColumn": 34, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 40, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } - }, + } + ], + "./sumpy/test/coeff_test_tools.py": [ { - "code": "reportUnusedClass", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 6, - "endColumn": 39, + "startColumn": 7, + "endColumn": 12, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 14, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 14, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 55, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 55, + "startColumn": 14, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 23, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 41, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, @@ -14707,7 +13799,7 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 22, + "endColumn": 24, "lineCount": 1 } }, @@ -14715,15 +13807,15 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 29, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 26, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, @@ -14731,47 +13823,55 @@ "code": "reportUnannotatedClassAttribute", "range": { "startColumn": 13, - "endColumn": 27, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 21, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 50, + "startColumn": 8, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 52, - "endColumn": 70, + "startColumn": 21, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 17, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 63, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, @@ -14779,31 +13879,31 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 56, + "startColumn": 35, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 35, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 58, + "startColumn": 35, + "endColumn": 72, "lineCount": 1 } }, @@ -14811,587 +13911,599 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 26, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 59, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 4, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 18, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 48, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } - } - ], - "./sumpy/symbolic.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } - }, + } + ], + "./sumpy/test/curve.py": [ { - "code": "reportUnusedImport", - "range": { - "startColumn": 15, - "endColumn": 24, + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 11, - "endColumn": 16, + "startColumn": 22, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 7, + "startColumn": 8, "endColumn": 15, "lineCount": 1 } - }, + } + ], + "./sumpy/test/geometries.py": [ { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 10, - "endColumn": 21, + "startColumn": 20, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnusedFunction", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 21, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 24, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 28, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 57, + "startColumn": 28, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 56, + "startColumn": 23, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 4, - "endColumn": 15, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 4, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 4, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 28, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 8, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 33, - "endColumn": 40, + "startColumn": 8, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 46, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 26, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 36, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 16, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 27, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 38, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 50, - "endColumn": 56, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedExpression", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 37, - "endColumn": 46, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 33, + "startColumn": 14, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 56, + "startColumn": 14, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 16, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 16, - "endColumn": 29, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 16, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 88, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 22, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 37, + "startColumn": 22, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 5, - "endColumn": 10, + "startColumn": 16, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 16, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 16, + "endColumn": 42, "lineCount": 1 } } ], - "./sumpy/test/coeff_test_tools.py": [ + "./sumpy/test/test_codegen.py": [ { - "code": "reportMissingTypeStubs", + "code": "reportArgumentType", "range": { - "startColumn": 7, - "endColumn": 12, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 17, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 23, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportEmptyAbstractUsage", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 11, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 19, - "endColumn": 22, + "startColumn": 75, + "endColumn": 76, + "lineCount": 1 + } + } + ], + "./sumpy/test/test_cse.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 9, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 9, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 23, - "endColumn": 34, + "startColumn": 9, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 0, + "endColumn": 1, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 45, + "startColumn": 3, + "endColumn": 4, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 6, + "endColumn": 7, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 9, + "endColumn": 10, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 13, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportAny", "range": { - "startColumn": 13, - "endColumn": 18, + "startColumn": 0, + "endColumn": 2, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 38, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { "startColumn": 8, - "endColumn": 14, + "endColumn": 10, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 24, + "startColumn": 16, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 40, + "startColumn": 20, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 24, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 28, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 48, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 70, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 72, + "startColumn": 40, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 26, + "startColumn": 45, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 50, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 56, + "endColumn": 67, "lineCount": 1 } }, @@ -15399,314 +14511,310 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 4, - "endColumn": 17, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 26, - "endColumn": 38, + "startColumn": 9, + "endColumn": 13, "lineCount": 1 } - } - ], - "./sumpy/test/curve.py": [ + }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 41, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 22, - "endColumn": 55, + "startColumn": 41, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } - } - ], - "./sumpy/test/geometries.py": [ + }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 41, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 33, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 38, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 36, + "startColumn": 33, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 11, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 10, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 4, - "endColumn": 11, + "startColumn": 42, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 35, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 18, + "startColumn": 36, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 24, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 24, + "startColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 34, + "startColumn": 31, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 44, + "startColumn": 34, + "endColumn": 48, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 8, + "endColumn": 9, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 27, - "endColumn": 36, + "startColumn": 11, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 38, - "endColumn": 47, + "startColumn": 24, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 35, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnusedExpression", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 23, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 39, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 41, + "startColumn": 16, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 42, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 44, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 24, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 46, + "startColumn": 37, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 22, - "endColumn": 48, + "startColumn": 46, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, + "startColumn": 23, "endColumn": 31, "lineCount": 1 } @@ -15714,156 +14822,152 @@ { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 40, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } - } - ], - "./sumpy/test/test_codegen.py": [ + }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 39, + "startColumn": 34, "endColumn": 49, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 37, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportEmptyAbstractUsage", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 60, + "startColumn": 35, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 75, - "endColumn": 76, + "startColumn": 27, + "endColumn": 66, "lineCount": 1 } - } - ], - "./sumpy/test/test_cse.py": [ + }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 38, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 23, + "startColumn": 47, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 32, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 0, - "endColumn": 1, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 3, - "endColumn": 4, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 6, - "endColumn": 7, + "startColumn": 15, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 10, - "lineCount": 1 + "startColumn": 32, + "endColumn": 53, + "lineCount": 2 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 13, - "endColumn": 24, + "startColumn": 16, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 0, - "endColumn": 2, + "startColumn": 34, + "endColumn": 51, "lineCount": 1 } }, @@ -15878,271 +14982,255 @@ { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 10, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 18, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 22, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 26, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 28, - "endColumn": 30, + "startColumn": 21, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 25, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 29, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 43, + "startColumn": 15, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 45, - "endColumn": 48, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 62, + "endColumn": 64, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 56, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 8, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 29, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 29, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 31, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 41, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 9, - "endColumn": 13, + "startColumn": 46, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 48, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 58, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { "startColumn": 35, - "endColumn": 39, + "endColumn": 36, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 28, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 47, + "startColumn": 15, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 15, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 47, + "startColumn": 15, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 23, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 39, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 35, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 49, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 39, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 32, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, + "startColumn": 46, "endColumn": 48, "lineCount": 1 } @@ -16150,343 +15238,351 @@ { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 15, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 48, + "startColumn": 15, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 9, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 11, - "endColumn": 39, + "startColumn": 44, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 24, - "endColumn": 29, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 43, + "startColumn": 51, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 49, + "startColumn": 15, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 15, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 16, - "endColumn": 17, + "startColumn": 9, + "endColumn": 18, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 20, + "startColumn": 26, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 42, - "endColumn": 43, + "startColumn": 29, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 44, - "endColumn": 45, - "lineCount": 1 + "startColumn": 8, + "endColumn": 14, + "lineCount": 25 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 46, - "endColumn": 53, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 31, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 12, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 49, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 66, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 39, + "endColumn": 50, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 37, - "endColumn": 40, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 51, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 27, - "endColumn": 66, + "startColumn": 12, + "endColumn": 13, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 45, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 47, - "endColumn": 64, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 5, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 36, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 32, - "endColumn": 53, - "lineCount": 2 + "startColumn": 41, + "endColumn": 52, + "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 32, + "startColumn": 8, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 34, - "endColumn": 51, + "startColumn": 17, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 21, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 30, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportAny", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 33, + "startColumn": 19, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 21, + "startColumn": 25, "endColumn": 33, "lineCount": 1 } @@ -16494,320 +15590,328 @@ { "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 27, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 31, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 33, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 9, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 62, - "endColumn": 64, + "startColumn": 18, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 40, + "startColumn": 12, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 60, + "startColumn": 15, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 31, - "endColumn": 34, + "startColumn": 24, + "endColumn": 25, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 41, - "endColumn": 42, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 57, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 48, - "endColumn": 51, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 59, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 45, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 35, - "endColumn": 36, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 41, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 15, - "endColumn": 28, + "endColumn": 16, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 39, + "startColumn": 28, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 15, - "endColumn": 41, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 29, + "startColumn": 12, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 41, - "endColumn": 47, + "startColumn": 13, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 35, - "endColumn": 37, + "startColumn": 15, + "endColumn": 18, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 49, - "endColumn": 51, + "startColumn": 20, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 26, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 39, - "endColumn": 43, + "startColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 32, - "endColumn": 34, + "startColumn": 29, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 46, - "endColumn": 48, + "startColumn": 34, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 14, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { "startColumn": 15, - "endColumn": 51, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOperatorIssue", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportIndexIssue", "range": { - "startColumn": 44, - "endColumn": 50, + "startColumn": 22, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 39, + "startColumn": 39, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingTypeStubs", "range": { - "startColumn": 51, - "endColumn": 53, + "startColumn": 9, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 15, - "endColumn": 32, + "startColumn": 32, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 35, + "startColumn": 14, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 18, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 26, - "endColumn": 27, + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 18, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 29, - "endColumn": 30, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 25 + "startColumn": 4, + "endColumn": 6, + "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, @@ -16815,55 +15919,47 @@ "code": "reportAny", "range": { "startColumn": 18, - "endColumn": 19, + "endColumn": 20, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 30, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 30, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 4, + "endColumn": 6, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 17, + "endColumn": 20, "lineCount": 1 } }, @@ -16871,1763 +15967,1779 @@ "code": "reportAny", "range": { "startColumn": 34, - "endColumn": 35, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 39, + "startColumn": 47, "endColumn": 50, "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 36, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 48, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportConstantRedefinition", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportCallIssue", "range": { - "startColumn": 12, - "endColumn": 13, + "startColumn": 11, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 21, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, + "startColumn": 16, "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 33, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 41, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 33, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 36, - "endColumn": 37, + "startColumn": 15, + "endColumn": 53, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_distributed.py": [ { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 41, - "endColumn": 52, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 18, + "startColumn": 63, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 21, - "endColumn": 29, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 30, - "endColumn": 31, + "startColumn": 8, + "endColumn": 12, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 17, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 27, + "startColumn": 14, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 28, - "endColumn": 29, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 24, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 34, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 34, - "endColumn": 35, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 41, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 17, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 18, - "endColumn": 19, + "startColumn": 27, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 13, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 23, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 24, - "endColumn": 25, + "startColumn": 40, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 25, - "endColumn": 33, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnusedParameter", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 62, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 45, - "endColumn": 56, + "startColumn": 62, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 19, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 33, + "startColumn": 27, + "endColumn": 31, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 45, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 46, + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 25, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 13, - "endColumn": 14, + "startColumn": 33, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 21, + "startColumn": 49, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 39, + "startColumn": 42, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 28, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 29, - "endColumn": 32, + "startColumn": 39, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 35, + "startColumn": 57, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 18, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 16, + "startColumn": 35, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 23, + "startColumn": 42, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 53, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingTypeStubs", + "code": "reportMissingParameterType", "range": { - "startColumn": 9, - "endColumn": 14, + "startColumn": 25, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 32, - "endColumn": 33, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 15, + "startColumn": 42, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 41, + "startColumn": 36, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 53, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 71, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 28, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOptionalMemberAccess", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 15, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportAttributeAccessIssue", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 37, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportOptionalSubscript", "range": { - "startColumn": 18, - "endColumn": 20, + "startColumn": 40, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 40, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 30, - "endColumn": 41, + "startColumn": 46, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 30, - "endColumn": 49, + "startColumn": 46, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 6, + "startColumn": 14, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 17, - "endColumn": 20, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 8, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 36, - "endColumn": 38, + "startColumn": 23, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 49, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportConstantRedefinition", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 8, + "startColumn": 29, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownParameterType", "range": { - "startColumn": 11, - "endColumn": 34, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 27, + "startColumn": 39, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 37, + "code": "reportMissingParameterType", + "range": { + "startColumn": 49, + "endColumn": 81, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 44, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_fmm.py": [ { - "code": "reportUnknownArgumentType", + "code": "reportUnusedImport", "range": { - "startColumn": 33, - "endColumn": 36, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 15, - "endColumn": 53, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } - } - ], - "./sumpy/test/test_distributed.py": [ + }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 18, - "endColumn": 25, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 63, - "endColumn": 70, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 14, - "endColumn": 22, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 24, - "endColumn": 32, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 41, - "endColumn": 73, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 65, + "endColumn": 81, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 16, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 38, + "startColumn": 41, + "endColumn": 64, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 66, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 61, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 54, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, + "startColumn": 37, "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 62, + "endColumn": 69, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 12, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 67, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 19, - "endColumn": 24, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 27, - "endColumn": 31, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 45, - "endColumn": 50, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 49, - "endColumn": 54, + "startColumn": 12, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 41, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 12, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOptionalOperand", "range": { - "startColumn": 49, - "endColumn": 54, + "startColumn": 24, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 80, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 53, - "endColumn": 61, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 39, - "endColumn": 84, + "startColumn": 16, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 57, - "endColumn": 65, + "startColumn": 21, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 18, + "startColumn": 8, "endColumn": 25, "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 15, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 42, + "startColumn": 21, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 68, + "endColumn": 84, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 42, - "endColumn": 60, + "startColumn": 16, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportRedeclaration", "range": { - "startColumn": 25, - "endColumn": 40, + "startColumn": 16, + "endColumn": 34, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 58, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 36, - "endColumn": 51, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 53, - "endColumn": 69, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 71, - "endColumn": 76, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 28, - "endColumn": 59, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportOptionalMemberAccess", + "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 15, - "endColumn": 42, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnusedParameter", "range": { - "startColumn": 37, - "endColumn": 42, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownParameterType", "range": { - "startColumn": 40, - "endColumn": 55, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 40, - "endColumn": 58, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownParameterType", "range": { - "startColumn": 46, - "endColumn": 67, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 46, - "endColumn": 70, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 14, - "endColumn": 19, + "startColumn": 35, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 21, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 43, + "endColumn": 54, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 27, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 29, - "endColumn": 37, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 47, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 62, + "endColumn": 65, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 49, - "endColumn": 81, + "startColumn": 31, + "endColumn": 49, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } - } - ], - "./sumpy/test/test_fmm.py": [ + }, { - "code": "reportUnusedImport", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 15, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 29, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 38, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 64, + "endColumn": 71, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 8, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 45, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 67, + "endColumn": 70, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 39, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 65, - "endColumn": 81, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 39, + "startColumn": 48, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 64, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 73, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 61, - "endColumn": 77, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 60, + "code": "reportMissingParameterType", + "range": { + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnusedParameter", "range": { - "startColumn": 62, - "endColumn": 69, + "startColumn": 27, + "endColumn": 33, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 35, + "endColumn": 46, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 28, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 48, + "endColumn": 52, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 35, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnusedParameter", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 54, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 27, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 14, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportOptionalOperand", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 68, + "startColumn": 17, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 19, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 8, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 67, + "startColumn": 20, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 60, + "startColumn": 20, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 4, + "endColumn": 16, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 70, + "endColumn": 79, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 21, - "endColumn": 37, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 68, - "endColumn": 84, + "startColumn": 40, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 16, - "endColumn": 46, + "startColumn": 12, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 46, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportRedeclaration", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 34, + "startColumn": 48, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 63, + "endColumn": 68, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 36, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 8, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOptionalSubscript", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportOptionalSubscript", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 70, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 22, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 42, + "endColumn": 53, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 55, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportMissingParameterType", "range": { - "startColumn": 35, - "endColumn": 41, + "startColumn": 64, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 28, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportGeneralTypeIssues", "range": { - "startColumn": 43, - "endColumn": 54, + "startColumn": 12, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 67, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 23, + "endColumn": 30, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", + "range": { + "startColumn": 11, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 32, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 56, - "endColumn": 60, + "startColumn": 34, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 24, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 62, - "endColumn": 65, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 49, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 32, - "endColumn": 44, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, @@ -18640,626 +17752,644 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 29, - "endColumn": 36, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 22, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 64, - "endColumn": 71, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 37, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 45, - "endColumn": 52, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 67, - "endColumn": 70, + "startColumn": 12, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 12, + "endColumn": 21, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 46, + "startColumn": 23, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 8, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 43, + "endColumn": 47, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 48, - "endColumn": 55, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 48, - "endColumn": 55, + "startColumn": 8, + "endColumn": 19, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", + "range": { + "startColumn": 43, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportGeneralTypeIssues", "range": { "startColumn": 23, - "endColumn": 30, + "endColumn": 60, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 37, + "endColumn": 41, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 58, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 79, + "endColumn": 83, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 27, - "endColumn": 33, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 60, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 22, + "endColumn": 29, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_heat_translations.py": [ { - "code": "reportUnusedParameter", + "code": "reportUnusedImport", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 67, + "endColumn": 71, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportUnknownParameterType", "range": { - "startColumn": 48, - "endColumn": 52, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 57, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 27, - "endColumn": 45, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 28, - "endColumn": 40, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 14, - "endColumn": 38, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 17, - "endColumn": 51, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 19, - "endColumn": 39, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 74, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 50, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 20, - "endColumn": 73, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportAny", "range": { - "startColumn": 4, - "endColumn": 16, + "startColumn": 28, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 70, - "endColumn": 79, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 53, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 40, - "endColumn": 47, + "startColumn": 54, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 57, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 46, - "endColumn": 56, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 48, - "endColumn": 53, + "startColumn": 60, + "endColumn": 66, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 63, - "endColumn": 68, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 36, - "endColumn": 55, + "startColumn": 35, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownParameterType", "range": { - "startColumn": 47, - "endColumn": 50, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 47, - "endColumn": 53, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportOptionalSubscript", + "code": "reportUnknownParameterType", "range": { - "startColumn": 70, - "endColumn": 73, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 70, - "endColumn": 76, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 35, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 42, - "endColumn": 53, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 55, - "endColumn": 62, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 64, - "endColumn": 73, + "startColumn": 27, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 31, + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 49, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 76, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 31, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 11, - "endColumn": 48, + "startColumn": 45, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 25, - "endColumn": 32, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 41, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 27, + "startColumn": 64, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 42, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 56, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 35, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 52, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 22, - "endColumn": 39, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 58, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 12, + "endColumn": 28, "lineCount": 1 } }, @@ -19267,7 +18397,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 17, "lineCount": 1 } }, @@ -19275,7 +18405,15 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, @@ -19283,127 +18421,151 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 21, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 5, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 30, + "startColumn": 16, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 27, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 60, + "endColumn": 63, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 65, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 57, + "lineCount": 2 + } + }, + { + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 29, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 19, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 47, + "startColumn": 54, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportGeneralTypeIssues", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 23, - "endColumn": 60, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 37, - "endColumn": 41, + "startColumn": 49, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 58, - "endColumn": 62, + "startColumn": 8, + "endColumn": 11, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 79, - "endColumn": 83, + "startColumn": 50, + "endColumn": 55, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 64, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 39, - "endColumn": 49, + "startColumn": 34, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 60, - "endColumn": 67, + "startColumn": 35, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 29, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } } @@ -19665,46 +18827,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 41, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19761,283 +18883,163 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 69, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 52, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 57, - "lineCount": 2 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 58, - "endColumn": 65, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 58, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 18, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 34, - "endColumn": 61, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 24, - "endColumn": 31, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 18, - "endColumn": 30, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 54, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", "range": { "startColumn": 12, - "endColumn": 22, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 46, - "endColumn": 61, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 57, - "endColumn": 61, + "startColumn": 36, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 29, + "endColumn": 39, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 32, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 22, + "startColumn": 32, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 14, + "startColumn": 51, + "endColumn": 58, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 52, + "endColumn": 59, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 23, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 19, + "startColumn": 47, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 38, - "endColumn": 45, + "startColumn": 44, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 41, - "endColumn": 51, + "startColumn": 51, + "endColumn": 56, "lineCount": 1 } }, @@ -22092,40 +21094,16 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 39, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, + "startColumn": 41, + "endColumn": 47, "lineCount": 1 } }, @@ -22145,46 +21123,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -22201,14 +21139,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -22257,38 +21187,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 43, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 51, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -22313,38 +21211,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 46, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -22420,32 +21286,40 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 28, - "endColumn": 37, + "startColumn": 36, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 14, - "endColumn": 31, + "startColumn": 18, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { "startColumn": 22, - "endColumn": 25, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 34, - "endColumn": 37, + "startColumn": 14, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 22, + "endColumn": 25, "lineCount": 1 } }, @@ -22529,14 +21403,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -23843,14 +22709,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -24090,14 +22948,6 @@ "endColumn": 54, "lineCount": 1 } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } } ], "./sumpy/test/test_target_deriv.py": [ From 7ef3acdc219b7b693c2a56197367d8c3edb3d064 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 12 Jun 2026 16:38:48 +0300 Subject: [PATCH 312/335] feat: replace deprecated empty_like --- sumpy/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 755f13ad0..7d2847ccb 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1062,7 +1062,7 @@ def run_opencl_fft( raise RuntimeError("inplace fft is not supported") else: # FIXME: All very imperative. FFT functionality should move into the actx? - output_vec = actx.np.empty_like(input_vec) # pyright: ignore[reportUnknownMemberType, reportAttributeAccessIssue] + output_vec = actx.np.zeros_like(input_vec) meth = app.ifft if inverse else app.fft From b8c9ad57bceb2e704f5ff17b6d0e2dbe01de47b7 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 12 Jun 2026 16:41:41 +0300 Subject: [PATCH 313/335] chore: update baseline --- .basedpyright/baseline.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 97c797718..b8384a044 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -24179,6 +24179,22 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 12, + "endColumn": 22, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 44, + "endColumn": 53, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -24204,7 +24220,7 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 8, "endColumn": 28, From 6cecb0bbb6124308aa9f6244aee043d4624d3bdd Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 23 Jun 2026 15:01:58 -0400 Subject: [PATCH 314/335] Bump bpr python version to 3.12 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index af402d9ad..69d4b68e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -177,7 +177,7 @@ reportPossiblyUnboundVariable = "hint" # https://github.com/microsoft/pyright/issues/746 reportImportCycles = "none" -pythonVersion = "3.10" +pythonVersion = "3.12" pythonPlatform = "All" exclude = [ From d8a9c4604377faf9a2e0d140a2a468f58c3e89d1 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 23 Jun 2026 15:02:37 -0400 Subject: [PATCH 315/335] Update baseline --- .basedpyright/baseline.json | 842 ++++-------------------------------- 1 file changed, 90 insertions(+), 752 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index b8384a044..dc34e465d 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -52,6 +52,16 @@ } } ], + "./examples/fourier.py": [ + { + "code": "reportReturnType", + "range": { + "startColumn": 11, + "endColumn": 17, + "lineCount": 1 + } + } + ], "./examples/sym-exp-complexity.py": [ { "code": "reportConstantRedefinition", @@ -9256,26 +9266,18 @@ } }, { - "code": "reportIndexIssue", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", + "code": "reportCallIssue", "range": { "startColumn": 20, - "endColumn": 34, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportArgumentType", "range": { "startColumn": 20, - "endColumn": 34, + "endColumn": 74, "lineCount": 1 } }, @@ -9303,14 +9305,6 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -11149,14 +11143,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -11237,14 +11223,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -11253,46 +11231,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -11309,14 +11247,6 @@ "lineCount": 4 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportReturnType", "range": { @@ -11349,14 +11279,6 @@ "lineCount": 5 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportOperatorIssue", "range": { @@ -11405,6 +11327,22 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 23, + "endColumn": 39, + "lineCount": 3 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 23, + "endColumn": 38, + "lineCount": 1 + } + }, { "code": "reportArgumentType", "range": { @@ -11453,14 +11391,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13649,14 +13579,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 88, - "lineCount": 1 - } - }, { "code": "reportReturnType", "range": { @@ -13981,22 +13903,6 @@ } ], "./sumpy/test/curve.py": [ - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -14007,22 +13913,6 @@ } ], "./sumpy/test/geometries.py": [ - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -14047,46 +13937,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 4, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 28, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -14166,163 +14016,67 @@ "endColumn": 11, "lineCount": 1 } - }, + } + ], + "./sumpy/test/test_codegen.py": [ { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 27, + "startColumn": 39, + "endColumn": 49, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 39, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 14, - "endColumn": 41, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 16, + "startColumn": 29, "endColumn": 30, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 42, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 44, + "startColumn": 28, + "endColumn": 29, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportEmptyAbstractUsage", "range": { - "startColumn": 22, - "endColumn": 37, + "startColumn": 11, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 22, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - } - ], - "./sumpy/test/test_codegen.py": [ - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportEmptyAbstractUsage", - "range": { - "startColumn": 11, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 75, "endColumn": 76, @@ -16501,14 +16255,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 14, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -17199,14 +16945,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 71, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -17215,14 +16953,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 45, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -17711,22 +17441,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -17926,22 +17640,6 @@ "endColumn": 49, "lineCount": 1 } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 22, - "endColumn": 29, - "lineCount": 1 - } } ], "./sumpy/test/test_heat_translations.py": [ @@ -18121,14 +17819,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -18321,14 +18011,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -18545,14 +18227,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -18603,32 +18277,8 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", "range": { "startColumn": 30, "endColumn": 61, @@ -18636,7 +18286,7 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 28, "endColumn": 43, @@ -18644,21 +18294,13 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { "startColumn": 38, "endColumn": 58, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -18707,22 +18349,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 53, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19171,22 +18797,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 41, - "lineCount": 15 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 46, - "lineCount": 15 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19267,30 +18877,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19299,22 +18885,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 59, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19323,22 +18893,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 59, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -19347,35 +18901,11 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { "startColumn": 8, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 53, + "endColumn": 42, "lineCount": 1 } }, @@ -19899,14 +19429,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19915,14 +19437,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19939,14 +19453,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -19963,14 +19469,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20035,14 +19533,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -20059,14 +19549,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20147,6 +19629,14 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -20156,7 +19646,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 48, "endColumn": 51, @@ -20383,14 +19873,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21323,6 +20805,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 37, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -21403,6 +20893,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 41, + "lineCount": 1 + } + }, { "code": "reportArgumentType", "range": { @@ -21859,14 +21357,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -21875,14 +21365,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -22948,6 +22430,14 @@ "endColumn": 54, "lineCount": 1 } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 38, + "lineCount": 1 + } } ], "./sumpy/test/test_target_deriv.py": [ @@ -23587,14 +23077,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 13, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -23659,14 +23141,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 38, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -23683,14 +23157,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportReturnType", "range": { @@ -24429,14 +23895,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -24629,14 +24087,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -24861,30 +24311,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 31, - "lineCount": 9 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 36, - "lineCount": 9 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 8, - "endColumn": 38, - "lineCount": 9 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -25213,14 +24639,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 62, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -25517,14 +24935,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -25637,22 +25047,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 80, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -27231,22 +26625,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -27271,14 +26649,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -27287,30 +26657,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -27351,14 +26697,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportMissingImports", "range": { From a176a103c7716eba267b788d839414afc96762fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 20:12:49 +0000 Subject: [PATCH 316/335] build(deps): bump actions/checkout from 6 to 7 Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/autopush.yml | 2 +- .github/workflows/ci.yml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/autopush.yml b/.github/workflows/autopush.yml index 469280898..be4271c64 100644 --- a/.github/workflows/autopush.yml +++ b/.github/workflows/autopush.yml @@ -10,7 +10,7 @@ jobs: if: startsWith(github.repository, 'inducer/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | curl -L -O https://tiker.net/ci-support-v0 . ./ci-support-v0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a22d16eb0..330f50bfd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: name: Ruff runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: astral-sh/setup-uv@v7 - name: "Main Script" run: | @@ -26,13 +26,13 @@ jobs: name: Typos runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: crate-ci/typos@master basedpyright: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: @@ -50,7 +50,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" run: | CONDA_ENVIRONMENT=.test-conda-env-py3.yml @@ -63,7 +63,7 @@ jobs: name: Conda Pytest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -75,7 +75,7 @@ jobs: name: Conda Pytest Symengine with Loopy FFT runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -86,7 +86,7 @@ jobs: name: Conda Pytest Symengine runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" run: | curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh @@ -96,7 +96,7 @@ jobs: name: Conda Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" run: | grep -v symengine .test-conda-env-py3.yml > .test-conda-env.yml @@ -114,7 +114,7 @@ jobs: name: Tests for downstream project ${{ matrix.downstream_project }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: "Main Script" env: DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }} From f26d42b0439fed5f0e2340622ab7013ec0bd2da5 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 2 Jun 2026 14:54:43 +0300 Subject: [PATCH 317/335] feat: rename Kernel to ScalarKernel --- sumpy/expansion/__init__.py | 34 ++--- sumpy/expansion/level_to_order.py | 6 +- sumpy/expansion/local.py | 16 +-- sumpy/expansion/loopy.py | 8 +- sumpy/expansion/m2l.py | 10 +- sumpy/expansion/multipole.py | 12 +- sumpy/fmm.py | 12 +- sumpy/kernel.py | 231 +++++++++++++++--------------- sumpy/p2p.py | 4 +- sumpy/test/test_fmm.py | 6 +- sumpy/test/test_kernels.py | 10 +- sumpy/test/test_l2l_coeffs.py | 4 +- sumpy/test/test_m2m_coeffs.py | 4 +- sumpy/test/test_misc.py | 3 +- sumpy/test/test_target_deriv.py | 4 +- sumpy/tools.py | 12 +- sumpy/toys.py | 8 +- 17 files changed, 191 insertions(+), 193 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index eee9f8822..a79ce51f9 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -48,7 +48,7 @@ from sumpy.expansion.diff_op import MultiIndex from sumpy.expansion.local import LocalExpansionBase from sumpy.expansion.multipole import MultipoleExpansionBase - from sumpy.kernel import Kernel, KernelArgument + from sumpy.kernel import KernelArgument, ScalarKernel logger = logging.getLogger(__name__) @@ -99,7 +99,7 @@ class ExpansionBase(ABC): .. automethod:: __ne__ """ - kernel: Kernel + kernel: ScalarKernel order: int use_rscale: bool = field(kw_only=True, default=True) @@ -152,7 +152,7 @@ def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @abstractmethod def coefficients_from_source(self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -171,7 +171,7 @@ def coefficients_from_source(self, """ def coefficients_from_source_vec(self, - kernels: Sequence[Kernel], + kernels: Sequence[ScalarKernel], avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -198,7 +198,7 @@ def coefficients_from_source_vec(self, return result def loopy_expansion_formation(self, - kernels: Sequence[Kernel], + kernels: Sequence[ScalarKernel], strength_usage: Sequence[int], nstrengths: int ) -> lp.TranslationUnit: @@ -212,7 +212,7 @@ def loopy_expansion_formation(self, @abstractmethod def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, @@ -224,7 +224,7 @@ def evaluate(self, in *coeffs*. """ - def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: + def loopy_evaluator(self, kernels: Sequence[ScalarKernel]) -> lp.TranslationUnit: """ :returns: a :mod:`loopy` kernel that returns the evaluated target transforms of the potential given by *kernels*. @@ -236,7 +236,7 @@ def loopy_evaluator(self, kernels: Sequence[Kernel]) -> lp.TranslationUnit: # {{{ copy - def with_kernel(self, kernel: Kernel) -> ExpansionBase: + def with_kernel(self, kernel: ScalarKernel) -> ExpansionBase: return replace(self, kernel=kernel) def copy(self, **kwargs: Any) -> Self: @@ -566,7 +566,7 @@ class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler): .. automethod:: __init__ """ - knl: Kernel + knl: ScalarKernel @override def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @@ -973,7 +973,7 @@ class MultipoleExpansionFactory(Protocol): .. automethod:: __call__ """ def __call__(self, - kernel: Kernel, + kernel: ScalarKernel, order: int, *, use_rscale: bool = True ) -> MultipoleExpansionBase: @@ -987,7 +987,7 @@ class LocalExpansionFactory(Protocol): .. automethod:: __call__ """ def __call__(self, - kernel: Kernel, + kernel: ScalarKernel, order: int, *, use_rscale: bool = True ) -> LocalExpansionBase: @@ -1002,7 +1002,7 @@ class ExpansionFactoryBase(ABC): @abstractmethod def get_local_expansion_class(self, - base_kernel: Kernel, / + base_kernel: ScalarKernel, / ) -> LocalExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. @@ -1010,7 +1010,7 @@ def get_local_expansion_class(self, @abstractmethod def get_multipole_expansion_class(self, - base_kernel: Kernel, / + base_kernel: ScalarKernel, / ) -> MultipoleExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. @@ -1024,7 +1024,7 @@ class VolumeTaylorExpansionFactory(ExpansionFactoryBase): @override def get_local_expansion_class( - self, base_kernel: Kernel, / + self, base_kernel: ScalarKernel, / ) -> type[LocalExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. @@ -1034,7 +1034,7 @@ def get_local_expansion_class( @override def get_multipole_expansion_class( - self, base_kernel: Kernel, / + self, base_kernel: ScalarKernel, / ) -> type[MultipoleExpansionBase]: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. @@ -1050,7 +1050,7 @@ class DefaultExpansionFactory(ExpansionFactoryBase): @override def get_local_expansion_class(self, - base_kernel: Kernel, /, + base_kernel: ScalarKernel, /, ) -> LocalExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. @@ -1067,7 +1067,7 @@ def get_local_expansion_class(self, @override def get_multipole_expansion_class(self, - base_kernel: Kernel, /, + base_kernel: ScalarKernel, /, ) -> MultipoleExpansionFactory: """ :returns: a subclass of :class:`ExpansionBase` suitable for *base_kernel*. diff --git a/sumpy/expansion/level_to_order.py b/sumpy/expansion/level_to_order.py index 0c975da6f..791e2f675 100644 --- a/sumpy/expansion/level_to_order.py +++ b/sumpy/expansion/level_to_order.py @@ -43,7 +43,7 @@ from collections.abc import Sequence import sumpy.symbolic as sym - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel class TreeLike(Protocol): @@ -71,7 +71,7 @@ class FMMLibExpansionOrderFinder: """ def __call__(self, - kernel: Kernel, + kernel: ScalarKernel, kernel_args: dict[str, sym.Expr] | Sequence[tuple[str, sym.Expr]], tree: TreeLike, level: int) -> int: @@ -163,7 +163,7 @@ class SimpleExpansionOrderFinder: """ def __call__(self, - kernel: Kernel, + kernel: ScalarKernel, kernel_args: dict[str, sym.Expr] | Sequence[tuple[str, sym.Expr]], tree: TreeLike, level: int) -> int: diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index afeaaceb4..86e561677 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -56,7 +56,7 @@ HankelBased2DMultipoleExpansion, MultipoleExpansionBase, ) - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel logger = logging.getLogger(__name__) @@ -131,7 +131,7 @@ def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @override def coefficients_from_source(self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -171,7 +171,7 @@ def coefficients_from_source(self, @override def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, @@ -224,7 +224,7 @@ def m2l_translation(self) -> M2LTranslationBase: @override def coefficients_from_source_vec(self, - kernels: Sequence[Kernel], + kernels: Sequence[ScalarKernel], avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -272,7 +272,7 @@ def save_temp(x: sym.Expr) -> sym.Expr: @override def coefficients_from_source(self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -283,7 +283,7 @@ def coefficients_from_source(self, @override def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, @@ -556,7 +556,7 @@ def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @override def coefficients_from_source(self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -580,7 +580,7 @@ def coefficients_from_source(self, @override def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, diff --git a/sumpy/expansion/loopy.py b/sumpy/expansion/loopy.py index a52cfbb5b..9944183c9 100644 --- a/sumpy/expansion/loopy.py +++ b/sumpy/expansion/loopy.py @@ -42,14 +42,16 @@ from pymbolic.typing import ArithmeticExpression from sumpy.expansion import ExpansionBase - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel logger = logging.getLogger(__name__) def make_e2p_loopy_kernel( - expansion: ExpansionBase, kernels: Sequence[Kernel]) -> lp.TranslationUnit: + expansion: ExpansionBase, + kernels: Sequence[ScalarKernel], + ) -> lp.TranslationUnit: """ A helper function that creates a :mod:`loopy` kernel for multipole/local evaluation. @@ -152,7 +154,7 @@ def make_e2p_loopy_kernel( def make_p2e_loopy_kernel( expansion: ExpansionBase, - kernels: Sequence[Kernel], + kernels: Sequence[ScalarKernel], strength_usage: Sequence[int], nstrengths: int) -> lp.TranslationUnit: """ diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 5a77df51f..92b43f73a 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -59,7 +59,7 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import MultiIndex - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel logger = logging.getLogger(__name__) @@ -88,7 +88,7 @@ class M2LTranslationClassFactoryBase(ABC): @abstractmethod def get_m2l_translation_class( self, - base_kernel: Kernel, + base_kernel: ScalarKernel, local_expansion_class: type[LocalExpansionBase] ) -> type[M2LTranslationBase]: """ @@ -105,7 +105,7 @@ class NonFFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): @override def get_m2l_translation_class( self, - base_kernel: Kernel, + base_kernel: ScalarKernel, local_expansion_class: type[LocalExpansionBase] ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( @@ -129,7 +129,7 @@ class FFTM2LTranslationClassFactory(M2LTranslationClassFactoryBase): @override def get_m2l_translation_class( self, - base_kernel: Kernel, + base_kernel: ScalarKernel, local_expansion_class: type[LocalExpansionBase] ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( @@ -153,7 +153,7 @@ class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): @override def get_m2l_translation_class( self, - base_kernel: Kernel, + base_kernel: ScalarKernel, local_expansion_class: type[LocalExpansionBase] ) -> type[M2LTranslationBase]: from sumpy.expansion.local import ( diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 197e076e4..a9f98ce7e 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -45,7 +45,7 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import MultiIndex - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel logger = logging.getLogger(__name__) @@ -76,7 +76,7 @@ class VolumeTaylorMultipoleExpansionBase(VolumeTaylorExpansionMixin, @override def coefficients_from_source_vec(self, - kernels: Sequence[Kernel], + kernels: Sequence[ScalarKernel], avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -116,7 +116,7 @@ def coefficients_from_source_vec(self, @override def coefficients_from_source( self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -130,7 +130,7 @@ def coefficients_from_source( @override def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, @@ -440,7 +440,7 @@ def get_coefficient_identifiers(self) -> Sequence[MultiIndex]: @override def coefficients_from_source( self, - kernel: Kernel, + kernel: ScalarKernel, avec: sym.Matrix, bvec: sym.Matrix | None, rscale: sym.Expr, @@ -469,7 +469,7 @@ def coefficients_from_source( @override def evaluate(self, - kernel: Kernel, + kernel: ScalarKernel, coeffs: Sequence[sym.Expr], bvec: sym.Matrix, rscale: sym.Expr, diff --git a/sumpy/fmm.py b/sumpy/fmm.py index c53c40b8a..12149303a 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -61,7 +61,7 @@ P2EFromSingleBox, P2PFromCSR, ) -from sumpy.kernel import Kernel +from sumpy.kernel import ScalarKernel from sumpy.tools import ( get_opencl_fft_app, run_opencl_fft, @@ -105,8 +105,8 @@ class SumpyTreeIndependentDataForWrangler(TreeIndependentDataForWrangler): multipole_expansion_factory: MultipoleExpansionFromOrderFactory local_expansion_factory: LocalExpansionFromOrderFactory - source_kernels: Sequence[Kernel] | None - target_kernels: Sequence[Kernel] + source_kernels: Sequence[ScalarKernel] | None + target_kernels: Sequence[ScalarKernel] exclude_self: bool use_rscale: bool | None strength_usage: Sequence[int] | None @@ -115,11 +115,11 @@ def __init__(self, array_context: ArrayContext, multipole_expansion_factory: MultipoleExpansionFromOrderFactory, local_expansion_factory: LocalExpansionFromOrderFactory, - target_kernels: Sequence[Kernel], + target_kernels: Sequence[ScalarKernel], exclude_self: bool = False, use_rscale: bool | None = None, strength_usage: Sequence[int] | None = None, - source_kernels: Sequence[Kernel] | None = None): + source_kernels: Sequence[ScalarKernel] | None = None): """ :arg multipole_expansion_factory: a callable of a single argument (order) that returns a multipole expansion. @@ -257,7 +257,7 @@ def app() -> Any: # {{{ expansion wrangler FMMLevelToOrder: TypeAlias = Callable[ - [Kernel, frozenset[tuple[str, object]], Tree, int], + [ScalarKernel, frozenset[tuple[str, object]], Tree, int], int] diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e0a7ba79f..e2bff6090 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -53,7 +53,6 @@ ExprDerivativeTaker, diff_derivative_coeff_dict, ) -from sumpy.symbolic import SpatialConstant, pymbolic_real_norm_2 if TYPE_CHECKING: @@ -69,7 +68,7 @@ ---------------- .. autoclass:: KernelArgument -.. autoclass:: Kernel +.. autoclass:: ScalarKernel :show-inheritance: Symbolic kernels @@ -79,8 +78,12 @@ :show-inheritance: :members: mapper_method -PDE kernels ------------ +.. autoclass:: OneKernel + :show-inheritance: + :members: mapper_method + +Scalar PDE kernels +------------------ .. autoclass:: LaplaceKernel :show-inheritance: @@ -198,9 +201,23 @@ def name(self) -> str: # {{{ basic kernel interface -@dataclass(frozen=True) -class Kernel(ABC): - """Basic kernel interface. + +def _diff(expr: sym.Expr, vec: sp.Matrix, mi: tuple[int, ...]) -> sym.Expr: + """Take the derivative of an expression.""" + dim = len(mi) + assert vec.shape == (dim, 1) + + for i in range(dim): + if mi[i] == 0: + continue + expr = expr.diff(vec[i], mi[i]) + + return expr + + +@dataclass(frozen=True, repr=False) +class ScalarKernel(ABC): + """Scalar kernel interface. .. autoattribute:: mapper_method .. autoattribute:: is_translation_invariant @@ -249,13 +266,13 @@ def __repr__(self) -> str: return f"{type(self).__name__}({', '.join(args)})" - def get_base_kernel(self) -> Kernel: + def get_base_kernel(self) -> ScalarKernel: """ :returns: the kernel being wrapped by this one, or else *self*. """ return self - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: """ :returns: the base kernel being wrapped by this one, or else *new_base_kernel*. @@ -291,18 +308,6 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: :math:`\mathcal{L}`, where :math:`\mathcal{L}(u) = 0` is the PDE. """ - def _diff(self, - expr: sym.Expr, - vec: sp.Matrix, - mi: tuple[int, ...]) -> sym.Expr: - """Take the derivative of an expression.""" - for i in range(self.dim): - if mi[i] == 0: - continue - expr = expr.diff(vec[i], mi[i]) - - return expr - @abstractmethod def get_derivative_taker( self, @@ -343,7 +348,7 @@ def postprocess_at_source( result = 0 for mi, coeff in expr_dict.items(): - result += coeff * self._diff(expr, avec, mi) + result += coeff * _diff(expr, avec, mi) assert isinstance(result, sym.Expr) return result @@ -414,8 +419,10 @@ def get_source_args(self) -> Sequence[KernelArgument]: # }}} +# {{{ generic expression kernel + @dataclass(frozen=True, repr=False) -class ExpressionKernel(Kernel, ABC): +class ExpressionKernel(ScalarKernel, ABC): r""" .. autoattribute:: expression .. autoattribute:: global_scaling_const @@ -446,24 +453,21 @@ def __str__(self) -> str: @override def get_expression(self, dist_vec: sym.Matrix) -> sym.Expr: - from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - expr = PymbolicToSympyMapperWithSymbols().to_expr(self.expression) + expr = sym.PymbolicToSympyMapperWithSymbols().to_expr(self.expression) if self.dim != len(dist_vec): raise ValueError( "'dist_vec' length does not match expected dimension: " f"kernel dim is '{self.dim}' and dist_vec has length '{len(dist_vec)}'") - from sumpy.symbolic import Symbol return expr.xreplace({ - Symbol(f"d{i}"): dist_vec_i + sym.Symbol(f"d{i}"): dist_vec_i for i, dist_vec_i in enumerate(dist_vec) }) @override def get_global_scaling_const(self) -> sym.Expr: - from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - return PymbolicToSympyMapperWithSymbols().to_expr(self.global_scaling_const) + return sym.PymbolicToSympyMapperWithSymbols().to_expr(self.global_scaling_const) @override def get_derivative_taker( @@ -500,6 +504,8 @@ def is_complex_valued(self) -> bool: one_kernel_2d = OneKernel(2) one_kernel_3d = OneKernel(3) +# }}} + # {{{ PDE kernels @@ -516,11 +522,11 @@ class LaplaceKernel(ExpressionKernel): def __init__(self, dim: int) -> None: # See (Kress LIE, Thm 6.2) for scaling if dim == 2: - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) expr = var("log")(r) scaling = 1/(-2*var("pi")) elif dim == 3: - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) expr = 1/r scaling = 1/(4*var("pi")) else: @@ -569,7 +575,7 @@ class BiharmonicKernel(ExpressionKernel): mapper_method: ClassVar[str] = "map_biharmonic_kernel" def __init__(self, dim: int) -> None: - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: # Ref: Farkas, Peter. Mathematical foundations for fast algorithms # for the biharmonic equation. Technical Report 765, @@ -643,17 +649,17 @@ def __init__(self, dim: int, helmholtz_k_name: str = "k", allow_evanescent: bool = False) -> None: - k = SpatialConstant(helmholtz_k_name) + k = sym.SpatialConstant(helmholtz_k_name) # Guard against code using the old positional interface. assert isinstance(allow_evanescent, bool) if dim == 2: - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) expr = var("hankel_1")(0, k*r) scaling = var("I")/4 elif dim == 3: - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) expr = var("exp")(var("I")*k*r)/r scaling = 1/(4*var("pi")) else: @@ -689,9 +695,8 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU def get_args(self) -> Sequence[KernelArgument]: k_dtype = np.complex128 if self.allow_evanescent else np.float64 return [ - KernelArgument( - loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype), - )] + KernelArgument(loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype)), + ] @override def get_derivative_taker( @@ -732,7 +737,7 @@ class YukawaKernel(ExpressionKernel): """ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: - lam = SpatialConstant(yukawa_lambda_name) + lam = sym.SpatialConstant(yukawa_lambda_name) # NOTE: The Yukawa kernel is given by [1] # -1/(2 pi)**(n/2) * (lam/r)**(n/2-1) * K(n/2-1, lam r) @@ -743,7 +748,7 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: # [3] https://dlmf.nist.gov/10.47#E2 # [4] https://dlmf.nist.gov/10.49 - r = pymbolic_real_norm_2(make_sym_vector("d", dim)) + r = sym.pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: # NOTE: transform K(0, lam r) into a Hankel function using [2] expr = var("hankel_1")(0, var("I")*lam*r) @@ -786,9 +791,8 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU @override def get_args(self) -> Sequence[KernelArgument]: return [ - KernelArgument( - loopy_arg=lp.ValueArg(self.yukawa_lambda_name, np.float64), - )] + KernelArgument(loopy_arg=lp.ValueArg(self.yukawa_lambda_name, np.float64)), + ] @override def get_derivative_taker( @@ -858,11 +862,11 @@ def __init__(self, f"'poisson_ratio_name' is not a str: {type(poisson_ratio_name)}" ) - mu = SpatialConstant(viscosity_mu_name) - nu = SpatialConstant(poisson_ratio_name) + mu = sym.SpatialConstant(viscosity_mu_name) + nu = sym.SpatialConstant(poisson_ratio_name) d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) delta_ij = 1 if icomp == jcomp else 0 if dim == 2: @@ -961,10 +965,10 @@ def __init__(self, raise TypeError( f"'viscosity_mu_name' is not a str: {type(viscosity_mu_name)}" ) - mu = SpatialConstant(viscosity_mu_name) + mu = sym.SpatialConstant(viscosity_mu_name) d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) delta_ij = 1 if icomp == jcomp else 0 if dim == 2: @@ -1060,7 +1064,7 @@ def __init__(self, ) d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) if dim == 2: expr = d[icomp]*d[jcomp]*d[kcomp]/r**4 @@ -1160,12 +1164,12 @@ def __init__(self, f"'poisson_ratio_name' is not a str: {type(poisson_ratio_name)}" ) - mu = SpatialConstant(viscosity_mu_name) - nu = SpatialConstant(poisson_ratio_name) + mu = sym.SpatialConstant(viscosity_mu_name) + nu = sym.SpatialConstant(poisson_ratio_name) if dim == 3: d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) # Kelvin solution expr = d[axis] * var("log")(r + d[axis]) - r @@ -1252,11 +1256,11 @@ def __init__(self, jcomp: int, viscosity_mu_name: str = "mu", darcy_impermeability_name: str = "k") -> None: - mu = SpatialConstant(viscosity_mu_name) - k = SpatialConstant(darcy_impermeability_name) + mu = sym.SpatialConstant(viscosity_mu_name) + k = sym.SpatialConstant(darcy_impermeability_name) d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) R = k * r # noqa: N806 delta_ij = 1 if icomp == jcomp else 0 @@ -1377,10 +1381,10 @@ def __init__(self, kcomp: int, viscosity_mu_name: str = "mu", darcy_impermeability_name: str = "k") -> None: - k = SpatialConstant(darcy_impermeability_name) + k = sym.SpatialConstant(darcy_impermeability_name) d = make_sym_vector("d", dim) - r = pymbolic_real_norm_2(d) + r = sym.pymbolic_real_norm_2(d) R = k * r # noqa: N806 delta_ij = 1 if icomp == jcomp else 0 delta_ik = 1 if icomp == kcomp else 0 @@ -1538,12 +1542,12 @@ def get_pde_as_diff_op(self): # {{{ a kernel defined as wrapping another one--e.g., derivatives @dataclass(frozen=True) -class KernelWrapper(Kernel, ABC): - inner_kernel: Kernel +class KernelWrapper(ScalarKernel, ABC): + inner_kernel: ScalarKernel """The kernel that is being wrapped (to take a derivative of, etc.).""" - def __init__(self, inner_kernel: Kernel) -> None: - Kernel.__init__(self, inner_kernel.dim) + def __init__(self, inner_kernel: ScalarKernel) -> None: + ScalarKernel.__init__(self, inner_kernel.dim) object.__setattr__(self, "inner_kernel", inner_kernel) @property @@ -1552,7 +1556,7 @@ def is_complex_valued(self) -> bool: return self.inner_kernel.is_complex_valued @override - def get_base_kernel(self) -> Kernel: + def get_base_kernel(self) -> ScalarKernel: return self.inner_kernel.get_base_kernel() @override @@ -1602,7 +1606,7 @@ def get_source_args(self) -> Sequence[KernelArgument]: return self.inner_kernel.get_source_args() @override - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: raise NotImplementedError( f"'replace_base_kernel' is not implemented for '{type(self).__name__}'") @@ -1620,7 +1624,7 @@ def get_derivative_taker(self, # {{{ derivatives class DerivativeBase(KernelWrapper, ABC): - """Bases: :class:`Kernel` + """Bases: :class:`ScalarKernel` .. autoattribute:: inner_kernel .. automethod:: replace_inner_kernel @@ -1631,11 +1635,11 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return self.inner_kernel.get_pde_as_diff_op() @abstractmethod - def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + def replace_inner_kernel(self, new_inner_kernel: ScalarKernel) -> ScalarKernel: """Replace the inner kernel of this wrapper. - This is essentially the same as :meth:`Kernel.replace_base_kernel`, but it does - not recurse. + This is essentially the same as :meth:`ScalarKernel.replace_base_kernel`, + but it does not recurse. """ @@ -1650,7 +1654,7 @@ class AxisSourceDerivative(DerivativeBase): axis: int """Direction axis for the source derivative.""" - def __init__(self, axis: int, inner_kernel: Kernel) -> None: + def __init__(self, axis: int, inner_kernel: ScalarKernel) -> None: super().__init__(inner_kernel) object.__setattr__(self, "axis", axis) @@ -1672,12 +1676,12 @@ def get_derivative_coeff_dict_at_source( return result @override - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) @override - def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + def replace_inner_kernel(self, new_inner_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, new_inner_kernel) @@ -1692,7 +1696,7 @@ class AxisTargetDerivative(DerivativeBase): axis: int - def __init__(self, axis: int, inner_kernel: Kernel) -> None: + def __init__(self, axis: int, inner_kernel: ScalarKernel) -> None: super().__init__(inner_kernel) object.__setattr__(self, "axis", axis) @@ -1730,12 +1734,12 @@ def postprocess_at_target( + inner_expr.diff(target_vec[self.axis])) @override - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) @override - def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + def replace_inner_kernel(self, new_inner_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, new_inner_kernel) @@ -1783,7 +1787,9 @@ class DirectionalDerivative(DerivativeBase): dir_vec_name: str """Name of the vector used for the direction.""" - def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None) -> None: + def __init__(self, + inner_kernel: ScalarKernel, + dir_vec_name: str | None = None) -> None: if dir_vec_name is None: dir_vec_name = f"{self.directional_kind}_derivative_dir" @@ -1796,13 +1802,13 @@ def __str__(self) -> str: return fr"{self.dir_vec_name}·∇_{d} {self.inner_kernel}" @override - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: return type(self)( self.inner_kernel.replace_base_kernel(new_base_kernel), dir_vec_name=self.dir_vec_name) @override - def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + def replace_inner_kernel(self, new_inner_kernel: ScalarKernel) -> ScalarKernel: return type(self)(new_inner_kernel, dir_vec_name=self.dir_vec_name) @@ -1826,8 +1832,7 @@ def transform(expr: Expression) -> Expression: def get_derivative_coeff_dict_at_source( self, expr_dict: DerivativeCoeffDict, ) -> DerivativeCoeffDict: - from sumpy.symbolic import make_sym_vector as make_sympy_vector - dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) + dir_vec = sym.make_sym_vector(self.dir_vec_name, self.dim) expr_dict = self.inner_kernel.get_derivative_coeff_dict_at_source( expr_dict) @@ -1862,7 +1867,7 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU @dataclass(frozen=True) class TargetPointMultiplier(KernelWrapper): - """Bases: :class:`Kernel` + """Bases: :class:`ScalarKernel` Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` where :math:`x, y` are targets and sources respectively. @@ -1876,7 +1881,7 @@ class TargetPointMultiplier(KernelWrapper): axis: int """Coordinate axis with which to multiply the kernel.""" - def __init__(self, axis: int, inner_kernel: Kernel) -> None: + def __init__(self, axis: int, inner_kernel: ScalarKernel) -> None: super().__init__(inner_kernel) object.__setattr__(self, "axis", axis) @@ -1933,11 +1938,11 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: raise NotImplementedError("no PDE is known") @override - def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) - def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + def replace_inner_kernel(self, new_inner_kernel: ScalarKernel) -> ScalarKernel: return type(self)(self.axis, new_inner_kernel) # }}} @@ -1952,17 +1957,17 @@ class KernelMapper(Generic[ResultT]): """ .. automethod:: __call__ """ - def rec(self, kernel: Kernel) -> ResultT: + def rec(self, kernel: ScalarKernel) -> ResultT: try: method = cast( - "Callable[[Kernel], ResultT]", + "Callable[[ScalarKernel], ResultT]", getattr(self, kernel.mapper_method)) except AttributeError as err: raise RuntimeError(f"{type(self)} cannot handle {type(kernel)}") from err else: return method(kernel) - def __call__(self, kernel: Kernel) -> ResultT: + def __call__(self, kernel: ScalarKernel) -> ResultT: return self.rec(kernel) @@ -1992,44 +1997,33 @@ def map_target_point_multiplier( return self.rec(kernel.inner_kernel) -class KernelIdentityMapper(KernelMapper[Kernel]): - def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: +class KernelIdentityMapper(KernelMapper[ScalarKernel]): + def map_expression_kernel(self, kernel: ExpressionKernel) -> ScalarKernel: return kernel - map_laplace_kernel: \ - Callable[[Self, LaplaceKernel], Kernel] = map_expression_kernel - map_biharmonic_kernel: \ - Callable[[Self, BiharmonicKernel], Kernel] = map_expression_kernel - map_helmholtz_kernel: \ - Callable[[Self, HelmholtzKernel], Kernel] = map_expression_kernel - map_yukawa_kernel: \ - Callable[[Self, YukawaKernel], Kernel] = map_expression_kernel - map_elasticity_kernel: \ - Callable[[Self, ElasticityKernel], Kernel] = map_expression_kernel - map_line_of_compression_kernel: \ - Callable[[Self, LineOfCompressionKernel], Kernel] = map_expression_kernel - map_stokeslet_kernel: \ - Callable[[Self, StokesletKernel], Kernel] = map_expression_kernel - map_stresslet_kernel: \ - Callable[[Self, StressletKernel], Kernel] = map_expression_kernel - map_brinkmanlet_kernel: \ - Callable[[Self, BrinkmanletKernel], Kernel] = map_expression_kernel - map_brinkman_stress_kernel: \ - Callable[[Self, BrinkmanStressKernel], Kernel] = map_expression_kernel - map_heat_kernel: \ - Callable[[Self, HeatKernel], Kernel] = map_expression_kernel - - def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: + map_laplace_kernel: Callable[[Self, LaplaceKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_biharmonic_kernel: Callable[[Self, BiharmonicKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_helmholtz_kernel: Callable[[Self, HelmholtzKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_yukawa_kernel: Callable[[Self, YukawaKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_elasticity_kernel: Callable[[Self, ElasticityKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_line_of_compression_kernel: Callable[[Self, LineOfCompressionKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_stokeslet_kernel: Callable[[Self, StokesletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_stresslet_kernel: Callable[[Self, StressletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_brinkmanlet_kernel: Callable[[Self, BrinkmanletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_heat_kernel: Callable[[Self, HeatKernel], Kernel] = map_expression_kernel + + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> ScalarKernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> ScalarKernel: # noqa: E501 return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) def map_directional_source_derivative( - self, kernel: DirectionalSourceDerivative) -> Kernel: + self, kernel: DirectionalSourceDerivative) -> ScalarKernel: return type(kernel)(self.rec(kernel.inner_kernel), dir_vec_name=kernel.dir_vec_name) @@ -2038,7 +2032,7 @@ class AxisSourceDerivativeRemover(KernelIdentityMapper): """Removes all axis source derivatives from the kernel.""" @override - def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> ScalarKernel: return self.rec(kernel.inner_kernel) @@ -2046,7 +2040,7 @@ class AxisTargetDerivativeRemover(KernelIdentityMapper): """Removes all axis target derivatives from the kernel.""" @override - def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKernel: return self.rec(kernel.inner_kernel) @@ -2059,7 +2053,7 @@ class SourceDerivativeRemover(AxisSourceDerivativeRemover): @override def map_directional_source_derivative( - self, kernel: DirectionalSourceDerivative) -> Kernel: + self, kernel: DirectionalSourceDerivative) -> ScalarKernel: return self.rec(kernel.inner_kernel) @@ -2067,7 +2061,8 @@ class TargetTransformationRemover(TargetDerivativeRemover): """Removes all target transformations from the kernel.""" @override - def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: + def map_target_point_multiplier( + self, kernel: TargetPointMultiplier) -> ScalarKernel: return self.rec(kernel.inner_kernel) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index ad80cdd77..2a320766f 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -72,9 +72,9 @@ class P2PBase(KernelCacheMixin, KernelComputation): def __init__(self, target_kernels, exclude_self, strength_usage=None, value_dtypes=None, name=None, source_kernels=None): """ - :arg target_kernels: list of :class:`sumpy.kernel.Kernel` instances + :arg target_kernels: list of :class:`~sumpy.kernel.ScalarKernel` instances with only target derivatives. - :arg source_kernels: list of :class:`sumpy.kernel.Kernel` instances + :arg source_kernels: list of :class:`~sumpy.kernel.ScalarKernel` instances with only source derivatives. :arg strength_usage: A list of integers indicating which expression uses which source strength indicator. This implicitly specifies the diff --git a/sumpy/test/test_fmm.py b/sumpy/test/test_fmm.py index 45455f726..4936f09b6 100644 --- a/sumpy/test/test_fmm.py +++ b/sumpy/test/test_fmm.py @@ -57,8 +57,8 @@ from sumpy.kernel import ( BiharmonicKernel, HelmholtzKernel, - Kernel, LaplaceKernel, + ScalarKernel, YukawaKernel, ) @@ -105,7 +105,7 @@ ]) def test_sumpy_fmm( actx_factory: ArrayContextFactory, - knl: Kernel, + knl: ScalarKernel, local_expn_class, mpole_expn_class, order_varies_with_level, @@ -140,7 +140,7 @@ def test_sumpy_fmm( def _test_sumpy_fmm( actx_factory: ArrayContextFactory, - knl: Kernel, + knl: ScalarKernel, local_expn_class, mpole_expn_class, order_varies_with_level, diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 44f13c35c..f1334ea6f 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -67,10 +67,10 @@ DirectionalSourceDerivative, ElasticityKernel, HelmholtzKernel, - Kernel, LaplaceKernel, LineOfCompressionKernel, OneKernel, + ScalarKernel, StokesletKernel, StressletKernel, YukawaKernel, @@ -152,7 +152,7 @@ def test_p2p(actx_factory: ArrayContextFactory, exclude_self): ]) def test_p2e_multiple( actx_factory: ArrayContextFactory, - base_knl: Kernel, + base_knl: ScalarKernel, expn_class): order = 4 actx = actx_factory() @@ -844,7 +844,7 @@ def test_m2m_compressed_error_helmholtz(actx_factory: ArrayContextFactory, dim, @pytest.mark.parametrize("dim", [2, 3]) def test_jump( actx_factory: ArrayContextFactory, - kernel_cls: type[Kernel], + kernel_cls: type[ScalarKernel], kernel_kwargs: dict[str, float], dim: int, order: int = 3, @@ -907,7 +907,7 @@ def test_jump( # {{{ test_pickle @memoize_on_first_arg -def get_kernel_name_for_test(knl: Kernel) -> Callable[[str], str]: +def get_kernel_name_for_test(knl: ScalarKernel) -> Callable[[str], str]: return lambda prefix: f"{prefix}: {type(knl).__name__}" @@ -930,7 +930,7 @@ def get_kernel_name_for_test(knl: Kernel) -> Callable[[str], str]: StressletKernel(2, 0, 0, 0), YukawaKernel(2, yukawa_lambda_name="lambda"), ]) -def test_pickle(knl: Kernel) -> None: +def test_pickle(knl: ScalarKernel) -> None: import pickle result = pickle.dumps(knl) diff --git a/sumpy/test/test_l2l_coeffs.py b/sumpy/test/test_l2l_coeffs.py index 482ae95f4..cfc08867b 100644 --- a/sumpy/test/test_l2l_coeffs.py +++ b/sumpy/test/test_l2l_coeffs.py @@ -47,8 +47,8 @@ from sumpy.kernel import ( BiharmonicKernel, HelmholtzKernel, - Kernel, LaplaceKernel, + ScalarKernel, YukawaKernel, ) from sumpy.tools import add_mi, build_matrix, mi_factorial, mi_power @@ -73,7 +73,7 @@ ]) def test_l2l_coefficient_differences( actx_factory: ArrayContextFactory, - knl: Kernel, + knl: ScalarKernel, extra_kwargs: Mapping[str, float], verbose: bool = True, ): diff --git a/sumpy/test/test_m2m_coeffs.py b/sumpy/test/test_m2m_coeffs.py index a44f10300..07acdd639 100644 --- a/sumpy/test/test_m2m_coeffs.py +++ b/sumpy/test/test_m2m_coeffs.py @@ -50,8 +50,8 @@ from sumpy.kernel import ( BiharmonicKernel, HelmholtzKernel, - Kernel, LaplaceKernel, + ScalarKernel, YukawaKernel, ) from sumpy.tools import add_mi, build_matrix, mi_factorial, mi_power @@ -76,7 +76,7 @@ ]) def test_m2m_coefficient_differences( actx_factory: ArrayContextFactory, - knl: Kernel, + knl: ScalarKernel, extra_kwargs: Mapping[str, float], verbose: bool = True, ): diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 04f05169b..955a959a9 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -67,6 +67,7 @@ Kernel, LaplaceKernel, LineOfCompressionKernel, + ScalarKernel, StokesletKernel, StressletKernel, YukawaKernel, @@ -226,7 +227,7 @@ class FakeTree: @pytest.mark.parametrize("knl", [ LaplaceKernel(2), HelmholtzKernel(2), LaplaceKernel(3), HelmholtzKernel(3)]) -def test_order_finder(knl: Kernel) -> None: +def test_order_finder(knl: ScalarKernel) -> None: from sumpy.expansion.level_to_order import SimpleExpansionOrderFinder ofind = SimpleExpansionOrderFinder(1e-5) diff --git a/sumpy/test/test_target_deriv.py b/sumpy/test/test_target_deriv.py index dc03c4318..f5d0648e2 100644 --- a/sumpy/test/test_target_deriv.py +++ b/sumpy/test/test_target_deriv.py @@ -43,7 +43,7 @@ _acf, # pyright: ignore[reportUnusedImport] ) from sumpy.expansion.local import LineTaylorLocalExpansion -from sumpy.kernel import AxisTargetDerivative, Kernel, LaplaceKernel +from sumpy.kernel import AxisTargetDerivative, LaplaceKernel, ScalarKernel from sumpy.test.geometries import make_starfish @@ -58,7 +58,7 @@ @pytest.mark.parametrize("knl", [LaplaceKernel(2)]) def test_lpot_dx_jump_relation_convergence( actx_factory: ArrayContextFactory, - knl: Kernel): + knl: ScalarKernel): """Test convergence of jump relations for single layer potential derivatives.""" actx = actx_factory() diff --git a/sumpy/tools.py b/sumpy/tools.py index 7d2847ccb..5ee913571 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -60,7 +60,7 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion import ExpansionBase - from sumpy.kernel import Kernel, KernelArgument + from sumpy.kernel import KernelArgument, ScalarKernel logger = logging.getLogger(__name__) @@ -134,7 +134,7 @@ """ -KernelLike: TypeAlias = "Kernel | ExpansionBase" +KernelLike: TypeAlias = "ScalarKernel | ExpansionBase" # {{{ multi_index helpers @@ -285,16 +285,16 @@ class KernelComputation(ABC): """ def __init__(self, - target_kernels: list[Kernel], - source_kernels: list[Kernel], + target_kernels: list[ScalarKernel], + source_kernels: list[ScalarKernel], strength_usage: list[int] | None = None, value_dtypes: list[numpy.dtype[Any]] | None = None, name: str | None = None) -> None: """ - :arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances, + :arg target_kernels: list of :class:`~sumpy.kernel.ScalarKernel` instances, with :class:`sumpy.kernel.AxisTargetDerivative` as the outermost kernel wrappers, if present. - :arg source_kernels: list of :class:`~sumpy.kernel.Kernel` instances + :arg source_kernels: list of :class:`~sumpy.kernel.ScalarKernel` instances with :class:`~sumpy.kernel.DirectionalSourceDerivative` as the outermost kernel wrappers, if present. :arg strength_usage: list of integers indicating which expression diff --git a/sumpy/toys.py b/sumpy/toys.py index 6d77405fa..d41bb47a5 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -50,7 +50,7 @@ MultipoleExpansionFactory, ) from sumpy.expansion.m2l import M2LTranslationClassFactoryBase - from sumpy.kernel import Kernel + from sumpy.kernel import ScalarKernel from sumpy.visualization import FieldPlotter @@ -107,8 +107,8 @@ class ToyContext: .. automethod:: __init__ """ - kernel: Kernel - no_target_deriv_kernel: Kernel + kernel: ScalarKernel + no_target_deriv_kernel: ScalarKernel mpole_expn_class: MultipoleExpansionFactory local_expn_class: LocalExpansionFactory @@ -118,7 +118,7 @@ class ToyContext: extra_source_and_kernel_kwargs: Mapping[str, object] def __init__(self, - kernel: Kernel, + kernel: ScalarKernel, mpole_expn_class: MultipoleExpansionFactory | None = None, local_expn_class: LocalExpansionFactory | None = None, expansion_factory: ExpansionFactoryBase | None = None, From 4e36d754cfaa62718588a6f165e8949a7ca524cf Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 12 Jun 2026 15:18:25 +0300 Subject: [PATCH 318/335] docs: clean up docs for HeatKernel --- sumpy/kernel.py | 53 +++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e2bff6090..43424b2c9 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1479,61 +1479,66 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class HeatKernel(ExpressionKernel): - r"""The Green's function for the heat equation given by - :math:`e^{-r^2/{4 \alpha t}}/\sqrt{(4 \pi \alpha t)^d}` - where :math:`d` is the number of spatial dimensions. + r"""The Green's function for the heat equation. + + .. math:: + + \frac{\partial}{\partial t} K(t, \mathbf{x}, \mathbf{y}) + - \alpha \Delta K(t, \mathbf{x}, \mathbf{y}) + = \delta(t) \delta(\mathbf{x} - \mathbf{y}) .. note:: - This kernel cannot be used in an FMM yet and can only - be used in expansions and evaluations that occur forward - in the time dimension. + This kernel cannot be used in an FMM yet and can only be used in + expansions and evaluations that occur forward in the time dimension. """ - heat_alpha_name: str mapper_method: ClassVar[str] = "map_heat_kernel" + heat_alpha_name: str + def __init__(self, spatial_dims: int, heat_alpha_name: str = "alpha"): dim = spatial_dims + 1 + alpha = sym.SpatialConstant(heat_alpha_name) + d = make_sym_vector("d", dim) t = d[-1] - r = pymbolic_real_norm_2(d[:-1]) - alpha = SpatialConstant(heat_alpha_name) + r = sym.pymbolic_real_norm_2(d[:-1]) + expr = var("exp")(-r**2/(4 * alpha * t)) / var("sqrt")(t**(dim - 1)) scaling = 1/var("sqrt")((4*var("pi")*alpha)**(dim - 1)) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - ) - + super().__init__(dim, expression=expr, global_scaling_const=scaling) object.__setattr__(self, "heat_alpha_name", heat_alpha_name) + @override + def __reduce__(self) -> tuple[object, ...]: + return (self.__class__, (self.dim - 1, self.heat_alpha_name)) + @property @override def is_complex_valued(self) -> bool: return False @override - def __repr__(self): + def __str__(self): return f"HeatKnl{self.dim - 1}D" @override def get_args(self): return [ - KernelArgument( - loopy_arg=lp.ValueArg(self.heat_alpha_name, np.float64), - )] + KernelArgument(loopy_arg=lp.ValueArg(self.heat_alpha_name, np.float64)) + ] @override - def get_pde_as_diff_op(self): + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import diff, laplacian, make_identity_diff_op + alpha = sym.Symbol(self.heat_alpha_name) w = make_identity_diff_op(self.dim - 1, time_dependent=True) - time_diff = [0]*self.dim - time_diff[-1] = 1 - return diff(w, tuple(time_diff)) - laplacian(w) * alpha + t_mi = (*([0] * (self.dim - 1)), 1) + + return diff(w, t_mi) - alpha * laplacian(w) # }}} @@ -2011,7 +2016,7 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> ScalarKernel: map_stresslet_kernel: Callable[[Self, StressletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_brinkmanlet_kernel: Callable[[Self, BrinkmanletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_heat_kernel: Callable[[Self, HeatKernel], Kernel] = map_expression_kernel + map_heat_kernel: Callable[[Self, HeatKernel], ScalarKernel] = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) From 60bcb12f8fa5a2d6538207a9a6172c9e01cb8723 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 21 Jun 2026 20:53:09 +0300 Subject: [PATCH 319/335] feat: rename system component kernels --- sumpy/kernel.py | 89 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 24 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 43424b2c9..35315466f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -28,6 +28,7 @@ from dataclasses import dataclass from typing import ( TYPE_CHECKING, + Any, ClassVar, Generic, Literal, @@ -88,31 +89,37 @@ .. autoclass:: LaplaceKernel :show-inheritance: :members: mapper_method + .. autoclass:: BiharmonicKernel :show-inheritance: :members: mapper_method + .. autoclass:: HelmholtzKernel :show-inheritance: :members: mapper_method + .. autoclass:: YukawaKernel :show-inheritance: :members: mapper_method -.. autoclass:: StokesletKernel + +.. autoclass:: StokesletComponentKernel :show-inheritance: :members: mapper_method -.. autoclass:: StressletKernel +.. autoclass:: StressletComponentKernel :show-inheritance: :members: mapper_method -.. autoclass:: ElasticityKernel + +.. autoclass:: ElasticityComponentKernel :show-inheritance: :members: mapper_method .. autoclass:: LineOfCompressionKernel :show-inheritance: :members: mapper_method -.. autoclass:: BrinkmanletKernel + +.. autoclass:: BrinkmanletComponentKernel :show-inheritance: :members: mapper_method -.. autoclass:: BrinkmanStressKernel +.. autoclass:: BrinkmanStressComponentKernel :show-inheritance: :members: mapper_method .. autoclass:: HeatKernel @@ -814,7 +821,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class ElasticityKernel(ExpressionKernel): +class ElasticityComponentKernel(ExpressionKernel): r"""A kernel for the linear elasticity (Navier-Cauchy) equations (see e.g. Section 2.2 in [Hsiao2008]_). @@ -923,7 +930,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class StokesletKernel(ExpressionKernel): +class StokesletComponentKernel(ExpressionKernel): r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). .. math:: @@ -1020,7 +1027,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class StressletKernel(ExpressionKernel): +class StressletComponentKernel(ExpressionKernel): r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). .. math:: @@ -1029,8 +1036,9 @@ class StressletKernel(ExpressionKernel): -P_j \delta_{ik} + \mu (\partial_k K_{ij} + \partial_i K_{kj}) - where the two-index :math:`K_{ij}` is the :class:`~sumpy.kernel.StokesletKernel`. - This kernel is often called the Stresslet and it represents the stress tensor. + where the two-index :math:`K_{ij}` is the + :class:`~sumpy.kernel.StokesletComponentKernel`. This kernel is often + called the Stresslet and it represents the stress tensor. .. autoattribute:: icomp .. autoattribute:: jcomp @@ -1218,7 +1226,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class BrinkmanletKernel(ExpressionKernel): +class BrinkmanletComponentKernel(ExpressionKernel): r"""A kernel for the Brinkman equations. .. math:: @@ -1337,11 +1345,12 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: w = make_identity_diff_op(self.dim) k = sym.Symbol(self.darcy_impermeability_name) + return laplacian(laplacian(w) - k**2 * w) @dataclass(frozen=True, repr=False) -class BrinkmanStressKernel(ExpressionKernel): +class BrinkmanStressComponentKernel(ExpressionKernel): r"""A kernel for the Brinkman equations. .. math:: @@ -1350,8 +1359,9 @@ class BrinkmanStressKernel(ExpressionKernel): -p_j \delta_{ik} + \mu (\partial_k K_{ij} + \partial_i K_{jk}), - where the two-index :math:`K_{ij}` is the :class:`~sumpy.kernel.BrinkmanletKernel` - and :math:`P_j` is the pressure kernel. + where the two-index :math:`K_{ij}` is the + :class:`~sumpy.kernel.BrinkmanletComponentKernel` and :math:`P_j` is the + pressure kernel. """ mapper_method: ClassVar[str] = "map_brinkman_stress_kernel" @@ -2010,12 +2020,12 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> ScalarKernel: map_biharmonic_kernel: Callable[[Self, BiharmonicKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_helmholtz_kernel: Callable[[Self, HelmholtzKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_yukawa_kernel: Callable[[Self, YukawaKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_elasticity_kernel: Callable[[Self, ElasticityKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_elasticity_kernel: Callable[[Self, ElasticityComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_line_of_compression_kernel: Callable[[Self, LineOfCompressionKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_stokeslet_kernel: Callable[[Self, StokesletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_stresslet_kernel: Callable[[Self, StressletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_brinkmanlet_kernel: Callable[[Self, BrinkmanletKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_stokeslet_kernel: Callable[[Self, StokesletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_stresslet_kernel: Callable[[Self, StressletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_brinkmanlet_kernel: Callable[[Self, BrinkmanletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_heat_kernel: Callable[[Self, HeatKernel], ScalarKernel] = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKernel: @@ -2093,17 +2103,17 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> int: map_yukawa_kernel: \ Callable[[Self, YukawaKernel], int] = map_expression_kernel map_elasticity_kernel: \ - Callable[[Self, ElasticityKernel], int] = map_expression_kernel + Callable[[Self, ElasticityComponentKernel], int] = map_expression_kernel map_line_of_compression_kernel: \ Callable[[Self, LineOfCompressionKernel], int] = map_expression_kernel map_stokeslet_kernel: \ - Callable[[Self, StokesletKernel], int] = map_expression_kernel + Callable[[Self, StokesletComponentKernel], int] = map_expression_kernel map_stresslet_kernel: \ - Callable[[Self, StressletKernel], int] = map_expression_kernel + Callable[[Self, StressletComponentKernel], int] = map_expression_kernel map_brinkmanlet_kernel: \ - Callable[[Self, BrinkmanletKernel], int] = map_expression_kernel + Callable[[Self, BrinkmanletComponentKernel], int] = map_expression_kernel map_brinkman_stress_kernel: \ - Callable[[Self, BrinkmanStressKernel], int] = map_expression_kernel + Callable[[Self, BrinkmanStressComponentKernel], int] = map_expression_kernel map_heat_kernel: \ Callable[[Self, HeatKernel], int] = map_expression_kernel @@ -2118,4 +2128,35 @@ def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: # }}} +# {{{ deprecations + +# TODO: once these deprecations expire, rename +# ElasticitySystemKernel -> ElasticityKernel +# ... +_DEPRECATED_CLASSES = { + "BrinkmanStressKernel": (BrinkmanStressComponentKernel, 2027), + "BrinkmanletKernel": (BrinkmanletComponentKernel, 2027), + "ElasticityKernel": (ElasticityComponentKernel, 2027), + "Kernel": (ScalarKernel, 2027), + "StokesletKernel": (StokesletComponentKernel, 2027), + "StressletKernel": (StressletComponentKernel, 2027), +} + + +def __getattr__(name: str) -> Any: + result = _DEPRECATED_CLASSES.get(name) + + if result is not None: + cls, year = result + from warnings import warn + warn(f"'sumpy.kernel.{name}' is deprecated. " + f"Use 'sumpy.kernel.{cls.__name__}' instead. " + f"'sumpy.kernel.{name}' will continue to work until {year}.", + DeprecationWarning, stacklevel=2) + return cls + else: + raise AttributeError(name) + +# }}} + # vim: fdm=marker From bf5ecf2b8b6b2c449b65935973439fd5bd743304 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 21 Jun 2026 20:56:47 +0300 Subject: [PATCH 320/335] feat: add system kernels --- sumpy/kernel.py | 487 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 485 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 35315466f..55183331b 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -45,7 +45,7 @@ from pymbolic import Expression, var from pymbolic.mapper import CSECachingMapperMixin, IdentityMapper from pymbolic.primitives import make_sym_vector -from pytools import memoize_method +from pytools import keyed_memoize_method, memoize_method, obj_array import sumpy.symbolic as sym from sumpy.derivative_taker import ( @@ -71,6 +71,8 @@ .. autoclass:: KernelArgument .. autoclass:: ScalarKernel :show-inheritance: +.. autoclass:: SystemKernel + :show-inheritance: Symbolic kernels ---------------- @@ -126,6 +128,27 @@ :show-inheritance: :members: mapper_method +System PDE Kernels +------------------ + +.. autoclass:: ElasticitySystemKernel + :show-inheritance: + :members: mapper_method + +.. autoclass:: StokesletSystemKernel + :show-inheritance: + :members: mapper_method +.. autoclass:: StressletSystemKernel + :show-inheritance: + :members: mapper_method + +.. autoclass:: BrinkmanletSystemKernel + :show-inheritance: + :members: mapper_method +.. autoclass:: BrinkmanStressSystemKernel + :show-inheritance: + :members: mapper_method + .. [Pozrikidis1992] C. Pozrikidis, *Boundary Integral and Singularity Methods for Linearized Viscous Flow*, Cambridge University Press, 1992. @@ -234,11 +257,13 @@ class ScalarKernel(ABC): .. automethod:: get_base_kernel .. automethod:: replace_base_kernel + .. automethod:: get_pde_system_kernel .. automethod:: prepare_loopy_kernel .. automethod:: get_code_transformer .. automethod:: get_expression .. automethod:: postprocess_at_source .. automethod:: postprocess_at_target + .. automethod:: get_global_scaling_const .. automethod:: get_args .. automethod:: get_source_args @@ -286,6 +311,14 @@ def replace_base_kernel(self, new_base_kernel: ScalarKernel) -> ScalarKernel: """ return new_base_kernel + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + """ + :returns: if the kernel is a component kernel of a :class:`SystemKernel`, + this returns the system kernel and the index of the kernel in that + system. + """ + raise TypeError(f"kernel {type(self)} is not part of a system") + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: """Apply some changes (such as registering function manglers) to the kernel. @@ -423,6 +456,81 @@ def get_source_args(self) -> Sequence[KernelArgument]: """ return [] + +@dataclass(frozen=True, repr=False) +class SystemKernel(ABC): + """A kernel representing a vector PDE. + + .. autoattribute:: mapper_method + + .. autoattribute:: dim + .. autoproperty:: ndim + .. autoproperty:: shape + + .. automethod:: __getitem__ + .. automethod:: get_expression + .. automethod:: get_pde_as_diff_op + """ + + mapper_method: ClassVar[str] + """The name of the mapper method called for the kernel.""" + + dim: int + """Dimension of the space the kernel is defined in.""" + + @property + def ndim(self) -> int: + """The number of indices in the kernel tensor.""" + return len(self.shape) + + @property + @abstractmethod + def shape(self) -> tuple[int, ...]: + """The shape of the kernel tensor.""" + + def __getitem__(self, index: tuple[int, ...], /) -> ScalarKernel: + """ + :returns: the scalar kernel at *index*. + """ + if len(index) != self.ndim: + raise IndexError( + f"incorrect index size for kernel: kernel is {self.ndim}-dimensional: " + f"{index} given" + ) + + if any(not 0 <= i < n for i, n in zip(index, self.shape, strict=True)): + raise IndexError( + f"index {index} is out of bounds for kernel with shape {self.shape}" + ) + + return self.get_scalar_component(*index) + + @abstractmethod + def get_scalar_component(self, *args: int) -> ScalarKernel: + """ + :returns: the scalar kernel the indices given by *args*. + """ + + def get_expression(self, dist_vec: sym.Matrix) -> obj_array.ObjectArrayND[sym.Expr]: + """ + :returns: a :mod:`sympy` expression for each component the kernel. + """ + from pytools import ndindex + + result = np.empty(self.shape, dtype=object) + for i in ndindex(result.shape): + result[i] = self[i].get_expression(dist_vec) + + return result + + @abstractmethod + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + """ + :returns: the PDE that this kernel satisfies + (see :meth:`ScalarKernel.get_pde_as_diff_op` as the scalar alternative). + """ + return [] + # }}} @@ -921,6 +1029,15 @@ def get_args(self) -> Sequence[KernelArgument]: KernelArgument(loopy_arg=lp.ValueArg(self.poisson_ratio_name, np.float64)), ] + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return ElasticitySystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + poisson_ratio_name=self.poisson_ratio_name + ), (self.icomp, self.jcomp) + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1018,6 +1135,14 @@ def get_args(self) -> Sequence[KernelArgument]: ) ] + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return StokesletSystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + ), (self.icomp, self.jcomp) + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1105,7 +1230,7 @@ def is_complex_valued(self) -> bool: @memoize_method @override def get_args(self) -> Sequence[KernelArgument]: - # NOTE: this is not used, but kept for symmetry with the StokesletKernel + # NOTE: this is not used, kept for symmetry with the StokesletComponentKernel return [ KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)) ] @@ -1116,6 +1241,14 @@ def __str__(self) -> str: f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" f"({self.viscosity_mu_name})") + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return StressletSystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + ), (self.icomp, self.jcomp, self.kcomp) + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1339,6 +1472,15 @@ def get_args(self) -> Sequence[KernelArgument]: KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 ] + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return BrinkmanletSystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + darcy_impermeability_name=self.darcy_impermeability_name, + ), (self.icomp, self.jcomp) + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1478,6 +1620,15 @@ def get_args(self) -> Sequence[KernelArgument]: KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 ] + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return BrinkmanStressSystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + darcy_impermeability_name=self.darcy_impermeability_name, + ), (self.icomp, self.jcomp, self.kcomp) + @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1554,6 +1705,338 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: # }}} +# {{{ vector PDE kernels + + +@dataclass(frozen=True, repr=False) +class ElasticitySystemKernel(SystemKernel): + r"""A kernel for the linear elasticity (Navier-Cauchy) equations + (see e.g. Section 2.2 in [Hsiao2008]_). + + This kernel uses :class:`ElasticityComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: poisson_ratio_name + """ + + mapper_method: ClassVar[str] = "map_elasticity_system_kernel" + + viscosity_mu_name: str = "mu" + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + poisson_ratio_name: str = "nu" + r"""The argument name to use for Poisson's ratio :math:`\nu` when generating + functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"ElasticityKnl{self.dim}D" + f"({self.viscosity_mu_name}, {self.poisson_ratio_name})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.viscosity_mu_name, self.poisson_ratio_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j: tuple(sorted((i, j)))) + def get_scalar_component(self, i: int, j: int, /) -> ScalarKernel: + # NOTE: the kernel is (i, j) -> (j, i) symmetric + i, j = sorted([i, j]) + + return ElasticityComponentKernel( + self.dim, i, j, + viscosity_mu_name=self.viscosity_mu_name, + poisson_ratio_name=self.poisson_ratio_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + nu = sym.Symbol(self.poisson_ratio_name) + u = make_identity_diff_op(self.dim, self.dim) + + return mu * laplacian(u) + mu / (1 - 2 * nu) * gradient(divergence(u)) + + +@dataclass(frozen=True, repr=False) +class StokesletSystemKernel(SystemKernel): + r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). + + This kernel uses :class:`StokesletComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + """ + + mapper_method: ClassVar[str] = "map_stokeslet_system_kernel" + + viscosity_mu_name: str = "mu" + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"StokesletKnl{self.dim}D({self.viscosity_mu_name})") + + @override + def __reduce__(self): + return (type(self), (self.dim, self.viscosity_mu_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j: tuple(sorted((i, j)))) + def get_scalar_component(self, i: int, j: int, /) -> ScalarKernel: + # NOTE: the kernel is (i, j) -> (j, i) symmetric + i, j = sorted([i, j]) + + return StokesletComponentKernel( + self.dim, i, j, + viscosity_mu_name=self.viscosity_mu_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + concat, + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + u_and_p = make_identity_diff_op(self.dim, self.dim + 1) + u = u_and_p[:self.dim] + p = u_and_p[self.dim] + + return concat(mu * laplacian(u) - gradient(p), divergence(u)) + + +@dataclass(frozen=True, repr=False) +class StressletSystemKernel(SystemKernel): + r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). + + This kernel uses :class:`StressletComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + """ + + mapper_method: ClassVar[str] = "map_stresslet_system_kernel" + + viscosity_mu_name: str = "mu" + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"StressletKnl{self.dim}D({self.viscosity_mu_name})") + + @override + def __reduce__(self): + return (type(self), (self.dim, self.viscosity_mu_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j, k: tuple(sorted((i, j, k)))) + def get_scalar_component(self, i: int, j: int, k: int, /) -> ScalarKernel: + # NOTE: the kernel is fully permutation symmetric + i, j, k = sorted([i, j, k]) + + return StressletComponentKernel( + self.dim, i, j, k, + viscosity_mu_name=self.viscosity_mu_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + concat, + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + u_and_p = make_identity_diff_op(self.dim, self.dim + 1) + u = u_and_p[:self.dim] + p = u_and_p[self.dim] + + return concat(mu * laplacian(u) - gradient(p), divergence(u)) + + +@dataclass(frozen=True, repr=False) +class BrinkmanletSystemKernel(SystemKernel): + r"""A kernel for the Brinkman equations. + + This kernel uses :class:`BrinkmanletComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: darcy_impermeability_name + """ + + mapper_method: ClassVar[str] = "map_brinkmanlet_system_kernel" + + viscosity_mu_name: str = "mu" + """The argument name to use for the dynamic viscosity when generating + functions to evaluate this kernel. + """ + darcy_impermeability_name: str = "k" + """The argument name to use for the Darcy impermeability when generating + functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"BrinkmanletKnl{self.dim}D" + f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.viscosity_mu_name, self.darcy_impermeability_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j: tuple(sorted((i, j)))) + def get_scalar_component(self, i: int, j: int, /) -> ScalarKernel: + # NOTE: the kernel is (i, j) -> (j, i) symmetric + i, j = sorted([i, j]) + + return BrinkmanletComponentKernel( + self.dim, i, j, + viscosity_mu_name=self.viscosity_mu_name, + darcy_impermeability_name=self.darcy_impermeability_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + concat, + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + k = sym.Symbol(self.darcy_impermeability_name) + + u_and_p = make_identity_diff_op(self.dim, self.dim + 1) + u = u_and_p[:self.dim] + p = u_and_p[self.dim] + + return concat(mu * (laplacian(u) - k**2 * u) - gradient(p), divergence(u)) + + +@dataclass(frozen=True, repr=False) +class BrinkmanStressSystemKernel(SystemKernel): + r"""A kernel for the Brinkman equations. + + This kernel uses :class:`BrinkmanStressComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: darcy_impermeability_name + """ + + mapper_method: ClassVar[str] = "map_brinkman_stress_system_kernel" + + viscosity_mu_name: str = "mu" + """The argument name to use for the dynamic viscosity when generating + functions to evaluate this kernel. + """ + darcy_impermeability_name: str = "k" + """The argument name to use for the Darcy impermeability when generating + functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"BrinkmanStressKnl{self.dim}D" + f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.viscosity_mu_name, self.darcy_impermeability_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j, k: ((min(i, k), j, max(i, k)))) + def get_scalar_component(self, i: int, j: int, k: int, /) -> ScalarKernel: + # NOTE: the kernel is (i, j, k) -> (k, j, i) symmetric + if i > k: + i, k = k, i + + return BrinkmanStressComponentKernel( + self.dim, i, j, k, + viscosity_mu_name=self.viscosity_mu_name, + darcy_impermeability_name=self.darcy_impermeability_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + concat, + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + k = sym.Symbol(self.darcy_impermeability_name) + + u_and_p = make_identity_diff_op(self.dim, self.dim + 1) + u = u_and_p[:self.dim] + p = u_and_p[self.dim] + + return concat(mu * (laplacian(u) - k**2 * u) - gradient(p), divergence(u)) + + +# }}} + + # {{{ a kernel defined as wrapping another one--e.g., derivatives @dataclass(frozen=True) From dea6dc5860aeb112db48799f2e9f56d1d9826911 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 21 Jun 2026 20:59:28 +0300 Subject: [PATCH 321/335] test: update tests --- sumpy/test/test_kernels.py | 46 ++++----- sumpy/test/test_misc.py | 193 +++++++++++++++++++++++++++++-------- 2 files changed, 175 insertions(+), 64 deletions(-) diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index f1334ea6f..2375bf4e3 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -62,17 +62,17 @@ from sumpy.kernel import ( AxisTargetDerivative, BiharmonicKernel, - BrinkmanletKernel, - BrinkmanStressKernel, + BrinkmanletComponentKernel, + BrinkmanStressComponentKernel, DirectionalSourceDerivative, - ElasticityKernel, + ElasticityComponentKernel, HelmholtzKernel, LaplaceKernel, LineOfCompressionKernel, OneKernel, ScalarKernel, - StokesletKernel, - StressletKernel, + StokesletComponentKernel, + StressletComponentKernel, YukawaKernel, ) from sumpy.test.geometries import make_ellipsoid, make_torus @@ -165,7 +165,7 @@ def test_p2e_multiple( extra_kwargs["k"] = 0.2 * (0.707 + 0.707j) else: extra_kwargs["k"] = 0.2 - if isinstance(base_knl, StokesletKernel): + if isinstance(base_knl, StokesletComponentKernel): extra_kwargs["mu"] = 0.2 source_kernels = [ @@ -310,7 +310,7 @@ def test_p2e2p( extra_kwargs["k"] = 0.2 * (0.707 + 0.707j) else: extra_kwargs["k"] = 0.2 - if isinstance(base_knl, StokesletKernel): + if isinstance(base_knl, StokesletComponentKernel): extra_kwargs["mu"] = 0.2 if with_source_derivative: @@ -478,13 +478,13 @@ def test_p2e2p( (HelmholtzKernel(3), LinearPDEConformingVolumeTaylorLocalExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion, False), (HelmholtzKernel(2), H2DLocalExpansion, H2DMultipoleExpansion, False), - (StokesletKernel(2, 0, 0), VolumeTaylorLocalExpansion, + (StokesletComponentKernel(2, 0, 0), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False), - (StokesletKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, + (StokesletComponentKernel(2, 0, 0), LinearPDEConformingVolumeTaylorLocalExpansion, LinearPDEConformingVolumeTaylorMultipoleExpansion, False), - (BrinkmanletKernel(2, 0, 0), VolumeTaylorLocalExpansion, + (BrinkmanletComponentKernel(2, 0, 0), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False), - (BrinkmanStressKernel(2, 0, 0, 0), VolumeTaylorLocalExpansion, + (BrinkmanStressComponentKernel(2, 0, 0, 0), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion, False), ]) def test_translations( @@ -507,12 +507,12 @@ def test_translations( extra_kwargs["k"] = 0.05 elif isinstance(knl, YukawaKernel): extra_kwargs["lam"] = 0.05 - elif isinstance(knl, (StokesletKernel, StressletKernel)): + elif isinstance(knl, (StokesletComponentKernel, StressletComponentKernel)): extra_kwargs["mu"] = 0.05 - elif isinstance(knl, ElasticityKernel): + elif isinstance(knl, ElasticityComponentKernel): extra_kwargs["mu"] = 0.05 extra_kwargs["nu"] = 0.1 - elif isinstance(knl, (BrinkmanletKernel, BrinkmanStressKernel)): + elif isinstance(knl, (BrinkmanletComponentKernel, BrinkmanStressComponentKernel)): extra_kwargs["mu"] = 0.1 extra_kwargs["k"] = 0.1 @@ -554,7 +554,7 @@ def test_translations( del eval_offset if knl.dim == 2: - if isinstance(knl, BrinkmanStressKernel): # noqa: SIM108 + if isinstance(knl, BrinkmanStressComponentKernel): orders = [3, 4, 5] else: orders = [2, 3, 4] @@ -649,7 +649,7 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, extra_kwargs["k"] = 0.2 * (0.707 + 0.707j) else: extra_kwargs["k"] = 0.2 - if isinstance(base_knl, StokesletKernel): + if isinstance(base_knl, StokesletComponentKernel): extra_kwargs["mu"] = 0.2 if with_source_derivative: @@ -913,21 +913,21 @@ def get_kernel_name_for_test(knl: ScalarKernel) -> Callable[[str], str]: @pytest.mark.parametrize("knl", [ BiharmonicKernel(2), - BrinkmanletKernel(2, 0, 1), - BrinkmanletKernel(3, 0, 0, + BrinkmanletComponentKernel(2, 0, 1), + BrinkmanletComponentKernel(3, 0, 0, viscosity_mu_name="viscosity", darcy_impermeability_name="kappa"), - BrinkmanStressKernel(2, 0, 1, 0), - BrinkmanStressKernel(3, 0, 0, 1, + BrinkmanStressComponentKernel(2, 0, 1, 0), + BrinkmanStressComponentKernel(3, 0, 0, 1, viscosity_mu_name="viscosity", darcy_impermeability_name="kappa"), - ElasticityKernel(2, 0, 0), + ElasticityComponentKernel(2, 0, 0), HelmholtzKernel(3, helmholtz_k_name="kay"), LaplaceKernel(3), LineOfCompressionKernel(), OneKernel(2), - StokesletKernel(2, 0, 0), - StressletKernel(2, 0, 0, 0), + StokesletComponentKernel(2, 0, 0), + StressletComponentKernel(2, 0, 0, 0), YukawaKernel(2, yukawa_lambda_name="lambda"), ]) def test_pickle(knl: ScalarKernel) -> None: diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 955a959a9..c61e0149f 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -58,18 +58,23 @@ ) from sumpy.kernel import ( BiharmonicKernel, - BrinkmanletKernel, - BrinkmanStressKernel, - ElasticityKernel, + BrinkmanletComponentKernel, + BrinkmanletSystemKernel, + BrinkmanStressComponentKernel, + BrinkmanStressSystemKernel, + ElasticityComponentKernel, + ElasticitySystemKernel, ExpressionKernel, HeatKernel, HelmholtzKernel, - Kernel, LaplaceKernel, LineOfCompressionKernel, ScalarKernel, - StokesletKernel, - StressletKernel, + StokesletComponentKernel, + StokesletSystemKernel, + StressletComponentKernel, + StressletSystemKernel, + SystemKernel, YukawaKernel, ) @@ -88,9 +93,9 @@ # {{{ pde check for kernels class KernelInfo: - kernel: Kernel + kernel: ScalarKernel - def __init__(self, kernel: Kernel, **kwargs): + def __init__(self, kernel: ScalarKernel, **kwargs: Any) -> None: self.kernel = kernel self.extra_kwargs = kwargs diff_op = self.kernel.get_pde_as_diff_op() @@ -125,29 +130,29 @@ def nderivs(self): KernelInfo(LaplaceKernel(3)), KernelInfo(HelmholtzKernel(2), k=5), KernelInfo(HelmholtzKernel(3), k=5), - KernelInfo(StokesletKernel(2, 0, 1), mu=5), - KernelInfo(StokesletKernel(2, 1, 1), mu=5), - KernelInfo(StokesletKernel(3, 0, 1), mu=5), - KernelInfo(StokesletKernel(3, 1, 1), mu=5), - KernelInfo(StressletKernel(2, 0, 0, 0), mu=5), - KernelInfo(StressletKernel(2, 0, 0, 1), mu=5), - KernelInfo(StressletKernel(3, 0, 0, 0), mu=5), - KernelInfo(StressletKernel(3, 0, 0, 1), mu=5), - KernelInfo(StressletKernel(3, 0, 1, 2), mu=5), - KernelInfo(ElasticityKernel(2, 0, 1), mu=5, nu=0.2), - KernelInfo(ElasticityKernel(2, 0, 0), mu=5, nu=0.2), - KernelInfo(ElasticityKernel(3, 0, 1), mu=5, nu=0.2), - KernelInfo(ElasticityKernel(3, 0, 0), mu=5, nu=0.2), + KernelInfo(StokesletComponentKernel(2, 0, 1), mu=5), + KernelInfo(StokesletComponentKernel(2, 1, 1), mu=5), + KernelInfo(StokesletComponentKernel(3, 0, 1), mu=5), + KernelInfo(StokesletComponentKernel(3, 1, 1), mu=5), + KernelInfo(StressletComponentKernel(2, 0, 0, 0), mu=5), + KernelInfo(StressletComponentKernel(2, 0, 0, 1), mu=5), + KernelInfo(StressletComponentKernel(3, 0, 0, 0), mu=5), + KernelInfo(StressletComponentKernel(3, 0, 0, 1), mu=5), + KernelInfo(StressletComponentKernel(3, 0, 1, 2), mu=5), + KernelInfo(ElasticityComponentKernel(2, 0, 1), mu=5, nu=0.2), + KernelInfo(ElasticityComponentKernel(2, 0, 0), mu=5, nu=0.2), + KernelInfo(ElasticityComponentKernel(3, 0, 1), mu=5, nu=0.2), + KernelInfo(ElasticityComponentKernel(3, 0, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 1), mu=5, nu=0.2), - KernelInfo(BrinkmanletKernel(2, 0, 1), mu=5, k=3), - KernelInfo(BrinkmanletKernel(2, 1, 1), mu=5, k=3), - KernelInfo(BrinkmanletKernel(3, 0, 1), mu=5, k=3), - KernelInfo(BrinkmanletKernel(3, 1, 1), mu=5, k=3), - KernelInfo(BrinkmanStressKernel(2, 0, 1, 0), mu=5, k=3), - KernelInfo(BrinkmanStressKernel(2, 0, 1, 1), mu=5, k=3), - KernelInfo(BrinkmanStressKernel(3, 0, 1, 0), mu=5, k=3), - KernelInfo(BrinkmanStressKernel(3, 0, 1, 2), mu=5, k=3), + KernelInfo(BrinkmanletComponentKernel(2, 0, 1), mu=5, k=3), + KernelInfo(BrinkmanletComponentKernel(2, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanletComponentKernel(3, 0, 1), mu=5, k=3), + KernelInfo(BrinkmanletComponentKernel(3, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanStressComponentKernel(2, 0, 1, 0), mu=5, k=3), + KernelInfo(BrinkmanStressComponentKernel(2, 0, 1, 1), mu=5, k=3), + KernelInfo(BrinkmanStressComponentKernel(3, 0, 1, 0), mu=5, k=3), + KernelInfo(BrinkmanStressComponentKernel(3, 0, 1, 2), mu=5, k=3), KernelInfo(HeatKernel(1), alpha=0.1), KernelInfo(HeatKernel(2), alpha=0.1), KernelInfo(HeatKernel(3), alpha=0.1), @@ -562,9 +567,9 @@ def test_as_scalar_pde_brinkman(): def test_elasticity_pickle(): from pickle import dumps, loads - stokes_knl = StokesletKernel( + stokes_knl = StokesletComponentKernel( 3, 0, 1, viscosity_mu_name="mu1") - elasticity_knl = ElasticityKernel( + elasticity_knl = ElasticityComponentKernel( 3, 0, 1, viscosity_mu_name="mu1", poisson_ratio_name="nu1") elasticity_helper_knl = LineOfCompressionKernel( 3, 0, viscosity_mu_name="mu1", poisson_ratio_name="nu1") @@ -610,10 +615,8 @@ def test_to_fourier_matrix_stokes(dim: int) -> None: ks = sym.make_sym_vector("k", dim) mu = sym.Symbol("mu") - diff_op = make_identity_diff_op(dim, dim + 1) - u = diff_op[:dim] - p = diff_op[dim] - pde = concat(mu * laplacian(u) - gradient(p), divergence(u)) + kernel = StokesletSystemKernel(dim=dim, viscosity_mu_name=mu.name) + pde = kernel.get_pde_as_diff_op() k_sqr = sum(k**2 for k in ks) if dim == 2: @@ -647,8 +650,10 @@ def test_to_fourier_matrix_elasticity(dim: int) -> None: nu = sym.Symbol("nu") mn = mu / (1 - 2 * nu) - u = make_identity_diff_op(dim, dim) - pde = mu * laplacian(u) + mn * gradient(divergence(u)) + kernel = ElasticitySystemKernel(dim, + viscosity_mu_name=mu.name, + poisson_ratio_name=nu.name) + pde = kernel.get_pde_as_diff_op() k_sqr = sum(k**2 for k in ks) if dim == 2: @@ -679,10 +684,10 @@ def test_to_fourier_matrix_brinkman(dim: int) -> None: mu = sym.Symbol("mu") kappa = sym.Symbol("k") - diff_op = make_identity_diff_op(dim, dim + 1) - u = diff_op[:dim] - p = diff_op[dim] - pde = concat(mu * (laplacian(u) - kappa**2 * u) - gradient(p), divergence(u)) + kernel = BrinkmanletSystemKernel(dim, + viscosity_mu_name=mu.name, + darcy_impermeability_name=kappa.name) + pde = kernel.get_pde_as_diff_op() k_sqr = sum(k**2 for k in ks) if dim == 2: @@ -791,6 +796,112 @@ def test_get_storage_index(order, knl, compressed): # }}} +# {{{ test_system_kernel_components + +def _get_scalar_cls(knl: SystemKernel) -> type[ScalarKernel]: + if isinstance(knl, ElasticitySystemKernel): + return ElasticityComponentKernel + elif isinstance(knl, StokesletSystemKernel): + return StokesletComponentKernel + elif isinstance(knl, StressletSystemKernel): + return StressletComponentKernel + elif isinstance(knl, BrinkmanletSystemKernel): + return BrinkmanletComponentKernel + elif isinstance(knl, BrinkmanStressSystemKernel): + return BrinkmanStressComponentKernel + else: + raise AssertionError + + +@pytest.mark.parametrize("dim", [2, 3]) +@pytest.mark.parametrize("cls", [ + ElasticitySystemKernel, + StokesletSystemKernel, + StressletSystemKernel, + BrinkmanletSystemKernel, + BrinkmanStressSystemKernel, +]) +def test_system_kernel_components(dim: int, cls: type[SystemKernel]) -> None: + from itertools import product + + knl = cls(dim=dim) + scalar_cls = _get_scalar_cls(knl) + shape = knl.shape + assert knl.ndim == len(shape) + + d = sym.make_sym_vector("d", dim) + expr = knl.get_expression(d) + assert isinstance(expr, np.ndarray) + assert expr.shape == shape + + # check components + if len(shape) == 2: + assert shape == (dim, dim) + for i, j in product(range(dim), repeat=2): + comp = knl[i, j] + assert comp.dim == dim + assert isinstance(comp, scalar_cls) + assert isinstance(comp.get_pde_system_kernel()[0], cls) + else: + assert shape == (dim, dim, dim) + for i, j, k in product(range(dim), repeat=3): + comp = knl[i, j, k] + + assert comp.dim == dim + assert isinstance(comp, scalar_cls) + assert isinstance(comp.get_pde_system_kernel()[0], cls) + + # check symmetry + if isinstance(knl, ( + ElasticitySystemKernel, + StokesletSystemKernel, + BrinkmanletSystemKernel, + )): + for i, j in product(range(dim), repeat=2): + knl_ij = knl[i, j] + expected_ij = tuple(sorted([i, j])) + + assert knl_ij == knl[j, i] + assert (knl_ij.icomp, knl_ij.jcomp) == expected_ij + elif isinstance(knl, (StressletSystemKernel,)): + for i, j, k in product(range(dim), repeat=3): + knl_ijk = knl[i, j, k] + expected_ij = tuple(sorted([i, j, k])) + + assert knl_ijk == knl[expected_ij] + assert (knl_ijk.icomp, knl_ijk.jcomp, knl_ijk.kcomp) == expected_ij + elif isinstance(knl, (BrinkmanStressSystemKernel,)): + for i, j, k in product(range(dim), repeat=3): + knl_ijk = knl[i, j, k] + expected_ij = min(i, k), j, max(i, k) + + assert knl_ijk == knl[expected_ij] + assert (knl_ijk.icomp, knl_ijk.jcomp, knl_ijk.kcomp) == expected_ij + else: + raise AssertionError + +# }}} + + +# {{{ test_system_kernel_pickle + +@pytest.mark.parametrize("dim", [2, 3]) +@pytest.mark.parametrize("cls", [ + ElasticitySystemKernel, + StokesletSystemKernel, + StressletSystemKernel, + BrinkmanletSystemKernel, + BrinkmanStressSystemKernel, +]) +def test_system_kernel_pickle(dim: int, cls: type[SystemKernel]) -> None: + from pickle import dumps, loads + + knl = cls(dim=dim) + assert loads(dumps(knl)) == knl + +# }}} + + # You can test individual routines by typing # $ python test_misc.py 'test_pde_check_kernels(_acf, # KernelInfo(HelmholtzKernel(2), k=5), order=5)' From 4b3f5c09d7c6732be935aff237551ad220d38dd8 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 24 Jun 2026 09:30:24 +0300 Subject: [PATCH 322/335] chore: update baseline --- .basedpyright/baseline.json | 600 +++++++++++++++++++++++++++++++----- 1 file changed, 516 insertions(+), 84 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index dc34e465d..42f0e4645 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -9113,6 +9113,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 24, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -9121,115 +9129,443 @@ "lineCount": 1 } }, + { + "code": "reportUnusedParameter", + "range": { + "startColumn": 16, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 19, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 21, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 17, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, + "startColumn": 15, "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 20, + "startColumn": 43, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 62, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 65, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 64, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 67, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 43, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportReturnType", "range": { - "startColumn": 15, - "endColumn": 19, + "startColumn": 15, + "endColumn": 78, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 43, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 22, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 59, + "endColumn": 68, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 22, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 43, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 56, + "endColumn": 62, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportArgumentType", "range": { - "startColumn": 15, - "endColumn": 28, + "startColumn": 22, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 43, - "endColumn": 51, + "startColumn": 30, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 62, - "endColumn": 66, + "startColumn": 37, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 65, - "endColumn": 69, + "startColumn": 40, + "endColumn": 41, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 64, - "endColumn": 68, + "startColumn": 43, + "endColumn": 44, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownLambdaType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 46, + "endColumn": 73, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 38, + "startColumn": 52, + "endColumn": 53, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 55, + "endColumn": 56, "lineCount": 1 } }, { - "code": "reportReturnType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 40, + "startColumn": 66, + "endColumn": 67, "lineCount": 1 } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 48, + "startColumn": 69, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 25, - "endColumn": 48, + "startColumn": 22, + "endColumn": 66, "lineCount": 1 } }, @@ -9416,6 +9752,14 @@ "endColumn": 59, "lineCount": 1 } + }, + { + "code": "reportAny", + "range": { + "startColumn": 4, + "endColumn": 15, + "lineCount": 1 + } } ], "./sumpy/p2e.py": [ @@ -20574,26 +20918,10 @@ } }, { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 25, + "startColumn": 47, + "endColumn": 53, "lineCount": 1 } }, @@ -20662,10 +20990,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 50, - "endColumn": 67, + "startColumn": 45, + "endColumn": 46, "lineCount": 1 } }, @@ -21757,14 +22085,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 17, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportOperatorIssue", "range": { @@ -21853,14 +22173,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -21877,14 +22189,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 17, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportOperatorIssue", "range": { @@ -22092,6 +22396,134 @@ "endColumn": 56, "lineCount": 1 } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 27, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 41, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 43, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 58, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 43, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 58, + "endColumn": 63, + "lineCount": 1 + } } ], "./sumpy/test/test_qbx.py": [ From 89f38641fbe4cc4f93d54e4d8bb5c0f8d72ede66 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 26 Jun 2026 20:30:07 +0300 Subject: [PATCH 323/335] feat: refactor component kernels --- sumpy/kernel.py | 314 ++++++++++++++++++++++-------------------------- 1 file changed, 144 insertions(+), 170 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 55183331b..10363eeb8 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -104,6 +104,8 @@ :show-inheritance: :members: mapper_method +.. autoclass:: StokesComponentKernelBase + :show-inheritance: .. autoclass:: StokesletComponentKernel :show-inheritance: :members: mapper_method @@ -111,6 +113,8 @@ :show-inheritance: :members: mapper_method +.. autoclass:: ElasticityComponentKernelBase + :show-inheritance: .. autoclass:: ElasticityComponentKernel :show-inheritance: :members: mapper_method @@ -118,6 +122,8 @@ :show-inheritance: :members: mapper_method +.. autoclass:: BrinkmanComponentKernelBase + :show-inheritance: .. autoclass:: BrinkmanletComponentKernel :show-inheritance: :members: mapper_method @@ -929,7 +935,46 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class ElasticityComponentKernel(ExpressionKernel): +class ElasticityComponentKernelBase(ExpressionKernel): + r"""Base kernel class for the linear elasticity (Navier-Cauchy) equations + (see e.g. Section 2.2 in [Hsiao2008]_). + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: poisson_ratio_name + """ + + viscosity_mu_name: str + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + poisson_ratio_name: str + r"""The argument name to use for Poisson's ratio :math:`\nu` when generating + functions to evaluate this kernel. + """ + + @property + @override + def is_complex_valued(self) -> bool: + return False + + @memoize_method + @override + def get_args(self) -> Sequence[KernelArgument]: + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.poisson_ratio_name, np.float64)), + ] + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + + w = make_identity_diff_op(self.dim) + return laplacian(laplacian(w)) + + +@dataclass(frozen=True, repr=False) +class ElasticityComponentKernel(ElasticityComponentKernelBase): r"""A kernel for the linear elasticity (Navier-Cauchy) equations (see e.g. Section 2.2 in [Hsiao2008]_). @@ -941,8 +986,6 @@ class ElasticityComponentKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp - .. autoattribute:: viscosity_mu_name - .. autoattribute:: poisson_ratio_name """ mapper_method: ClassVar[str] = "map_elasticity_kernel" @@ -952,15 +995,6 @@ class ElasticityComponentKernel(ExpressionKernel): jcomp: int """Component index for the kernel.""" - viscosity_mu_name: str - r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. - """ - poisson_ratio_name: str - r"""The argument name to use for Poisson's ratio :math:`\nu` when generating - functions to evaluate this kernel. - """ - def __init__(self, dim: int, icomp: int, @@ -995,12 +1029,12 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__(dim, expression=expr, global_scaling_const=scaling) + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name, + poisson_ratio_name=poisson_ratio_name) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) - object.__setattr__(self, "poisson_ratio_name", poisson_ratio_name) @override def __str__(self) -> str: @@ -1016,6 +1050,29 @@ def __reduce__(self): self.viscosity_mu_name, self.poisson_ratio_name)) + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return ElasticitySystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + poisson_ratio_name=self.poisson_ratio_name + ), (self.icomp, self.jcomp) + + +@dataclass(frozen=True, repr=False) +class StokesComponentKernelBase(ExpressionKernel): + """Base class for kernels of the Stokes equations + (see e.g. Chapter 2 in [Pozrikidis1992]_). + + .. autoattribute:: viscosity_mu_name + """ + + viscosity_mu_name: str + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + @property @override def is_complex_valued(self) -> bool: @@ -1026,18 +1083,8 @@ def is_complex_valued(self) -> bool: def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), - KernelArgument(loopy_arg=lp.ValueArg(self.poisson_ratio_name, np.float64)), ] - @override - @memoize_method - def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: - return ElasticitySystemKernel( - self.dim, - viscosity_mu_name=self.viscosity_mu_name, - poisson_ratio_name=self.poisson_ratio_name - ), (self.icomp, self.jcomp) - @override def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op @@ -1047,8 +1094,9 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class StokesletComponentKernel(ExpressionKernel): - r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). +class StokesletComponentKernel(StokesComponentKernelBase): + r"""The velocity kernel for the Stokes equations (see e.g. Chapter 2 in + [Pozrikidis1992]_). .. math:: @@ -1065,7 +1113,6 @@ class StokesletComponentKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp - .. autoattribute:: viscosity_mu_name """ mapper_method: ClassVar[str] = "map_stokeslet_kernel" @@ -1075,11 +1122,6 @@ class StokesletComponentKernel(ExpressionKernel): jcomp: int """Component index for the kernel.""" - viscosity_mu_name: str - r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. - """ - def __init__(self, dim: int, icomp: int, @@ -1104,10 +1146,10 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__(dim, expression=expr, global_scaling_const=scaling) + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) @override def __str__(self) -> str: @@ -1121,20 +1163,6 @@ def __reduce__(self): type(self), (self.dim, self.icomp, self.jcomp, self.viscosity_mu_name)) - @property - @override - def is_complex_valued(self) -> bool: - return False - - @memoize_method - @override - def get_args(self) -> Sequence[KernelArgument]: - return [ - KernelArgument( - loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64), - ) - ] - @override @memoize_method def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: @@ -1143,17 +1171,11 @@ def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: viscosity_mu_name=self.viscosity_mu_name, ), (self.icomp, self.jcomp) - @override - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - from sumpy.expansion.diff_op import laplacian, make_identity_diff_op - - w = make_identity_diff_op(self.dim) - return laplacian(laplacian(w)) - @dataclass(frozen=True, repr=False) -class StressletComponentKernel(ExpressionKernel): - r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). +class StressletComponentKernel(StokesComponentKernelBase): + r"""The stress kernel for the Stokes equations (see e.g. Chapter 2 in + [Pozrikidis1992]_). .. math:: @@ -1168,7 +1190,6 @@ class StressletComponentKernel(ExpressionKernel): .. autoattribute:: icomp .. autoattribute:: jcomp .. autoattribute:: kcomp - .. autoattribute:: viscosity_mu_name """ mapper_method: ClassVar[str] = "map_stresslet_kernel" @@ -1179,11 +1200,6 @@ class StressletComponentKernel(ExpressionKernel): kcomp: int """Component index for the kernel.""" - viscosity_mu_name: str - r"""The argument name to use for the dynamic viscosity :math:`\mu` when - generating functions to evaluate this kernel. - """ - def __init__(self, dim: int, icomp: int, @@ -1208,12 +1224,12 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__(dim, expression=expr, global_scaling_const=scaling) + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) object.__setattr__(self, "kcomp", kcomp) - object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) @override def __reduce__(self) -> tuple[object, ...]: @@ -1222,19 +1238,6 @@ def __reduce__(self) -> tuple[object, ...]: (self.dim, self.icomp, self.jcomp, self.kcomp, self.viscosity_mu_name)) - @property - @override - def is_complex_valued(self) -> bool: - return False - - @memoize_method - @override - def get_args(self) -> Sequence[KernelArgument]: - # NOTE: this is not used, kept for symmetry with the StokesletComponentKernel - return [ - KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)) - ] - @override def __str__(self) -> str: return ( @@ -1249,13 +1252,6 @@ def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: viscosity_mu_name=self.viscosity_mu_name, ), (self.icomp, self.jcomp, self.kcomp) - @override - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - from sumpy.expansion.diff_op import laplacian, make_identity_diff_op - - w = make_identity_diff_op(self.dim) - return laplacian(laplacian(w)) - @dataclass(frozen=True, repr=False) class LineOfCompressionKernel(ExpressionKernel): @@ -1359,8 +1355,54 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) -class BrinkmanletComponentKernel(ExpressionKernel): - r"""A kernel for the Brinkman equations. +class BrinkmanComponentKernelBase(ExpressionKernel): + """Base class for the Brinkman equations. + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: darcy_impermeability_name + """ + + viscosity_mu_name: str + """The argument name to use for the dynamic viscosity when generating + functions to evaluate this kernel. + """ + darcy_impermeability_name: str + """The argument name to use for the Darcy impermeability when generating + functions to evaluate this kernel. + """ + + @property + @override + def is_complex_valued(self) -> bool: + # FIXME: 2D uses Hankel functions (complex-valued); 3D uses real exp + return self.dim == 2 + + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: + from sumpy.codegen import register_bessel_callables + return register_bessel_callables(loopy_knl) + + @memoize_method + @override + def get_args(self) -> Sequence[KernelArgument]: + return [ + KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), + KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 + ] + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + + w = make_identity_diff_op(self.dim) + k = sym.Symbol(self.darcy_impermeability_name) + + return laplacian(laplacian(w) - k**2 * w) + + +@dataclass(frozen=True, repr=False) +class BrinkmanletComponentKernel(BrinkmanComponentKernelBase): + r"""The velocity kernel for the Brinkman equations. .. math:: @@ -1373,6 +1415,9 @@ class BrinkmanletComponentKernel(ExpressionKernel): \end{cases} where :math:`P_j` is the pressure kernel. + + .. autoattribute:: icomp + .. autoattribute:: jcomp """ mapper_method: ClassVar[str] = "map_brinkmanlet_kernel" @@ -1382,15 +1427,6 @@ class BrinkmanletComponentKernel(ExpressionKernel): jcomp: int """Component index for the kernel.""" - viscosity_mu_name: str - """The argument name to use for the dynamic viscosity when generating - functions to evaluate this kernel. - """ - darcy_impermeability_name: str - """The argument name to use for the Darcy impermeability when generating - functions to evaluate this kernel. - """ - def __init__(self, dim: int, icomp: int, @@ -1432,12 +1468,12 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__(dim, expression=expr, global_scaling_const=scaling) + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name, + darcy_impermeability_name=darcy_impermeability_name) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) - object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) - object.__setattr__(self, "darcy_impermeability_name", darcy_impermeability_name) @override def __reduce__(self) -> tuple[object, ...]: @@ -1447,31 +1483,12 @@ def __reduce__(self) -> tuple[object, ...]: self.viscosity_mu_name, self.darcy_impermeability_name), ) - @property - @override - def is_complex_valued(self) -> bool: - # FIXME: 2D uses Hankel functions (complex-valued); 3D uses real exp - return self.dim == 2 - @override def __str__(self) -> str: return ( f"BrinkmanletKnl{self.dim}D_{self.icomp}{self.jcomp}" f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") - @override - def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - from sumpy.codegen import register_bessel_callables - return register_bessel_callables(loopy_knl) - - @memoize_method - @override - def get_args(self) -> Sequence[KernelArgument]: - return [ - KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), - KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 - ] - @override @memoize_method def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: @@ -1481,18 +1498,9 @@ def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: darcy_impermeability_name=self.darcy_impermeability_name, ), (self.icomp, self.jcomp) - @override - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - from sumpy.expansion.diff_op import laplacian, make_identity_diff_op - - w = make_identity_diff_op(self.dim) - k = sym.Symbol(self.darcy_impermeability_name) - - return laplacian(laplacian(w) - k**2 * w) - @dataclass(frozen=True, repr=False) -class BrinkmanStressComponentKernel(ExpressionKernel): +class BrinkmanStressComponentKernel(BrinkmanComponentKernelBase): r"""A kernel for the Brinkman equations. .. math:: @@ -1504,6 +1512,10 @@ class BrinkmanStressComponentKernel(ExpressionKernel): where the two-index :math:`K_{ij}` is the :class:`~sumpy.kernel.BrinkmanletComponentKernel` and :math:`P_j` is the pressure kernel. + + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: kcomp """ mapper_method: ClassVar[str] = "map_brinkman_stress_kernel" @@ -1515,17 +1527,6 @@ class BrinkmanStressComponentKernel(ExpressionKernel): kcomp: int """Component index for the kernel.""" - # NOTE: we keep the viscosity_mu_name for symmetry with the BrinkmanKernel, - # even though it isn't actually used in the stress kernel - viscosity_mu_name: str - """The argument name to use for the dynamic viscosity when generating - functions to evaluate this kernel. - """ - darcy_impermeability_name: str - """The argument name to use for the Darcy impermeability when generating - functions to evaluate this kernel. - """ - def __init__(self, dim: int, icomp: int, @@ -1579,13 +1580,13 @@ def __init__(self, else: raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__(dim, expression=expr, global_scaling_const=scaling) + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name, + darcy_impermeability_name=darcy_impermeability_name) object.__setattr__(self, "icomp", icomp) object.__setattr__(self, "jcomp", jcomp) object.__setattr__(self, "kcomp", kcomp) - object.__setattr__(self, "viscosity_mu_name", viscosity_mu_name) - object.__setattr__(self, "darcy_impermeability_name", darcy_impermeability_name) @override def __reduce__(self) -> tuple[object, ...]: @@ -1595,31 +1596,12 @@ def __reduce__(self) -> tuple[object, ...]: self.viscosity_mu_name, self.darcy_impermeability_name), ) - @property - @override - def is_complex_valued(self) -> bool: - # 2D uses Hankel functions (complex-valued); 3D uses real exp - return self.dim == 2 - @override def __str__(self) -> str: return ( f"BrinkmanStressKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" f"({self.viscosity_mu_name}, {self.darcy_impermeability_name})") - @override - def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - from sumpy.codegen import register_bessel_callables - return register_bessel_callables(loopy_knl) - - @memoize_method - @override - def get_args(self) -> Sequence[KernelArgument]: - return [ - KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), - KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 - ] - @override @memoize_method def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: @@ -1629,14 +1611,6 @@ def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: darcy_impermeability_name=self.darcy_impermeability_name, ), (self.icomp, self.jcomp, self.kcomp) - @override - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - from sumpy.expansion.diff_op import laplacian, make_identity_diff_op - - w = make_identity_diff_op(self.dim) - k = sym.Symbol(self.darcy_impermeability_name) - return laplacian(laplacian(w) - k**2 * w) - @dataclass(frozen=True, repr=False) class HeatKernel(ExpressionKernel): From 7cccc59d71aa834adb2080d369990055c328f191 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 26 Jun 2026 20:52:46 +0300 Subject: [PATCH 324/335] feat: add elasticity stress tensor --- sumpy/kernel.py | 177 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 10363eeb8..5342c8d38 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -118,6 +118,9 @@ .. autoclass:: ElasticityComponentKernel :show-inheritance: :members: mapper_method +.. autoclass:: ElasticityStressComponentKernel + :show-inheritance: + :members: mapper_method .. autoclass:: LineOfCompressionKernel :show-inheritance: :members: mapper_method @@ -140,6 +143,9 @@ .. autoclass:: ElasticitySystemKernel :show-inheritance: :members: mapper_method +.. autoclass:: ElasticityStressSystemKernel + :show-inheritance: + :members: mapper_method .. autoclass:: StokesletSystemKernel :show-inheritance: @@ -975,7 +981,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class ElasticityComponentKernel(ElasticityComponentKernelBase): - r"""A kernel for the linear elasticity (Navier-Cauchy) equations + r"""The displacement kernel for the linear elasticity (Navier-Cauchy) equations (see e.g. Section 2.2 in [Hsiao2008]_). .. math:: @@ -1060,6 +1066,103 @@ def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: ), (self.icomp, self.jcomp) +@dataclass(frozen=True, repr=False) +class ElasticityStressComponentKernel(ElasticityComponentKernelBase): + r"""The stress kernel for the linear elasticity (Navier-Cauchy) equations + (see e.g. Section 2.2 in [Hsiao2008]_). + + .. math:: + + K_{ijk}(\mathbf{x}, \mathbf{y}) = + \lambda \partial_l K_{kl}(\mathbf{x}, \mathbf{y}) \delta_{ij} + + \mu (\partial_j K_{ik}(\mathbf{x}, \mathbf{y}) + + \partial_i K_{jk}(\mathbf{x}, \mathbf{y})), + + where the two-index :math:`K_{ij}` is the + :class:`~sumpy.kernel.ElasticityComponentKernel`. + + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: kcomp + """ + + mapper_method: ClassVar[str] = "map_elasticity_stress_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" + kcomp: int + """Component index for the kernel.""" + + def __init__(self, + dim: int, + icomp: int, + jcomp: int, + kcomp: int, + viscosity_mu_name: str = "mu", + poisson_ratio_name: str = "nu") -> None: + nu = sym.SpatialConstant(poisson_ratio_name) + + d = make_sym_vector("d", dim) + r = sym.pymbolic_real_norm_2(d) + delta_ij = 1 if icomp == jcomp else 0 + delta_ik = 1 if icomp == kcomp else 0 + delta_jk = 1 if jcomp == kcomp else 0 + + if dim == 2: + expr = ( + (1 - 2*nu) * ( + d[icomp] / r**2 * delta_jk + + d[jcomp] / r**2 * delta_ik + - d[kcomp] / r**2 * delta_ij) + + 3 * d[icomp] * d[jcomp] * d[kcomp] / r**4 + ) + scaling = -1/(4*var("pi")*(1 - nu)) + elif dim == 3: + expr = ( + (1 - 2*nu) * ( + d[icomp] / r**3 * delta_jk + + d[jcomp] / r**3 * delta_ik + - d[kcomp] / r**3 * delta_ij) + + 3 * d[icomp] * d[jcomp] * d[kcomp] / r**5 + ) + scaling = -1/(8*var("pi")*(1 - nu)) + else: + raise NotImplementedError(f"unsupported dimension: '{dim}'") + + super().__init__(dim, expression=expr, global_scaling_const=scaling, + viscosity_mu_name=viscosity_mu_name, + poisson_ratio_name=poisson_ratio_name) + + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "kcomp", kcomp) + + @override + def __str__(self) -> str: + return ( + f"ElasticityStressKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + f"({self.viscosity_mu_name}, {self.poisson_ratio_name})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.icomp, self.jcomp, self.kcomp, + self.viscosity_mu_name, + self.poisson_ratio_name)) + + @override + @memoize_method + def get_pde_system_kernel(self) -> tuple[SystemKernel, tuple[int, ...]]: + return ElasticityStressSystemKernel( + self.dim, + viscosity_mu_name=self.viscosity_mu_name, + poisson_ratio_name=self.poisson_ratio_name + ), (self.icomp, self.jcomp, self.kcomp) + + @dataclass(frozen=True, repr=False) class StokesComponentKernelBase(ExpressionKernel): """Base class for kernels of the Stokes equations @@ -1684,7 +1787,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: @dataclass(frozen=True, repr=False) class ElasticitySystemKernel(SystemKernel): - r"""A kernel for the linear elasticity (Navier-Cauchy) equations + r"""The displacement kernel for the linear elasticity (Navier-Cauchy) equations (see e.g. Section 2.2 in [Hsiao2008]_). This kernel uses :class:`ElasticityComponentKernel` for its components. @@ -1749,6 +1852,73 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator: return mu * laplacian(u) + mu / (1 - 2 * nu) * gradient(divergence(u)) +@dataclass(frozen=True, repr=False) +class ElasticityStressSystemKernel(SystemKernel): + r"""The stress kernel for the linear elasticity (Navier-Cauchy) equations + (see e.g. Section 2.2 in [Hsiao2008]_). + + This kernel uses :class:`ElasticityStressComponentKernel` for its components. + + .. autoattribute:: viscosity_mu_name + .. autoattribute:: poisson_ratio_name + """ + + mapper_method: ClassVar[str] = "map_elasticity_stress_system_kernel" + + viscosity_mu_name: str = "mu" + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. + """ + poisson_ratio_name: str = "nu" + r"""The argument name to use for Poisson's ratio :math:`\nu` when generating + functions to evaluate this kernel. + """ + + @override + def __str__(self) -> str: + return ( + f"ElasticityStressKnl{self.dim}D" + f"({self.viscosity_mu_name}, {self.poisson_ratio_name})") + + @override + def __reduce__(self): + return ( + type(self), + (self.dim, self.viscosity_mu_name, self.poisson_ratio_name)) + + @property + @override + def shape(self) -> tuple[int, ...]: + return (self.dim, self.dim, self.dim) + + @override + @keyed_memoize_method(key=lambda i, j, k: ((min(i, j), max(i, j), k))) + def get_scalar_component(self, i: int, j: int, k: int, /) -> ScalarKernel: + if i > j: + i, j = j, i + + return ElasticityStressComponentKernel( + self.dim, i, j, k, + viscosity_mu_name=self.viscosity_mu_name, + poisson_ratio_name=self.poisson_ratio_name, + ) + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + from sumpy.expansion.diff_op import ( + divergence, + gradient, + laplacian, + make_identity_diff_op, + ) + + mu = sym.Symbol(self.viscosity_mu_name) + nu = sym.Symbol(self.poisson_ratio_name) + u = make_identity_diff_op(self.dim, self.dim) + + return mu * laplacian(u) + mu / (1 - 2 * nu) * gradient(divergence(u)) + + @dataclass(frozen=True, repr=False) class StokesletSystemKernel(SystemKernel): r"""A kernel for the Stokes equations (see e.g. Chapter 2 in [Pozrikidis1992]_). @@ -2478,6 +2648,7 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> ScalarKernel: map_helmholtz_kernel: Callable[[Self, HelmholtzKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_yukawa_kernel: Callable[[Self, YukawaKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_elasticity_kernel: Callable[[Self, ElasticityComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_elasticity_stress_kernel: Callable[[Self, ElasticityStressComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_line_of_compression_kernel: Callable[[Self, LineOfCompressionKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_stokeslet_kernel: Callable[[Self, StokesletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 map_stresslet_kernel: Callable[[Self, StressletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 @@ -2561,6 +2732,8 @@ def map_expression_kernel(self, kernel: ExpressionKernel) -> int: Callable[[Self, YukawaKernel], int] = map_expression_kernel map_elasticity_kernel: \ Callable[[Self, ElasticityComponentKernel], int] = map_expression_kernel + map_elasticity_stress_kernel: \ + Callable[[Self, ElasticityStressComponentKernel], int] = map_expression_kernel map_line_of_compression_kernel: \ Callable[[Self, LineOfCompressionKernel], int] = map_expression_kernel map_stokeslet_kernel: \ From 34a3b11d39ad3775947a3923b4f500112c02de62 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 26 Jun 2026 21:00:48 +0300 Subject: [PATCH 325/335] test: add tests for elasticity stress kernel --- sumpy/test/test_misc.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index c61e0149f..275705719 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -63,6 +63,8 @@ BrinkmanStressComponentKernel, BrinkmanStressSystemKernel, ElasticityComponentKernel, + ElasticityStressComponentKernel, + ElasticityStressSystemKernel, ElasticitySystemKernel, ExpressionKernel, HeatKernel, @@ -143,6 +145,10 @@ def nderivs(self): KernelInfo(ElasticityComponentKernel(2, 0, 0), mu=5, nu=0.2), KernelInfo(ElasticityComponentKernel(3, 0, 1), mu=5, nu=0.2), KernelInfo(ElasticityComponentKernel(3, 0, 0), mu=5, nu=0.2), + KernelInfo(ElasticityStressComponentKernel(2, 0, 1, 0), mu=5, nu=0.2), + KernelInfo(ElasticityStressComponentKernel(2, 0, 0, 1), mu=5, nu=0.2), + KernelInfo(ElasticityStressComponentKernel(3, 0, 1, 0), mu=5, nu=0.2), + KernelInfo(ElasticityStressComponentKernel(3, 0, 0, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 0), mu=5, nu=0.2), KernelInfo(LineOfCompressionKernel(3, 1), mu=5, nu=0.2), KernelInfo(BrinkmanletComponentKernel(2, 0, 1), mu=5, k=3), @@ -801,6 +807,8 @@ def test_get_storage_index(order, knl, compressed): def _get_scalar_cls(knl: SystemKernel) -> type[ScalarKernel]: if isinstance(knl, ElasticitySystemKernel): return ElasticityComponentKernel + if isinstance(knl, ElasticityStressSystemKernel): + return ElasticityStressComponentKernel elif isinstance(knl, StokesletSystemKernel): return StokesletComponentKernel elif isinstance(knl, StressletSystemKernel): @@ -815,6 +823,7 @@ def _get_scalar_cls(knl: SystemKernel) -> type[ScalarKernel]: @pytest.mark.parametrize("dim", [2, 3]) @pytest.mark.parametrize("cls", [ + ElasticityStressSystemKernel, ElasticitySystemKernel, StokesletSystemKernel, StressletSystemKernel, @@ -861,24 +870,31 @@ def test_system_kernel_components(dim: int, cls: type[SystemKernel]) -> None: knl_ij = knl[i, j] expected_ij = tuple(sorted([i, j])) - assert knl_ij == knl[j, i] + assert knl_ij is knl[j, i] assert (knl_ij.icomp, knl_ij.jcomp) == expected_ij elif isinstance(knl, (StressletSystemKernel,)): for i, j, k in product(range(dim), repeat=3): knl_ijk = knl[i, j, k] expected_ij = tuple(sorted([i, j, k])) - assert knl_ijk == knl[expected_ij] + assert knl_ijk is knl[expected_ij] assert (knl_ijk.icomp, knl_ijk.jcomp, knl_ijk.kcomp) == expected_ij elif isinstance(knl, (BrinkmanStressSystemKernel,)): for i, j, k in product(range(dim), repeat=3): knl_ijk = knl[i, j, k] expected_ij = min(i, k), j, max(i, k) - assert knl_ijk == knl[expected_ij] + assert knl_ijk is knl[expected_ij] + assert (knl_ijk.icomp, knl_ijk.jcomp, knl_ijk.kcomp) == expected_ij + elif isinstance(knl, (ElasticityStressSystemKernel,)): + for i, j, k in product(range(dim), repeat=3): + knl_ijk = knl[i, j, k] + expected_ij = min(i, j), max(i, j), k + + assert knl_ijk is knl[expected_ij] assert (knl_ijk.icomp, knl_ijk.jcomp, knl_ijk.kcomp) == expected_ij else: - raise AssertionError + raise AssertionError(knl) # }}} From 626db7dd70c45634c0f2733045a732228a27e235 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 26 Jun 2026 21:01:54 +0300 Subject: [PATCH 326/335] chore: update baseline --- .basedpyright/baseline.json | 136 +++++++++++++++++++++++++++++++++--- 1 file changed, 128 insertions(+), 8 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 42f0e4645..bd6079cad 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -9241,14 +9241,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportReturnType", "range": { @@ -9313,6 +9305,86 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 30, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 37, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 40, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 43, + "endColumn": 44, + "lineCount": 1 + } + }, + { + "code": "reportUnknownLambdaType", + "range": { + "startColumn": 46, + "endColumn": 73, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 52, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 63, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportReturnType", + "range": { + "startColumn": 15, + "endColumn": 78, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -22517,6 +22589,54 @@ "lineCount": 1 } }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 58, + "endColumn": 63, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 35, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportAttributeAccessIssue", + "range": { + "startColumn": 43, + "endColumn": 48, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 50, + "endColumn": 63, + "lineCount": 1 + } + }, { "code": "reportAttributeAccessIssue", "range": { From 451e374ffac1b8bfc582dff6f383ac0ff3087d9d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 12 Jul 2026 10:29:49 +0300 Subject: [PATCH 327/335] fix: remove unused ruff noqa --- sumpy/tools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/tools.py b/sumpy/tools.py index 5ee913571..f904a2527 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -141,12 +141,12 @@ def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: # NOTE: these are used a lot and `tuple([])` is faster - return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) # noqa: C409 + return tuple([mi1i + mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) def sub_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: # NOTE: these are used a lot and `tuple([])` is faster - return tuple([mi1i - mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) # noqa: C409 + return tuple([mi1i - mi2i for mi1i, mi2i in zip(mi1, mi2, strict=True)]) def mi_factorial(mi: Sequence[int]) -> int: From e664162c7e54aa94d391445a4b90dbc3c7254ea6 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 17 Jul 2026 20:11:48 +0300 Subject: [PATCH 328/335] chore: use human-readable ruff rules --- benchmarks/bench_translations.py | 4 +- .../PDE-reduction and translations.ipynb | 6 ++- .../translations/PDE-reduction-symbolic.ipynb | 6 ++- doc/conf.py | 2 +- examples/expansion-toys.py | 8 +++- examples/fourier.py | 2 +- pyproject.toml | 25 ++++++------ sumpy/codegen.py | 6 +-- sumpy/cse.py | 4 +- sumpy/e2e.py | 2 +- sumpy/e2p.py | 2 +- sumpy/expansion/__init__.py | 4 +- sumpy/expansion/diff_op.py | 2 +- sumpy/expansion/local.py | 2 +- sumpy/expansion/m2l.py | 2 +- sumpy/kernel.py | 40 +++++++++---------- sumpy/symbolic.py | 12 +++--- sumpy/test/geometries.py | 2 +- sumpy/test/test_cse.py | 10 ++--- sumpy/test/test_fmm.py | 9 +++-- sumpy/test/test_heat_translations.py | 11 +++-- sumpy/test/test_kernels.py | 9 +++-- sumpy/test/test_l2l_coeffs.py | 11 +++-- sumpy/test/test_m2m_coeffs.py | 11 +++-- sumpy/test/test_matrixgen.py | 5 ++- sumpy/test/test_misc.py | 9 +++-- sumpy/test/test_qbx.py | 5 ++- sumpy/test/test_target_deriv.py | 4 +- sumpy/test/test_tools.py | 5 ++- sumpy/tools.py | 16 ++++---- sumpy/toys.py | 4 +- 31 files changed, 140 insertions(+), 100 deletions(-) diff --git a/benchmarks/bench_translations.py b/benchmarks/bench_translations.py index bdb46e158..8aba95fca 100644 --- a/benchmarks/bench_translations.py +++ b/benchmarks/bench_translations.py @@ -4,7 +4,7 @@ import numpy as np -from pyopencl.tools import ( # noqa +from pyopencl.tools import ( # ruff:ignore[unused-import] pytest_generate_tests_for_pyopencl as pytest_generate_tests, ) @@ -53,7 +53,7 @@ class TranslationBenchmarkSuite: def setup(self, param): logging.basicConfig(level=logging.INFO) - np.random.seed(17) # noqa: NPY002 + np.random.seed(17) # ruff:ignore[numpy-legacy-random] if self.__class__ == TranslationBenchmarkSuite: raise NotImplementedError mpole_expn_class = self.mpole_expn_class diff --git a/contrib/translations/PDE-reduction and translations.ipynb b/contrib/translations/PDE-reduction and translations.ipynb index 31d6602fc..d4df4f2e1 100644 --- a/contrib/translations/PDE-reduction and translations.ipynb +++ b/contrib/translations/PDE-reduction and translations.ipynb @@ -18,7 +18,11 @@ "import sumpy.toys as t\n", "from sumpy.expansion.local import VolumeTaylorLocalExpansion\n", "from sumpy.expansion.multipole import VolumeTaylorMultipoleExpansion\n", - "from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401\n", + "from sumpy.kernel import ( # ruff:ignore[unused-import]\n", + " HelmholtzKernel,\n", + " LaplaceKernel,\n", + " YukawaKernel,\n", + ")\n", "\n", "\n", "rng = np.random.default_rng(seed=42)\n", diff --git a/contrib/translations/PDE-reduction-symbolic.ipynb b/contrib/translations/PDE-reduction-symbolic.ipynb index 1fd881463..29a806826 100644 --- a/contrib/translations/PDE-reduction-symbolic.ipynb +++ b/contrib/translations/PDE-reduction-symbolic.ipynb @@ -14,7 +14,11 @@ " LinearPDEConformingVolumeTaylorMultipoleExpansion,\n", " VolumeTaylorMultipoleExpansion,\n", ")\n", - "from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401\n", + "from sumpy.kernel import ( # ruff:ignore[unused-import]\n", + " HelmholtzKernel,\n", + " LaplaceKernel,\n", + " YukawaKernel,\n", + ")\n", "from sumpy.symbolic import make_sym_vector\n", "\n", "\n", diff --git a/doc/conf.py b/doc/conf.py index 78ca6f540..fe1489761 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -73,4 +73,4 @@ def setup(app): - app.connect("missing-reference", process_autodoc_missing_reference) # noqa: F821 + app.connect("missing-reference", process_autodoc_missing_reference) # ruff:ignore[undefined-name] diff --git a/examples/expansion-toys.py b/examples/expansion-toys.py index 4d1483aef..5f70931a5 100644 --- a/examples/expansion-toys.py +++ b/examples/expansion-toys.py @@ -3,7 +3,11 @@ import pyopencl as cl import sumpy.toys as t -from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401 +from sumpy.kernel import ( # ruff:ignore[unused-import] + HelmholtzKernel, + LaplaceKernel, + YukawaKernel, +) from sumpy.visualization import FieldPlotter @@ -40,7 +44,7 @@ def main(): plt.show() mexp = t.multipole_expand(actx, pt_src, [0, 0], order=5) - mexp2 = t.multipole_expand(actx, mexp, [0, 0.25]) # noqa: F841 + mexp2 = t.multipole_expand(actx, mexp, [0, 0.25]) # ruff:ignore[unused-variable] lexp = t.local_expand(actx, mexp, [3, 0]) lexp2 = t.local_expand(actx, lexp, [3, 1], order=3) diff --git a/examples/fourier.py b/examples/fourier.py index 9e51c8449..a72702985 100644 --- a/examples/fourier.py +++ b/examples/fourier.py @@ -17,7 +17,7 @@ def make_fourier_mode_extender(m, n, dtype): result = np.zeros((m, n), dtype) # https://docs.scipy.org/doc/numpy/reference/routines.fft.html - if k % 2 == 0: # noqa: SIM108 + if k % 2 == 0: # ruff:ignore[if-else-block-instead-of-if-exp] peak_pos_freq = k/2 else: peak_pos_freq = (k-1)/2 diff --git a/pyproject.toml b/pyproject.toml index 69d4b68e8..0d1a3ce21 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,12 +98,12 @@ extend-select = [ ] extend-ignore = [ "C90", # McCabe complexity - "E221", # multiple spaces before operator - "E226", # missing whitespace around arithmetic operator - "E402", # module-level import not at top of file - "RUF067", # non-empty-init-module - "TRY004", - "TRY300", + "multiple-spaces-before-operator", # multiple spaces before operator + "missing-whitespace-around-arithmetic-operator", # missing whitespace around arithmetic operator + "module-import-not-at-top-of-file", # module-level import not at top of file + "non-empty-init-module", # non-empty-init-module + "type-check-without-type-error", + "try-consider-else", ] [tool.ruff.lint.flake8-quotes] @@ -127,10 +127,10 @@ lines-after-imports = 2 required-imports = ["from __future__ import annotations"] [tool.ruff.lint.per-file-ignores] -"doc/**/*.py" = ["I002"] -"examples/**/*.py" = ["I002"] -"sumpy/test/test_*.py" = ["S102"] -"doc/conf.py" = ["S102"] +"doc/**/*.py" = ["missing-required-import"] +"examples/**/*.py" = ["missing-required-import"] +"sumpy/test/test_*.py" = ["exec-builtin"] +"doc/conf.py" = ["exec-builtin"] [tool.typos.default] extend-ignore-re = [ @@ -189,6 +189,9 @@ exclude = [ ".venv", ] +# covered by ruff +reportUnusedImport = "hint" + [[tool.basedpyright.executionEnvironments]] root = "test" reportUnknownArgumentType = "none" @@ -198,7 +201,6 @@ reportMissingParameterType = "none" reportAttributeAccessIssue = "hint" reportMissingTypeStubs = "hint" reportUnknownLambdaType = "hint" -reportUnusedImport = "hint" reportUnusedParameter = "none" reportUnannotatedClassAttribute = "hint" reportAny = "hint" @@ -216,7 +218,6 @@ reportMissingParameterType = "none" reportAttributeAccessIssue = "hint" reportMissingTypeStubs = "hint" reportUnknownLambdaType = "hint" -reportUnusedImport = "hint" reportUnusedParameter = "none" reportUnannotatedClassAttribute = "hint" reportAny = "hint" diff --git a/sumpy/codegen.py b/sumpy/codegen.py index fe9a5cda1..bc72e8d14 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -193,7 +193,7 @@ def generate_preambles(self, target: TargetBase) -> Iterator[tuple[str, str]]: yield ("40-sumpy-bessel", BESSEL_PREAMBLE) -class Hankel1_01(lp.ScalarCallable): # noqa: N801 +class Hankel1_01(lp.ScalarCallable): # ruff:ignore[invalid-class-name] @override def with_types(self, arg_id_to_dtype: Mapping[int | str, LoopyType], @@ -325,7 +325,7 @@ def map_call(self, # AS (9.1.31) # https://dlmf.nist.gov/10.6.7 - if order >= 0: # noqa: SIM108 + if order >= 0: # ruff:ignore[if-else-block-instead-of-if-exp] order_str = f"{order}" else: order_str = f"m{-order}" @@ -608,7 +608,7 @@ def map_constant(self, expr: object, /) -> Expression: complex_dtype = self.complex_dtype if complex_dtype is None: - if complex(np.complex64(expr)) == expr: # noqa: RUF069 + if complex(np.complex64(expr)) == expr: # ruff:ignore[float-equality-comparison] return np.complex64(expr) complex_dtype = np.complex128 diff --git a/sumpy/cse.py b/sumpy/cse.py index 120693f97..0186718b6 100644 --- a/sumpy/cse.py +++ b/sumpy/cse.py @@ -506,7 +506,7 @@ def find_repeated(expr: sym.Basic | Unevaluated) -> None: assert isinstance(expr, sym.Basic) expr = opt_subs[expr] - if isinstance(expr, CSE_NO_DESCEND_CLASSES): # noqa: SIM108 + if isinstance(expr, CSE_NO_DESCEND_CLASSES): # ruff:ignore[if-else-block-instead-of-if-exp] args = () else: args = expr.args @@ -569,7 +569,7 @@ def rebuild(expr: sym.Basic | Unevaluated) -> sym.Basic | Unevaluated: reduced_exprs: list[sym.Basic] = [] for e in exprs: - if isinstance(e, sym.Basic): # noqa: SIM108 + if isinstance(e, sym.Basic): # ruff:ignore[if-else-block-instead-of-if-exp] reduced_e = rebuild(e) else: reduced_e = e diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 70fd0ad49..0d0bdc29b 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -31,7 +31,7 @@ from typing_extensions import override import loopy as lp -from loopy.version import MOST_RECENT_LANGUAGE_VERSION # noqa: F401 +from loopy.version import MOST_RECENT_LANGUAGE_VERSION # ruff:ignore[unused-import] from pytools import memoize_method import sumpy.symbolic as sym diff --git a/sumpy/e2p.py b/sumpy/e2p.py index c4ad36d8d..bd46441a5 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -29,7 +29,7 @@ import numpy as np import loopy as lp -from loopy.version import MOST_RECENT_LANGUAGE_VERSION # noqa: F401 +from loopy.version import MOST_RECENT_LANGUAGE_VERSION # ruff:ignore[unused-import] from pytools import obj_array from sumpy.array_context import make_loopy_program diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index a79ce51f9..b3adc5995 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -449,7 +449,7 @@ def _get_mi_ordering_key_and_axis_permutation( axis_permutation = list(reversed(range(self.dim))) def mi_key(ident: MultiIndex | DerivativeIdentifier) -> tuple[int, ...]: - if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 + if isinstance(ident, DerivativeIdentifier): # ruff:ignore[if-else-block-instead-of-if-exp] mi = ident.mi else: mi = ident @@ -641,7 +641,7 @@ def _get_mi_ordering_key_and_axis_permutation( from sumpy.expansion.diff_op import DerivativeIdentifier def mi_key(ident: MultiIndex | DerivativeIdentifier) -> tuple[int, ...]: - if isinstance(ident, DerivativeIdentifier): # noqa: SIM108 + if isinstance(ident, DerivativeIdentifier): # ruff:ignore[if-else-block-instead-of-if-exp] mi = ident.mi else: mi = ident diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index c17129f0d..050a7a601 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -582,7 +582,7 @@ def make_identity_diff_op( is *True*, then the last dimension of the multi-index is time. """ - if time_dependent: # noqa: SIM108 + if time_dependent: # ruff:ignore[if-else-block-instead-of-if-exp] mi = tuple([0]*(ninput + 1)) else: mi = tuple([0]*ninput) diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 86e561677..ce59f5521 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -257,7 +257,7 @@ def coefficients_from_source_vec(self, # Following is a hack to make sure cse works. if 1: def save_temp(x: sym.Expr) -> sym.Expr: - return add_to_sac(sac, weight * x) # noqa: B023 + return add_to_sac(sac, weight * x) # ruff:ignore[function-uses-loop-variable] for i, mi in enumerate(self.get_coefficient_identifiers()): result[i] += taker.diff(mi, save_temp) diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 92b43f73a..3a2237161 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -432,7 +432,7 @@ def _translation_classes_dependent_data_mis(self, max_mi = [0]*dim for i in range(dim): max_mi[i] = max(mi[i] for mi in src_expansion.get_coefficient_identifiers()) - max_mi[i] += max(mi[i] for mi in tgt_expansion.get_coefficient_identifiers()) # noqa: E501 + max_mi[i] += max(mi[i] for mi in tgt_expansion.get_coefficient_identifiers()) # ruff:ignore[line-too-long] # These are the multi-indices representing the rows # in the circulant matrix. Note that to get the circulant diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 5342c8d38..821f9993e 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -879,7 +879,7 @@ def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: if dim == 2: # NOTE: transform K(0, lam r) into a Hankel function using [2] expr = var("hankel_1")(0, var("I")*lam*r) - scaling_for_K0 = var("pi")/2*var("I") # noqa: N806 + scaling_for_K0 = var("pi")/2*var("I") # ruff:ignore[non-lowercase-variable-in-function] scaling = 1/(2*var("pi")) * scaling_for_K0 elif dim == 3: @@ -1490,7 +1490,7 @@ def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationU def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument(loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64)), - KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # noqa: E501 + KernelArgument(loopy_arg=lp.ValueArg(self.darcy_impermeability_name, np.float64)), # ruff:ignore[line-too-long] ] @override @@ -1541,7 +1541,7 @@ def __init__(self, d = make_sym_vector("d", dim) r = sym.pymbolic_real_norm_2(d) - R = k * r # noqa: N806 + R = k * r # ruff:ignore[non-lowercase-variable-in-function] delta_ij = 1 if icomp == jcomp else 0 # NOTE: @@ -1553,8 +1553,8 @@ def __init__(self, if dim == 2: # transforming Bessel functions to Hankel functions using [2] - K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # noqa: N806 - K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # noqa: N806 + K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # ruff:ignore[non-lowercase-variable-in-function] + K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # ruff:ignore[non-lowercase-variable-in-function] # [1] Equations 7.7.5 and 7.7.6 # [3] Equations 5.2 and 5.3 (for the scaling we use here) @@ -1641,7 +1641,7 @@ def __init__(self, d = make_sym_vector("d", dim) r = sym.pymbolic_real_norm_2(d) - R = k * r # noqa: N806 + R = k * r # ruff:ignore[non-lowercase-variable-in-function] delta_ij = 1 if icomp == jcomp else 0 delta_ik = 1 if icomp == kcomp else 0 delta_kj = 1 if jcomp == kcomp else 0 @@ -1655,8 +1655,8 @@ def __init__(self, if dim == 2: # transforming Bessel functions to Hankel functions using [2] - K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # noqa: N806 - K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # noqa: N806 + K0 = var("pi") * var("I") / 2 * var("hankel_1")(0, var("I") * R) # ruff:ignore[non-lowercase-variable-in-function] + K1 = -var("pi") / 2 * var("hankel_1")(1, var("I") * R) # ruff:ignore[non-lowercase-variable-in-function] # [1] Equations 7.7.7 and 7.7.8 # [3] Equations 5.4-5.6 (for the scaling we use here) @@ -2643,17 +2643,17 @@ class KernelIdentityMapper(KernelMapper[ScalarKernel]): def map_expression_kernel(self, kernel: ExpressionKernel) -> ScalarKernel: return kernel - map_laplace_kernel: Callable[[Self, LaplaceKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_biharmonic_kernel: Callable[[Self, BiharmonicKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_helmholtz_kernel: Callable[[Self, HelmholtzKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_yukawa_kernel: Callable[[Self, YukawaKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_elasticity_kernel: Callable[[Self, ElasticityComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_elasticity_stress_kernel: Callable[[Self, ElasticityStressComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_line_of_compression_kernel: Callable[[Self, LineOfCompressionKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_stokeslet_kernel: Callable[[Self, StokesletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_stresslet_kernel: Callable[[Self, StressletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_brinkmanlet_kernel: Callable[[Self, BrinkmanletComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 - map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressComponentKernel], ScalarKernel] = map_expression_kernel # noqa: E501 + map_laplace_kernel: Callable[[Self, LaplaceKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_biharmonic_kernel: Callable[[Self, BiharmonicKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_helmholtz_kernel: Callable[[Self, HelmholtzKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_yukawa_kernel: Callable[[Self, YukawaKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_elasticity_kernel: Callable[[Self, ElasticityComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_elasticity_stress_kernel: Callable[[Self, ElasticityStressComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_line_of_compression_kernel: Callable[[Self, LineOfCompressionKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_stokeslet_kernel: Callable[[Self, StokesletComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_stresslet_kernel: Callable[[Self, StressletComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_brinkmanlet_kernel: Callable[[Self, BrinkmanletComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] + map_brinkman_stress_kernel: Callable[[Self, BrinkmanStressComponentKernel], ScalarKernel] = map_expression_kernel # ruff:ignore[line-too-long] map_heat_kernel: Callable[[Self, HeatKernel], ScalarKernel] = map_expression_kernel def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKernel: @@ -2662,7 +2662,7 @@ def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> ScalarKern def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> ScalarKernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> ScalarKernel: # noqa: E501 + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> ScalarKernel: # ruff:ignore[line-too-long] return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) def map_directional_source_derivative( diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 7c9904370..06b44723d 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -63,7 +63,7 @@ def _find_symbolic_backend(): global USE_SYMENGINE try: - import symengine # noqa: F401 + import symengine # ruff:ignore[unused-import] symengine_found = True symengine_error = None except ImportError as import_error: @@ -132,7 +132,7 @@ def _find_symbolic_backend(): Rational = sym.Rational Matrix = sym.Matrix Subs = sym.Subs -I = cast("Expr", sym.I) # noqa: E741 +I = cast("Expr", sym.I) # ruff:ignore[ambiguous-variable-name] pi = cast("Expr", sym.pi) functions = sym.functions Number = sym.Number @@ -147,13 +147,13 @@ def _coeff_isneg(a: Basic) -> bool: if TYPE_CHECKING or USE_SYMENGINE: - def UnevaluatedExpr(x: T) -> T: # noqa: N802 + def UnevaluatedExpr(x: T) -> T: # ruff:ignore[invalid-function-name] return x else: try: from sympy import UnevaluatedExpr except ImportError: - def UnevaluatedExpr(x): # noqa: N802 + def UnevaluatedExpr(x): # ruff:ignore[invalid-function-name] return x @@ -396,10 +396,10 @@ class Hankel1(_BesselOrHankel): _SympyHankel1 = Hankel1 if not TYPE_CHECKING and USE_SYMENGINE: - def BesselJ(*args): # noqa: N802 + def BesselJ(*args): # ruff:ignore[invalid-function-name] return sympify(_SympyBesselJ(*args)) - def Hankel1(*args): # noqa: N802 + def Hankel1(*args): # ruff:ignore[invalid-function-name] return sympify(_SympyHankel1(*args)) # vim: fdm=marker diff --git a/sumpy/test/geometries.py b/sumpy/test/geometries.py index 5104ab39d..a4b4b004e 100644 --- a/sumpy/test/geometries.py +++ b/sumpy/test/geometries.py @@ -125,7 +125,7 @@ def diff2d(ary: onp.Array2D[np.floating[Any]]) -> onp.Array2D[np.floating[Any]]: length=0.1 ) plt.show() - 1/0 # noqa: B018 + 1/0 # ruff:ignore[useless-expression] geo = Geometry( nodes=nodes.reshape(3, -1).copy(), diff --git a/sumpy/test/test_cse.py b/sumpy/test/test_cse.py index 843998839..ad531cdf8 100644 --- a/sumpy/test/test_cse.py +++ b/sumpy/test/test_cse.py @@ -299,8 +299,8 @@ def test_issue_4499(): from sympy import S, Tuple from sympy.abc import a, b - B = sym.Function("B") # noqa: N806 - G = sym.Function("G") # noqa: N806 + B = sym.Function("B") # ruff:ignore[non-lowercase-variable-in-function] + G = sym.Function("G") # ruff:ignore[non-lowercase-variable-in-function] t = Tuple(*( a, a + S(1)/2, @@ -418,14 +418,14 @@ def test_symbols_exhausted_error(): @sympyonly def test_issue_7840(): # daveknippers' example - C393 = sym.sympify( # noqa: N806 + C393 = sym.sympify( # ruff:ignore[non-lowercase-variable-in-function] "Piecewise((C391 - 1.65, C390 < 0.5), (Piecewise((C391 - 1.65, \ C391 > 2.35), (C392, True)), True))" ) - C391 = sym.sympify( # noqa: N806 + C391 = sym.sympify( # ruff:ignore[non-lowercase-variable-in-function] "Piecewise((2.05*C390**(-1.03), C390 < 0.5), (2.5*C390**(-0.625), True))" ) - C393 = C393.subs("C391", C391) # noqa: N806 + C393 = C393.subs("C391", C391) # ruff:ignore[non-lowercase-variable-in-function] # simple substitution sub = {} sub["C390"] = 0.703451854 diff --git a/sumpy/test/test_fmm.py b/sumpy/test/test_fmm.py index 4936f09b6..1a87a67f6 100644 --- a/sumpy/test/test_fmm.py +++ b/sumpy/test/test_fmm.py @@ -40,7 +40,10 @@ ) from pytools import obj_array -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import ( H2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion, @@ -264,10 +267,10 @@ def _test_sumpy_fmm( if order_varies_with_level: def fmm_level_to_order(kernel, kernel_args, tree, lev): - return order + lev % 2 # noqa: B023 + return order + lev % 2 # ruff:ignore[function-uses-loop-variable] else: def fmm_level_to_order(kernel, kernel_args, tree, lev): - return order # noqa: B023 + return order # ruff:ignore[function-uses-loop-variable] wrangler = SumpyExpansionWrangler(tree_indep, trav, dtype, fmm_level_to_order=fmm_level_to_order, diff --git a/sumpy/test/test_heat_translations.py b/sumpy/test/test_heat_translations.py index d7fa323c9..3d2f686f1 100644 --- a/sumpy/test/test_heat_translations.py +++ b/sumpy/test/test_heat_translations.py @@ -36,7 +36,10 @@ from pytools.convergence import EOCRecorder import sumpy.toys as t -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, VolumeTaylorLocalExpansion, @@ -79,7 +82,7 @@ def test_heat_m2m( extra_kwargs = {"alpha": alpha} t_sep = 1.0 - L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + L = np.sqrt(4 * alpha * t_sep) # ruff:ignore[non-lowercase-variable-in-function] src_center = np.array([1.0, 0.5]) tgt_center = np.array([0.0, 2.5]) @@ -166,7 +169,7 @@ def test_heat_l2l( tgt_center = np.array([0.0, 2.5]) t_sep = 2 * src_ht - L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + L = np.sqrt(4 * alpha * t_sep) # ruff:ignore[non-lowercase-variable-in-function] rng = np.random.default_rng(0) src_grid = np.linspace(-1.0, 1.0, 11) @@ -251,7 +254,7 @@ def test_heat_m2l( tgt_center = np.array([0.0, 2.5]) t_sep = 2 * src_ht - L = np.sqrt(4 * alpha * t_sep) # noqa: N806 + L = np.sqrt(4 * alpha * t_sep) # ruff:ignore[non-lowercase-variable-in-function] rng = np.random.default_rng(0) src_grid = np.linspace(-1.0, 1.0, 11) diff --git a/sumpy/test/test_kernels.py b/sumpy/test/test_kernels.py index 2375bf4e3..ea6d2b0fa 100644 --- a/sumpy/test/test_kernels.py +++ b/sumpy/test/test_kernels.py @@ -42,7 +42,10 @@ import sumpy.symbolic as sym import sumpy.toys as t -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import ( H2DLocalExpansion, LinearPDEConformingVolumeTaylorLocalExpansion, @@ -672,14 +675,14 @@ def test_m2m_and_l2l_exprs_simpler(base_knl, local_expn_class, mpole_expn_class, dvec, tgt_rscale, _fast_version=False) for expr1, expr2 in zip(faster_m2m, slower_m2m, strict=True): - assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # noqa: RUF069 + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # ruff:ignore[float-equality-comparison] faster_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale) slower_l2l = local_expn.translate_from(local_expn, src_coeff_exprs, src_rscale, dvec, tgt_rscale, _fast_version=False) for expr1, expr2 in zip(faster_l2l, slower_l2l, strict=True): - assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # noqa: RUF069 + assert float(sym.doit(expr1 - expr2).expand()) == 0.0 # ruff:ignore[float-equality-comparison] # }}} diff --git a/sumpy/test/test_l2l_coeffs.py b/sumpy/test/test_l2l_coeffs.py index cfc08867b..0e78b2737 100644 --- a/sumpy/test/test_l2l_coeffs.py +++ b/sumpy/test/test_l2l_coeffs.py @@ -39,7 +39,10 @@ import sumpy.toys as t from .coeff_test_tools import NumericMatVecOperator, get_repl_dict, to_scalar -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, VolumeTaylorLocalExpansion, @@ -115,9 +118,9 @@ def test_l2l_coefficient_differences( # Build matrix M p2l2l_expn = LinearPDEConformingVolumeTaylorLocalExpansion(knl, order) wrangler = p2l2l_expn.expansion_terms_wrangler - M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # noqa: N806 + M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # ruff:ignore[non-lowercase-variable-in-function] numeric_op = NumericMatVecOperator(M_symbolic, repl_dict) - M = build_matrix(numeric_op, dtype=np.complex128) # noqa: N806 + M = build_matrix(numeric_op, dtype=np.complex128) # ruff:ignore[non-lowercase-variable-in-function] # Get compressed coefficients mu_c_symbolic = wrangler.get_full_kernel_derivatives_from_stored( @@ -145,7 +148,7 @@ def test_l2l_coefficient_differences( print(f'{"="*104}') print(f"c1 = {c1}, c2 = {c2}, h = {h}") print() - print(f"{'i':>3s} | {'ν(i)':>15s} | {'|ν|':4s} | " # noqa: RUF001 + print(f"{'i':>3s} | {'ν(i)':>15s} | {'|ν|':4s} | " # ruff:ignore[ambiguous-unicode-character-string] f"{'formula':>31s} | {'direct':>31s} | {'abs err':>10s}") print("-" * 104) diff --git a/sumpy/test/test_m2m_coeffs.py b/sumpy/test/test_m2m_coeffs.py index 07acdd639..d04c41f75 100644 --- a/sumpy/test/test_m2m_coeffs.py +++ b/sumpy/test/test_m2m_coeffs.py @@ -39,7 +39,10 @@ import sumpy.toys as t from .coeff_test_tools import NumericMatVecOperator, get_repl_dict, to_scalar -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, ) @@ -110,7 +113,7 @@ def test_m2m_coefficient_differences( print(f"m_center2 = {m_center2}") print(f"h = m_center2 - m_center1 = {h}") print() - print(f"{'k':>3s} | {'ν(k)':>15s} | {'|ν(k)|':6s} | " # noqa: RUF001 + print(f"{'k':>3s} | {'ν(k)':>15s} | {'|ν(k)|':6s} | " # ruff:ignore[ambiguous-unicode-character-string] f"{'difference by formula':>31s} | " f"{'difference by direct computation':>31s} | " f"{'abs err':>10s}") @@ -140,9 +143,9 @@ def test_m2m_coefficient_differences( # Build matrix M wrangler = mexpn.expansion_terms_wrangler - M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # noqa: N806 + M_symbolic = wrangler.get_projection_matrix(rscale=1.0) # ruff:ignore[non-lowercase-variable-in-function] numeric_op = NumericMatVecOperator(M_symbolic, repl_dict) - M = build_matrix(numeric_op, dtype=np.complex128) # noqa: N806 + M = build_matrix(numeric_op, dtype=np.complex128) # ruff:ignore[non-lowercase-variable-in-function] coeffs_full = (M @ p2l.coeffs) * global_const # Get coefficient identifiers diff --git a/sumpy/test/test_matrixgen.py b/sumpy/test/test_matrixgen.py index 2248f8f8f..1f89fafea 100644 --- a/sumpy/test/test_matrixgen.py +++ b/sumpy/test/test_matrixgen.py @@ -33,7 +33,10 @@ from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts from pytools import obj_array -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) logger = logging.getLogger(__name__) diff --git a/sumpy/test/test_misc.py b/sumpy/test/test_misc.py index 275705719..69414a790 100644 --- a/sumpy/test/test_misc.py +++ b/sumpy/test/test_misc.py @@ -40,7 +40,10 @@ import sumpy.symbolic as sym import sumpy.toys as t -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion import ( FullExpansionTermsWrangler, LinearPDEBasedExpansionTermsWrangler, @@ -481,8 +484,8 @@ def test_as_scalar_pde_stokes(): def test_as_scalar_pde_maxwell(): from sumpy.symbolic import symbols op = make_identity_diff_op(3, 6, time_dependent=True) - E = op[:3] # noqa: N806 - B = op[3:] # noqa: N806 + E = op[:3] # ruff:ignore[non-lowercase-variable-in-function] + B = op[3:] # ruff:ignore[non-lowercase-variable-in-function] mu, epsilon = symbols("mu, epsilon") t = (0, 0, 0, 1) diff --git a/sumpy/test/test_qbx.py b/sumpy/test/test_qbx.py index 7d7a6e6a7..533ed796e 100644 --- a/sumpy/test/test_qbx.py +++ b/sumpy/test/test_qbx.py @@ -31,7 +31,10 @@ from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion diff --git a/sumpy/test/test_target_deriv.py b/sumpy/test/test_target_deriv.py index f5d0648e2..97913761f 100644 --- a/sumpy/test/test_target_deriv.py +++ b/sumpy/test/test_target_deriv.py @@ -38,9 +38,9 @@ ) from pytools.convergence import EOCRecorder -from sumpy.array_context import ( # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] PytestPyOpenCLArrayContextFactory, - _acf, # pyright: ignore[reportUnusedImport] + _acf, ) from sumpy.expansion.local import LineTaylorLocalExpansion from sumpy.kernel import AxisTargetDerivative, LaplaceKernel, ScalarKernel diff --git a/sumpy/test/test_tools.py b/sumpy/test/test_tools.py index 9ba35f1ea..3d053a607 100644 --- a/sumpy/test/test_tools.py +++ b/sumpy/test/test_tools.py @@ -32,7 +32,10 @@ from arraycontext import ArrayContextFactory, pytest_generate_tests_for_array_contexts import sumpy.symbolic as sym -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.array_context import ( # ruff:ignore[unused-import] + PytestPyOpenCLArrayContextFactory, + _acf, +) from sumpy.tools import ( fft, fft_toeplitz_upper_triangular, diff --git a/sumpy/tools.py b/sumpy/tools.py index f904a2527..6a5d2f419 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -784,7 +784,7 @@ def loopy_fft( m = n factors = [] while m != 1: - N1, m = find_factors(m) # noqa: N806 + N1, m = find_factors(m) # ruff:ignore[non-lowercase-variable-in-function] factors.append(N1) nfft = n @@ -816,9 +816,9 @@ def loopy_fft( ), ] - for ilev, N1 in enumerate(list(reversed(factors))): # noqa: N806 + for ilev, N1 in enumerate(list(reversed(factors))): # ruff:ignore[non-lowercase-variable-in-function] nfft //= N1 - N2 = n // (nfft * N1) # noqa: N806 + N2 = n // (nfft * N1) # ruff:ignore[non-lowercase-variable-in-function] init_happens_after = "copy" if ilev == 0 else f"update_{ilev-1}" temp = var("temp") @@ -826,15 +826,15 @@ def loopy_fft( i = var(f"i_{ilev}") i2 = var(f"i2_{ilev}") ifft = var(f"ifft_{ilev}") - iN1 = var(f"iN1_{ilev}") # noqa: N806 - iN1_sum = var(f"iN1_sum_{ilev}") # noqa: N806 - iN2 = var(f"iN2_{ilev}") # noqa: N806 + iN1 = var(f"iN1_{ilev}") # ruff:ignore[non-lowercase-variable-in-function] + iN1_sum = var(f"iN1_sum_{ilev}") # ruff:ignore[non-lowercase-variable-in-function] + iN2 = var(f"iN2_{ilev}") # ruff:ignore[non-lowercase-variable-in-function] table_idx = var(f"table_idx_{ilev}") exp = var(f"exp_{ilev}") i_batch = (*batch_dims, i) i2_batch = (*batch_dims, i2) - iN_batch = (*batch_dims, ifft + nfft * (iN1 * N2 + iN2)) # noqa: N806 + iN_batch = (*batch_dims, ifft + nfft * (iN1 * N2 + iN2)) # ruff:ignore[non-lowercase-variable-in-function] insns += [ lp.Assignment( @@ -954,7 +954,7 @@ def _get_fft_backend(queue: pyopencl.CommandQueue) -> FFTBackend: return FFTBackend[env_val] try: - import pyvkfft.opencl # noqa: F401 + import pyvkfft.opencl # ruff:ignore[unused-import] except ImportError: warnings.warn("VkFFT not found. FFT runs will be slower.", stacklevel=3) return FFTBackend.loopy diff --git a/sumpy/toys.py b/sumpy/toys.py index d41bb47a5..8ff1f88c7 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -1031,13 +1031,13 @@ def visit_multipoleexpansion(self, psource): label = psource_text_kwargs_copy.pop("s", label) text_kwargs.update(psource_text_kwargs_copy) - shrinkB = 0 # noqa + shrinkB = 0 # ruff:ignore[non-lowercase-variable-in-function] if isinstance(psource.derived_from, ExpansionPotentialSource): # Avoid overlapping the tail of the arrow with any expansion labels that # are present at the tail. import matplotlib as mpl font_size = mpl.rcParams["font.size"] - shrinkB = 7/8 * font_size # noqa + shrinkB = 7/8 * font_size # ruff:ignore[non-lowercase-variable-in-function] arrowprops = {"shrinkB": shrinkB, "arrowstyle": "<|-"} From a106d87519b621ed7aae11e4564b404b53f26e1d Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 17 Jul 2026 20:16:10 +0300 Subject: [PATCH 329/335] chore: sort pyproject ruff.extend-ignore --- pyproject.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0d1a3ce21..3eb8e7643 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,13 +97,13 @@ extend-select = [ "W", # pycodestyle ] extend-ignore = [ - "C90", # McCabe complexity - "multiple-spaces-before-operator", # multiple spaces before operator - "missing-whitespace-around-arithmetic-operator", # missing whitespace around arithmetic operator - "module-import-not-at-top-of-file", # module-level import not at top of file - "non-empty-init-module", # non-empty-init-module - "type-check-without-type-error", + "complex-structure", + "missing-whitespace-around-arithmetic-operator", + "module-import-not-at-top-of-file", + "multiple-spaces-before-operator", + "non-empty-init-module", "try-consider-else", + "type-check-without-type-error", ] [tool.ruff.lint.flake8-quotes] From ea3139e505560b499578c83fcf261b2a9dbaff4c Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 17 Jul 2026 20:17:09 +0300 Subject: [PATCH 330/335] chore: update baseline --- .basedpyright/baseline.json | 164 ++++-------------------------------- 1 file changed, 18 insertions(+), 146 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index bd6079cad..46431db20 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -24,14 +24,6 @@ "endColumn": 50, "lineCount": 1 } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 13, - "endColumn": 78, - "lineCount": 1 - } } ], "./examples/expansion-toys.py": [ @@ -5447,14 +5439,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 42, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -14352,86 +14336,6 @@ "endColumn": 36, "lineCount": 1 } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 36, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnusedExpression", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } } ], "./sumpy/test/test_codegen.py": [ @@ -16764,8 +16668,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -17057,38 +16961,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 21, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -18062,8 +17934,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -18664,8 +18536,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -20114,8 +19986,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -20284,8 +20156,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -20414,8 +20286,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -20984,8 +20856,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -22650,8 +22522,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, @@ -23054,8 +22926,8 @@ { "code": "reportUnusedImport", "range": { - "startColumn": 67, - "endColumn": 71, + "startColumn": 4, + "endColumn": 8, "lineCount": 1 } }, From cb84502bf85dfd97215abd63437db2b84bf29501 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jul 2026 20:12:51 +0000 Subject: [PATCH 331/335] build(deps): bump actions/setup-python from 6 to 7 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 330f50bfd..74bd3d976 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: steps: - uses: actions/checkout@v7 - - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: '3.x' - name: "Main Script" From 3e98a1c0293dd527a9b42e6984945b8fe4e21883 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 26 Jul 2026 10:03:30 +0300 Subject: [PATCH 332/335] fix: new implicit-string-concatenation-in-collection-literal --- sumpy/p2p.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 2a320766f..b606737af 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -537,8 +537,8 @@ def get_kernel(self, *, "{[inner]: 0 <= inner < work_items_per_group}", "{[itgt_offset_outer]: 0 <= itgt_offset_outer <= tgt_outer_limit}", "{[isrc_prefetch]: 0 <= isrc_prefetch < max_nsources_in_one_box}", - "{[isrc_offset]: 0 <= isrc_offset < max_nsources_in_one_box" - " and isrc_offset < isrc_end - isrc_start}", + ("{[isrc_offset]: 0 <= isrc_offset < max_nsources_in_one_box" + " and isrc_offset < isrc_end - isrc_start}"), ] else: domains += [ From da8708e7724adc6ed46f2eb1988f368b4ee70e73 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 10 Aug 2026 16:37:55 +0200 Subject: [PATCH 333/335] Update baseline --- .basedpyright/baseline.json | 1014 +++++------------------------------ 1 file changed, 123 insertions(+), 891 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 46431db20..19fc8fadb 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -2107,6 +2107,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportImplicitOverride", "range": { @@ -2299,14 +2307,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -6287,6 +6287,14 @@ "lineCount": 1 } }, + { + "code": "reportIncompatibleVariableOverride", + "range": { + "startColumn": 4, + "endColumn": 14, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -6471,22 +6479,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 33, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -6495,14 +6487,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -6511,14 +6495,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -6544,26 +6520,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", + "code": "reportAny", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 57, + "endColumn": 75, "lineCount": 1 } }, @@ -6575,14 +6535,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -6591,14 +6543,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -6624,10 +6568,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { - "startColumn": 16, - "endColumn": 56, + "startColumn": 57, + "endColumn": 75, "lineCount": 1 } }, @@ -6871,14 +6815,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -6887,14 +6823,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -6919,14 +6847,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -7160,7 +7080,7 @@ } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 23, @@ -7168,18 +7088,18 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 38, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, @@ -7187,71 +7107,79 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 38, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { - "startColumn": 40, - "endColumn": 52, + "startColumn": 12, + "endColumn": 17, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAny", "range": { - "startColumn": 12, - "endColumn": 27, + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 27, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 51, - "endColumn": 77, + "startColumn": 34, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportImplicitOverride", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 17, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportMissingParameterType", "range": { - "startColumn": 19, - "endColumn": 23, + "startColumn": 12, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 18, "lineCount": 1 } }, @@ -7259,39 +7187,47 @@ "code": "reportAny", "range": { "startColumn": 12, - "endColumn": 28, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportAny", + "range": { + "startColumn": 19, + "endColumn": 23, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 44, - "endColumn": 74, + "startColumn": 18, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 33, - "endColumn": 57, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 30, - "endColumn": 45, + "startColumn": 12, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 35, - "endColumn": 46, + "startColumn": 34, + "endColumn": 57, "lineCount": 1 } }, @@ -7299,15 +7235,15 @@ "code": "reportAny", "range": { "startColumn": 34, - "endColumn": 50, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIncompatibleMethodOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 19, "lineCount": 1 } }, @@ -7315,7 +7251,7 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 26, + "endColumn": 19, "lineCount": 1 } }, @@ -7323,7 +7259,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 45, + "endColumn": 24, "lineCount": 1 } }, @@ -7331,23 +7267,23 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 45, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 31, + "startColumn": 26, + "endColumn": 43, "lineCount": 1 } }, @@ -7355,7 +7291,7 @@ "code": "reportUnknownParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, @@ -7363,204 +7299,20 @@ "code": "reportMissingParameterType", "range": { "startColumn": 12, - "endColumn": 18, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownParameterType", "range": { - "startColumn": 26, - "endColumn": 59, + "startColumn": 30, + "endColumn": 45, "lineCount": 1 } }, { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 18, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 34, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", + "code": "reportMissingParameterType", "range": { "startColumn": 30, "endColumn": 45, @@ -8007,22 +7759,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8055,14 +7791,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -8071,14 +7799,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -8119,6 +7839,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 41, + "endColumn": 64, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -8127,6 +7855,14 @@ "lineCount": 1 } }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 41, + "endColumn": 55, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -8223,14 +7959,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8271,14 +7999,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -8383,14 +8103,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -8399,14 +8111,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 53, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8463,14 +8167,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -8479,14 +8175,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8495,14 +8183,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8511,14 +8191,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8527,14 +8199,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 51, - "endColumn": 56, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8543,14 +8207,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8567,14 +8223,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8607,54 +8255,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8663,14 +8263,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -8679,14 +8271,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8695,14 +8279,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8711,14 +8287,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -8727,14 +8295,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8767,22 +8327,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8791,30 +8335,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8823,14 +8343,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8839,14 +8351,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 74, - "lineCount": 1 - } - }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -8859,63 +8363,31 @@ "code": "reportImplicitOverride", "range": { "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, + "endColumn": 19, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 12, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 54, - "endColumn": 64, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportMissingParameterType", "range": { - "startColumn": 51, - "endColumn": 77, + "startColumn": 54, + "endColumn": 64, "lineCount": 1 } }, @@ -8951,30 +8423,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 57, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -8983,22 +8431,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -9007,14 +8439,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -16519,14 +15943,6 @@ "lineCount": 1 } }, - { - "code": "reportOptionalMemberAccess", - "range": { - "startColumn": 31, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -16535,22 +15951,6 @@ "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 40, - "endColumn": 55, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -16559,14 +15959,6 @@ "lineCount": 1 } }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 46, - "endColumn": 67, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -17201,14 +16593,6 @@ "lineCount": 1 } }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 15, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -17225,14 +16609,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 31, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -17442,50 +16818,10 @@ } }, { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { "startColumn": 8, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 73, + "endColumn": 56, "lineCount": 1 } }, @@ -17569,38 +16905,6 @@ "lineCount": 1 } }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportOptionalSubscript", - "range": { - "startColumn": 70, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 70, - "endColumn": 76, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -17673,14 +16977,6 @@ "lineCount": 1 } }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -17697,14 +16993,6 @@ "lineCount": 1 } }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 11, - "endColumn": 48, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -17721,14 +17009,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportMissingParameterType", "range": { @@ -17745,14 +17025,6 @@ "lineCount": 1 } }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 15, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -17761,14 +17033,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -17881,38 +17145,6 @@ "lineCount": 1 } }, - { - "code": "reportGeneralTypeIssues", - "range": { - "startColumn": 23, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 79, - "endColumn": 83, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { From 30ddac5d190d95fe9caf46fc8edb824da38015e5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 17 Aug 2026 16:25:21 -0500 Subject: [PATCH 334/335] Track loopy's switch to namedisl --- doc/conf.py | 4 +++- sumpy/array_context.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index fe1489761..e21a5e1f7 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -13,7 +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), + "namedisl": ("https://documen.tician.de/namedisl", None), "loopy": ("https://documen.tician.de/loopy/", None), "matplotlib": ("https://matplotlib.org/stable/", None), "numpy": ("https://numpy.org/doc/stable/", None), @@ -57,6 +57,8 @@ # pymbolic "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", "Expression": "obj:pymbolic.typing.Expression", + # namedisl + "nisl.Set": "class:namedisl.Set", # loopy "Assignment": "class:loopy.kernel.instruction.Assignment", "CallInstruction": "class:loopy.kernel.instruction.CallInstruction", diff --git a/sumpy/array_context.py b/sumpy/array_context.py index 2436e30a5..c305fadc1 100644 --- a/sumpy/array_context.py +++ b/sumpy/array_context.py @@ -38,7 +38,7 @@ if TYPE_CHECKING: from collections.abc import Iterator, Sequence - import islpy + import namedisl as nisl from numpy.typing import DTypeLike from arraycontext import ArrayContext @@ -60,7 +60,7 @@ # {{{ PyOpenCLArrayContext def make_loopy_program( - domains: str | Sequence[str | islpy.BasicSet], + domains: str | Sequence[str | nisl.Set], statements: Sequence[InstructionBase | str] | str, kernel_data: list[Any] | None = None, *, name: str = "sumpy_loopy_kernel", From 25ebc61c19a6a68b2eb7ce1e921db16639103759 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 17 Aug 2026 16:25:26 -0500 Subject: [PATCH 335/335] Update baseline --- .basedpyright/baseline.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 19fc8fadb..0666c32fe 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -10885,22 +10885,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 22, - "endColumn": 41, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": {