From 15b808f957559ee04b7a66f9fc5f55c68b4a4ace Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 12:55:47 +0300 Subject: [PATCH 01/87] add beartype dependency --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 9968a4fc..14a9c856 100644 --- a/setup.py +++ b/setup.py @@ -65,6 +65,7 @@ def get_versions(): "jaxtyping>=0.0.2", "deprecation", "simple-pytree", + "beartype", ], tests_require=EXTRAS["dev"], extras_require=EXTRAS, From 0eaec306fdc328f1450f110c17dbd5f22c4d8c84 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 12:56:05 +0300 Subject: [PATCH 02/87] from typing import -> from beartype.typing import --- gpjax/_version.py | 2 +- gpjax/abstractions.py | 2 +- gpjax/gaussian_distribution.py | 2 +- gpjax/gps.py | 2 +- gpjax/kernels/approximations/rff.py | 2 +- gpjax/kernels/base.py | 2 +- gpjax/kernels/computations/base.py | 2 +- gpjax/kernels/computations/basis_functions.py | 2 +- gpjax/kernels/computations/constant_diagonal.py | 2 +- gpjax/kernels/computations/dense.py | 2 +- gpjax/kernels/computations/diagonal.py | 2 +- gpjax/kernels/computations/eigen.py | 2 +- gpjax/kernels/non_euclidean/graph.py | 2 +- gpjax/kernels/nonstationary/linear.py | 2 +- gpjax/kernels/nonstationary/polynomial.py | 2 +- gpjax/kernels/stationary/matern12.py | 2 +- gpjax/kernels/stationary/matern32.py | 2 +- gpjax/kernels/stationary/matern52.py | 2 +- gpjax/kernels/stationary/periodic.py | 2 +- gpjax/kernels/stationary/powered_exponential.py | 2 +- gpjax/kernels/stationary/rational_quadratic.py | 2 +- gpjax/kernels/stationary/rbf.py | 2 +- gpjax/kernels/stationary/white.py | 2 +- gpjax/likelihoods.py | 2 +- gpjax/linops/constant_diagonal_linear_operator.py | 2 +- gpjax/linops/dense_linear_operator.py | 4 ++-- gpjax/linops/diagonal_linear_operator.py | 2 +- gpjax/linops/identity_linear_operator.py | 2 +- gpjax/linops/linear_operator.py | 4 ++-- gpjax/linops/utils.py | 2 +- gpjax/linops/zero_linear_operator.py | 2 +- gpjax/mean_functions.py | 2 +- gpjax/natural_gradients.py | 2 +- gpjax/parameters.py | 2 +- gpjax/quadrature.py | 2 +- gpjax/variational_families.py | 2 +- gpjax/variational_inference.py | 2 +- 37 files changed, 39 insertions(+), 39 deletions(-) diff --git a/gpjax/_version.py b/gpjax/_version.py index 0aaf90d4..6a905291 100644 --- a/gpjax/_version.py +++ b/gpjax/_version.py @@ -15,7 +15,7 @@ import re import subprocess import sys -from typing import Callable, Dict +from beartype.typing import Callable, Dict import functools diff --git a/gpjax/abstractions.py b/gpjax/abstractions.py index ac56b39d..c7d20b18 100644 --- a/gpjax/abstractions.py +++ b/gpjax/abstractions.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Callable, Dict, Optional, Tuple, Any, Union +from beartype.typing import Callable, Dict, Optional, Tuple, Any, Union import jax import jax.numpy as jnp diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 6db481d2..74934fd0 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -19,7 +19,7 @@ from jaxtyping import Array, Float from jax import vmap -from typing import Tuple, Optional, Any +from beartype.typing import Tuple, Optional, Any import distrax as dx import jax.random as jr diff --git a/gpjax/gps.py b/gpjax/gps.py index de844294..f5d1d7f4 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -14,7 +14,7 @@ # ============================================================================== from abc import abstractmethod -from typing import Any, Callable, Dict, Optional +from beartype.typing import Any, Callable, Dict, Optional import distrax as dx import jax.numpy as jnp diff --git a/gpjax/kernels/approximations/rff.py b/gpjax/kernels/approximations/rff.py index a1e3b97f..63d5a292 100644 --- a/gpjax/kernels/approximations/rff.py +++ b/gpjax/kernels/approximations/rff.py @@ -1,7 +1,7 @@ from ..base import AbstractKernel from ..computations import BasisFunctionComputation from jax.random import KeyArray -from typing import Dict, Any +from beartype.typing import Dict, Any class RFF(AbstractKernel): diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 6014aa7d..f4309260 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Callable, Dict, List, Optional, Sequence +from beartype.typing import Callable, Dict, List, Optional, Sequence import deprecation import jax.numpy as jnp diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index d8584a70..8540d085 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Callable, Dict +from beartype.typing import Callable, Dict from jax import vmap from jaxtyping import Array, Float diff --git a/gpjax/kernels/computations/basis_functions.py b/gpjax/kernels/computations/basis_functions.py index a128ea5a..7185a7a6 100644 --- a/gpjax/kernels/computations/basis_functions.py +++ b/gpjax/kernels/computations/basis_functions.py @@ -1,4 +1,4 @@ -from typing import Callable, Dict +from beartype.typing import Callable, Dict import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/kernels/computations/constant_diagonal.py b/gpjax/kernels/computations/constant_diagonal.py index 5cfef981..bbb14f69 100644 --- a/gpjax/kernels/computations/constant_diagonal.py +++ b/gpjax/kernels/computations/constant_diagonal.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Callable, Dict +from beartype.typing import Callable, Dict import jax.numpy as jnp from jax import vmap diff --git a/gpjax/kernels/computations/dense.py b/gpjax/kernels/computations/dense.py index 7fb74b5e..c8cf661e 100644 --- a/gpjax/kernels/computations/dense.py +++ b/gpjax/kernels/computations/dense.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Callable, Dict +from beartype.typing import Callable, Dict from jax import vmap from jaxtyping import Array, Float diff --git a/gpjax/kernels/computations/diagonal.py b/gpjax/kernels/computations/diagonal.py index 5c291000..8af478da 100644 --- a/gpjax/kernels/computations/diagonal.py +++ b/gpjax/kernels/computations/diagonal.py @@ -14,7 +14,7 @@ # ============================================================================== from jax import vmap -from typing import Callable, Dict +from beartype.typing import Callable, Dict from jaxtyping import Array, Float from .base import AbstractKernelComputation diff --git a/gpjax/kernels/computations/eigen.py b/gpjax/kernels/computations/eigen.py index 094fc8d1..573e5f85 100644 --- a/gpjax/kernels/computations/eigen.py +++ b/gpjax/kernels/computations/eigen.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Callable, Dict +from beartype.typing import Callable, Dict import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index a11c62ee..eaf95926 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index 9e5a2509..a3dcc92e 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax import jax.numpy as jnp diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 18bd581e..328ccc6f 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index 58bbb5ce..d64fb138 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index a714261b..871be468 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index f7d771ba..bef05505 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index 0d82e5fd..0e621e67 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax import jax.numpy as jnp diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 62830ced..1a919bfa 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax import jax.numpy as jnp diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index eed0e819..18011554 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import List, Optional +from beartype.typing import List, Optional import jax import jax.numpy as jnp diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index cc3e87b7..17fe711d 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, List, Optional +from beartype.typing import Dict, List, Optional import jax import jax.numpy as jnp diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index 0aa04f55..b1ff4e48 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Dict, Optional, List +from beartype.typing import Dict, Optional, List import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index 8a8a3194..137dae9b 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Any, Callable, Dict, Optional +from beartype.typing import Any, Callable, Dict, Optional from .linops.utils import to_dense from jaxutils import PyTree diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 065304b8..5e7a45b6 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -15,7 +15,7 @@ from __future__ import annotations -from typing import Any, Union +from beartype.typing import Any, Union import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index 91e4d9e5..3e6d01d5 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -15,12 +15,12 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from beartype.typing import TYPE_CHECKING if TYPE_CHECKING: from .diagonal_linear_operator import DiagonalLinearOperator -from typing import Union +from beartype.typing import Union import jax.numpy as jnp from dataclasses import dataclass diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index f2be325d..515c767a 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -15,7 +15,7 @@ from __future__ import annotations -from typing import Any, Union +from beartype.typing import Any, Union import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index af595d18..a738ab6f 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -15,7 +15,7 @@ from __future__ import annotations -from typing import Any +from beartype.typing import Any import jax.numpy as jnp from dataclasses import dataclass diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index c8e5dd50..28646703 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -14,7 +14,7 @@ # ============================================================================== from __future__ import annotations -from typing import TYPE_CHECKING +from beartype.typing import TYPE_CHECKING if TYPE_CHECKING: from .diagonal_linear_operator import DiagonalLinearOperator @@ -23,7 +23,7 @@ import jax.numpy as jnp from dataclasses import dataclass from jaxtyping import Array, Float -from typing import Any, TypeVar, Iterable, Mapping, Generic, Tuple, Union +from beartype.typing import Any, TypeVar, Iterable, Mapping, Generic, Tuple, Union from simple_pytree import Pytree, static_field # Generic type. diff --git a/gpjax/linops/utils.py b/gpjax/linops/utils.py index 292ed013..b5e746ac 100644 --- a/gpjax/linops/utils.py +++ b/gpjax/linops/utils.py @@ -15,7 +15,7 @@ from __future__ import annotations -from typing import Union, Tuple, TYPE_CHECKING +from beartype.typing import Union, Tuple, TYPE_CHECKING if TYPE_CHECKING: from .identity_linear_operator import IdentityLinearOperator diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index af309ffd..2f548985 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -15,7 +15,7 @@ from __future__ import annotations -from typing import Any, Tuple, Union +from beartype.typing import Any, Tuple, Union import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index 75ebf43e..2e9657b9 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Dict, Optional +from beartype.typing import Dict, Optional import jax.numpy as jnp from jax.random import KeyArray diff --git a/gpjax/natural_gradients.py b/gpjax/natural_gradients.py index baa16939..97fa76dd 100644 --- a/gpjax/natural_gradients.py +++ b/gpjax/natural_gradients.py @@ -14,7 +14,7 @@ # ============================================================================== from copy import deepcopy -from typing import Callable, Dict, Tuple +from beartype.typing import Callable, Dict, Tuple import jax.numpy as jnp import jax.scipy as jsp diff --git a/gpjax/parameters.py b/gpjax/parameters.py index 02a438c9..e65d07ad 100644 --- a/gpjax/parameters.py +++ b/gpjax/parameters.py @@ -15,7 +15,7 @@ import warnings from copy import deepcopy -from typing import Dict, Tuple +from beartype.typing import Dict, Tuple from warnings import warn import distrax as dx diff --git a/gpjax/quadrature.py b/gpjax/quadrature.py index 099e30a5..b0841d14 100644 --- a/gpjax/quadrature.py +++ b/gpjax/quadrature.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Callable, Optional +from beartype.typing import Callable, Optional import jax.numpy as jnp import numpy as np diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 60315f3f..2d7ea4dc 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Any, Callable, Dict, Optional +from beartype.typing import Any, Callable, Dict, Optional import distrax as dx import jax.numpy as jnp diff --git a/gpjax/variational_inference.py b/gpjax/variational_inference.py index 219db779..c565db4e 100644 --- a/gpjax/variational_inference.py +++ b/gpjax/variational_inference.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from typing import Callable, Dict +from beartype.typing import Callable, Dict import jax.numpy as jnp import jax.scipy as jsp From 781bc38e09e5428dd3cfcd5ad8ba3b339a054cdd Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 13:47:17 +0300 Subject: [PATCH 03/87] jaxtyping import_hook for @jaxtyped @beartype everywhere --- gpjax/__init__.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/gpjax/__init__.py b/gpjax/__init__.py index a5bc4c95..3f034957 100644 --- a/gpjax/__init__.py +++ b/gpjax/__init__.py @@ -13,22 +13,24 @@ # limitations under the License. # ============================================================================== -from .abstractions import fit, fit_batches, fit_natgrads -from .gps import Prior, construct_posterior -from .kernels import * -from .likelihoods import Bernoulli, Gaussian -from .mean_functions import Constant, Zero -from .parameters import constrain, copy_dict_structure, initialise, unconstrain -from .variational_families import ( - CollapsedVariationalGaussian, - ExpectationVariationalGaussian, - NaturalVariationalGaussian, - VariationalGaussian, - WhitenedVariationalGaussian, -) -from .types import Dataset -from .variational_inference import CollapsedVI, StochasticVI -from . import _version +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + from .abstractions import fit, fit_batches, fit_natgrads + from .gps import Prior, construct_posterior + from .kernels import * + from .likelihoods import Bernoulli, Gaussian + from .mean_functions import Constant, Zero + from .parameters import constrain, copy_dict_structure, initialise, unconstrain + from .variational_families import ( + CollapsedVariationalGaussian, + ExpectationVariationalGaussian, + NaturalVariationalGaussian, + VariationalGaussian, + WhitenedVariationalGaussian, + ) + from .types import Dataset + from .variational_inference import CollapsedVI, StochasticVI + from . import _version __version__ = _version.get_versions()["version"] __license__ = "MIT" From 67e315fd0e3d5317fd363b6d6d76f2c619fafd39 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 13:47:46 +0300 Subject: [PATCH 04/87] fix Type[] of class-as-argument --- gpjax/kernels/base.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index f4309260..5603aeff 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -14,7 +14,7 @@ # ============================================================================== import abc -from beartype.typing import Callable, Dict, List, Optional, Sequence +from beartype.typing import Callable, Dict, List, Optional, Sequence, Type import deprecation import jax.numpy as jnp @@ -37,7 +37,7 @@ class AbstractKernel(PyTree): def __init__( self, - compute_engine: AbstractKernelComputation = DenseKernelComputation, + compute_engine: Type[AbstractKernelComputation] = DenseKernelComputation, active_dims: Optional[List[int]] = None, spectral_density: Optional[dx.Distribution] = None, name: Optional[str] = "AbstractKernel", @@ -62,7 +62,7 @@ def stationary(self) -> bool: return self._stationary @property - def compute_engine(self) -> AbstractKernelComputation: + def compute_engine(self) -> Type[AbstractKernelComputation]: """The compute engine that is used to perform the kernel computations. Returns: @@ -71,7 +71,7 @@ def compute_engine(self) -> AbstractKernelComputation: return self._compute_engine @compute_engine.setter - def compute_engine(self, compute_engine: AbstractKernelComputation) -> None: + def compute_engine(self, compute_engine: Type[AbstractKernelComputation]) -> None: self._compute_engine = compute_engine compute_engine = self.compute_engine(kernel_fn=self.__call__) self.gram = compute_engine.gram @@ -173,7 +173,7 @@ class CombinationKernel(AbstractKernel): def __init__( self, kernel_set: List[AbstractKernel], - compute_engine: AbstractKernelComputation = DenseKernelComputation, + compute_engine: Type[AbstractKernelComputation] = DenseKernelComputation, active_dims: Optional[List[int]] = None, name: Optional[str] = "AbstractKernel", ) -> None: @@ -233,7 +233,7 @@ class SumKernel(CombinationKernel): def __init__( self, kernel_set: List[AbstractKernel], - compute_engine: AbstractKernelComputation = DenseKernelComputation, + compute_engine: Type[AbstractKernelComputation] = DenseKernelComputation, active_dims: Optional[List[int]] = None, name: Optional[str] = "Sum kernel", ) -> None: @@ -247,7 +247,7 @@ class ProductKernel(CombinationKernel): def __init__( self, kernel_set: List[AbstractKernel], - compute_engine: AbstractKernelComputation = DenseKernelComputation, + compute_engine: Type[AbstractKernelComputation] = DenseKernelComputation, active_dims: Optional[List[int]] = None, name: Optional[str] = "Product kernel", ) -> None: From e77732b5fb06ef6606f0e57aaf4a38d722dfc028 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 13:50:15 +0300 Subject: [PATCH 05/87] fix KeyArray type hint (should probably move into jaxutils though) --- gpjax/abstractions.py | 2 +- gpjax/gaussian_distribution.py | 2 +- gpjax/gps.py | 2 +- gpjax/kernels/approximations/rff.py | 2 +- gpjax/kernels/base.py | 2 +- gpjax/kernels/non_euclidean/graph.py | 2 +- gpjax/kernels/nonstationary/linear.py | 2 +- gpjax/kernels/nonstationary/polynomial.py | 2 +- gpjax/kernels/stationary/matern12.py | 2 +- gpjax/kernels/stationary/matern32.py | 2 +- gpjax/kernels/stationary/matern52.py | 2 +- gpjax/kernels/stationary/periodic.py | 2 +- gpjax/kernels/stationary/powered_exponential.py | 2 +- gpjax/kernels/stationary/rational_quadratic.py | 2 +- gpjax/kernels/stationary/rbf.py | 2 +- gpjax/likelihoods.py | 2 +- gpjax/mean_functions.py | 2 +- gpjax/parameters.py | 2 +- gpjax/utils.py | 4 ++++ gpjax/variational_families.py | 2 +- gpjax/variational_inference.py | 2 +- 21 files changed, 24 insertions(+), 20 deletions(-) diff --git a/gpjax/abstractions.py b/gpjax/abstractions.py index c7d20b18..711dcda5 100644 --- a/gpjax/abstractions.py +++ b/gpjax/abstractions.py @@ -20,7 +20,7 @@ import jax.random as jr import optax as ox -from jax.random import KeyArray +from gpjax.utils import KeyArray from jax import lax from jax.experimental import host_callback from jaxtyping import Array, Float diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 74934fd0..541d78c8 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -23,7 +23,7 @@ import distrax as dx import jax.random as jr -from jax.random import KeyArray +from gpjax.utils import KeyArray def _check_loc_scale(loc: Optional[Any], scale: Optional[Any]) -> None: diff --git a/gpjax/gps.py b/gpjax/gps.py index f5d1d7f4..9a455226 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -19,7 +19,7 @@ import distrax as dx import jax.numpy as jnp from jaxtyping import Array, Float -from jax.random import KeyArray +from gpjax.utils import KeyArray from .linops import identity from .kernels.base import AbstractKernel diff --git a/gpjax/kernels/approximations/rff.py b/gpjax/kernels/approximations/rff.py index 63d5a292..78ee2849 100644 --- a/gpjax/kernels/approximations/rff.py +++ b/gpjax/kernels/approximations/rff.py @@ -1,6 +1,6 @@ from ..base import AbstractKernel from ..computations import BasisFunctionComputation -from jax.random import KeyArray +from gpjax.utils import KeyArray from beartype.typing import Dict, Any diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 5603aeff..5794ffc3 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -20,7 +20,7 @@ import jax.numpy as jnp import jax.random import jax -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from jaxutils import PyTree diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index eaf95926..f01d4cb9 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -16,7 +16,7 @@ from beartype.typing import Dict, List, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..computations import EigenKernelComputation diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index a3dcc92e..bc4ec1fe 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -17,7 +17,7 @@ import jax import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array from ..base import AbstractKernel diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 328ccc6f..d8591d31 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -16,7 +16,7 @@ from beartype.typing import Dict, List, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index d64fb138..255b0cd3 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -16,7 +16,7 @@ from beartype.typing import Dict, List, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index 871be468..bf97f017 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -16,7 +16,7 @@ from beartype.typing import Dict, List, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index bef05505..dc2b1b4a 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -16,7 +16,7 @@ from beartype.typing import Dict, List, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index 0e621e67..c0324d73 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -17,7 +17,7 @@ import jax import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 1a919bfa..9b7ac9a4 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -17,7 +17,7 @@ import jax import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index 18011554..39fa182c 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -17,7 +17,7 @@ import jax import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index 17fe711d..e13a4cc9 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -17,7 +17,7 @@ import jax import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from ..base import AbstractKernel diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index 137dae9b..b10bfd0f 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -23,7 +23,7 @@ import jax.scipy as jsp from jaxtyping import Array, Float -from jax.random import KeyArray +from gpjax.utils import KeyArray import deprecation diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index 2e9657b9..f42d0ddd 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -17,7 +17,7 @@ from beartype.typing import Dict, Optional import jax.numpy as jnp -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from jaxutils import PyTree diff --git a/gpjax/parameters.py b/gpjax/parameters.py index e65d07ad..af6f55a3 100644 --- a/gpjax/parameters.py +++ b/gpjax/parameters.py @@ -22,7 +22,7 @@ import jax import jax.numpy as jnp import jax.random as jr -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxtyping import Array, Float from jaxutils import PyTree diff --git a/gpjax/utils.py b/gpjax/utils.py index 27dcb507..86728f01 100644 --- a/gpjax/utils.py +++ b/gpjax/utils.py @@ -16,6 +16,10 @@ import jaxutils import deprecation +from jaxtyping import UInt32, Array + +KeyArray = UInt32[Array, "2"] + depreciate = deprecation.deprecated( deprecated_in="0.5.6", removed_in="0.6.0", diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 2d7ea4dc..036eb6d2 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -19,7 +19,7 @@ import distrax as dx import jax.numpy as jnp import jax.scipy as jsp -from jax.random import KeyArray +from .utils import KeyArray from jaxtyping import Array, Float from .linops import identity diff --git a/gpjax/variational_inference.py b/gpjax/variational_inference.py index c565db4e..2570836c 100644 --- a/gpjax/variational_inference.py +++ b/gpjax/variational_inference.py @@ -22,7 +22,7 @@ from jaxtyping import Array, Float from .linops import identity -from jax.random import KeyArray +from gpjax.utils import KeyArray from jaxutils import PyTree from .config import get_global_config From 5175fa787a89f78f9181c4f92e84d0f29038376c Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:15:44 +0300 Subject: [PATCH 06/87] fix return value of slice_input when active_dims is None --- gpjax/kernels/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 5794ffc3..05b81bb1 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -104,7 +104,7 @@ def slice_input(self, x: Float[Array, "N D"]) -> Float[Array, "N Q"]: Returns: Float[Array, "N Q"]: A sliced form of the input matrix. """ - return x[..., self.active_dims] + return x[..., self.active_dims] if self.active_dims is not None else x def __add__(self, other: "AbstractKernel") -> "AbstractKernel": """Add two kernels together. From c548d73ad845254a289940fabe411e739275c455 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:16:07 +0300 Subject: [PATCH 07/87] fix return value of squared_distance --- gpjax/kernels/stationary/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/kernels/stationary/utils.py b/gpjax/kernels/stationary/utils.py index f265d567..def31c1e 100644 --- a/gpjax/kernels/stationary/utils.py +++ b/gpjax/kernels/stationary/utils.py @@ -47,7 +47,7 @@ def squared_distance( Float[Array, "1"]: The squared distance between the inputs. """ - return jnp.sum((x - y) ** 2) + return jnp.sum((x - y) ** 2, axis=-1) def euclidean_distance( From 079936f95da6cbc7f6016e1d95fa98303ee063f2 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:16:17 +0300 Subject: [PATCH 08/87] fix return type of recursive_bijectors --- gpjax/parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/parameters.py b/gpjax/parameters.py index af6f55a3..405e070b 100644 --- a/gpjax/parameters.py +++ b/gpjax/parameters.py @@ -175,7 +175,7 @@ def build_bijectors(params: Dict) -> Dict: def recursive_bijectors_list(ps, bs): return [recursive_bijectors(ps[i], bs[i]) for i in range(len(bs))] - def recursive_bijectors(ps, bs) -> Tuple[Dict, Dict]: + def recursive_bijectors(ps, bs) -> Dict: if type(ps) is list: bs = recursive_bijectors_list(ps, bs) From 100521204ba3ac0ebc5b1a0d117bcecdb2556912 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:55:40 +0300 Subject: [PATCH 09/87] fix slice_input type annotations --- gpjax/kernels/base.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 05b81bb1..34b2280e 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -96,13 +96,13 @@ def __call__( """ raise NotImplementedError - def slice_input(self, x: Float[Array, "N D"]) -> Float[Array, "N Q"]: + def slice_input(self, x: Float[Array, "... D"]) -> Float[Array, "... Q"]: """Select the relevant columns of the supplied matrix to be used within the kernel's evaluation. Args: - x (Float[Array, "N D"]): The matrix or vector that is to be sliced. + x (Float[Array, "... D"]): The matrix or vector that is to be sliced. Returns: - Float[Array, "N Q"]: A sliced form of the input matrix. + Float[Array, "... Q"]: A sliced form of the input matrix. """ return x[..., self.active_dims] if self.active_dims is not None else x From 0c57a4eedc5c685165cbc3e4ceb7df37851edfaf Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:57:44 +0300 Subject: [PATCH 10/87] new KernelCallable type to fix kernel_fn annotations --- gpjax/kernels/computations/base.py | 11 ++++++----- gpjax/kernels/computations/basis_functions.py | 8 +++----- gpjax/kernels/computations/constant_diagonal.py | 8 +++----- gpjax/kernels/computations/dense.py | 8 +++----- gpjax/kernels/computations/diagonal.py | 8 +++----- gpjax/kernels/computations/eigen.py | 8 +++----- 6 files changed, 21 insertions(+), 30 deletions(-) diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index 8540d085..156c3e57 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -26,28 +26,29 @@ LinearOperator, ) +KernelCallable = Callable[ + [Dict, Float[Array, "D"], Float[Array, "D"]], Float[Array, ""] +] class AbstractKernelComputation(PyTree): """Abstract class for kernel computations.""" def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: self._kernel_fn = kernel_fn @property def kernel_fn( self, - ) -> Callable[[Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array]: + ) -> KernelCallable: return self._kernel_fn @kernel_fn.setter def kernel_fn( self, - kernel_fn: Callable[[Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array], + kernel_fn: KernelCallable, ) -> None: self._kernel_fn = kernel_fn diff --git a/gpjax/kernels/computations/basis_functions.py b/gpjax/kernels/computations/basis_functions.py index 7185a7a6..9f65c959 100644 --- a/gpjax/kernels/computations/basis_functions.py +++ b/gpjax/kernels/computations/basis_functions.py @@ -1,8 +1,8 @@ -from beartype.typing import Callable, Dict +from beartype.typing import Dict import jax.numpy as jnp from jaxtyping import Array, Float -from .base import AbstractKernelComputation +from .base import AbstractKernelComputation, KernelCallable from ...linops import DenseLinearOperator @@ -11,9 +11,7 @@ class BasisFunctionComputation(AbstractKernelComputation): def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: """Initialise the computation engine for a basis function approximation to a kernel. diff --git a/gpjax/kernels/computations/constant_diagonal.py b/gpjax/kernels/computations/constant_diagonal.py index bbb14f69..67383410 100644 --- a/gpjax/kernels/computations/constant_diagonal.py +++ b/gpjax/kernels/computations/constant_diagonal.py @@ -13,12 +13,12 @@ # limitations under the License. # ============================================================================== -from beartype.typing import Callable, Dict +from beartype.typing import Dict import jax.numpy as jnp from jax import vmap from jaxtyping import Array, Float -from .base import AbstractKernelComputation +from .base import AbstractKernelComputation, KernelCallable from ...linops import ( ConstantDiagonalLinearOperator, @@ -29,9 +29,7 @@ class ConstantDiagonalKernelComputation(AbstractKernelComputation): def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: super().__init__(kernel_fn) diff --git a/gpjax/kernels/computations/dense.py b/gpjax/kernels/computations/dense.py index c8cf661e..e6a7d13a 100644 --- a/gpjax/kernels/computations/dense.py +++ b/gpjax/kernels/computations/dense.py @@ -13,11 +13,11 @@ # limitations under the License. # ============================================================================== -from beartype.typing import Callable, Dict +from beartype.typing import Dict from jax import vmap from jaxtyping import Array, Float -from .base import AbstractKernelComputation +from .base import AbstractKernelComputation, KernelCallable class DenseKernelComputation(AbstractKernelComputation): @@ -27,9 +27,7 @@ class DenseKernelComputation(AbstractKernelComputation): def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: super().__init__(kernel_fn) diff --git a/gpjax/kernels/computations/diagonal.py b/gpjax/kernels/computations/diagonal.py index 8af478da..d8222668 100644 --- a/gpjax/kernels/computations/diagonal.py +++ b/gpjax/kernels/computations/diagonal.py @@ -14,18 +14,16 @@ # ============================================================================== from jax import vmap -from beartype.typing import Callable, Dict +from beartype.typing import Dict from jaxtyping import Array, Float -from .base import AbstractKernelComputation +from .base import AbstractKernelComputation, KernelCallable from ...linops import DiagonalLinearOperator class DiagonalKernelComputation(AbstractKernelComputation): def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: super().__init__(kernel_fn) diff --git a/gpjax/kernels/computations/eigen.py b/gpjax/kernels/computations/eigen.py index 573e5f85..fabdda26 100644 --- a/gpjax/kernels/computations/eigen.py +++ b/gpjax/kernels/computations/eigen.py @@ -13,19 +13,17 @@ # limitations under the License. # ============================================================================== -from beartype.typing import Callable, Dict +from beartype.typing import Dict import jax.numpy as jnp from jaxtyping import Array, Float -from .base import AbstractKernelComputation +from .base import AbstractKernelComputation, KernelCallable class EigenKernelComputation(AbstractKernelComputation): def __init__( self, - kernel_fn: Callable[ - [Dict, Float[Array, "1 D"], Float[Array, "1 D"]], Array - ] = None, + kernel_fn: KernelCallable = None, ) -> None: super().__init__(kernel_fn) self._eigenvalues = None From 777b04222fbf9157450a8501448da00e34f5445c Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:58:55 +0300 Subject: [PATCH 11/87] fix kernel __call__ annotation --- gpjax/kernels/base.py | 24 +++++++++++------------ gpjax/kernels/non_euclidean/graph.py | 12 ++++++------ gpjax/kernels/nonstationary/polynomial.py | 14 ++++++------- gpjax/kernels/stationary/matern12.py | 12 ++++++------ gpjax/kernels/stationary/matern32.py | 12 ++++++------ gpjax/kernels/stationary/matern52.py | 10 +++++----- gpjax/kernels/stationary/rbf.py | 10 +++++----- gpjax/kernels/stationary/utils.py | 22 ++++++++++----------- gpjax/kernels/stationary/white.py | 10 +++++----- 9 files changed, 63 insertions(+), 63 deletions(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 34b2280e..e1186dd4 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -81,18 +81,18 @@ def compute_engine(self, compute_engine: Type[AbstractKernelComputation]) -> Non def __call__( self, params: Dict, - x: Float[Array, "1 D"], - y: Float[Array, "1 D"], - ) -> Float[Array, "1"]: + x: Float[Array, "D"], + y: Float[Array, "D"], + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs. Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ raise NotImplementedError @@ -209,18 +209,18 @@ def init_params(self, key: KeyArray) -> Dict: def __call__( self, params: Dict, - x: Float[Array, "1 D"], - y: Float[Array, "1 D"], - ) -> Float[Array, "1"]: + x: Float[Array, "D"], + y: Float[Array, "D"], + ) -> Float: """Evaluate combination kernel on a pair of inputs. Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float: The value of :math:`k(x, y)`. """ return self.combination_fn( jnp.stack([k(p, x, y) for k, p in zip(self.kernel_set, params)]) diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index f01d4cb9..0232db2d 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -61,19 +61,19 @@ def __init__( def __call__( self, params: Dict, - x: Float[Array, "1 D"], - y: Float[Array, "1 D"], + x: Float[Array, "D"], + y: Float[Array, "D"], **kwargs, - ) -> Float[Array, "1"]: + ) -> Float[Array, ""]: """Evaluate the graph kernel on a pair of vertices :math:`v_i, v_j`. Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): Index of the ith vertex. - y (Float[Array, "1 D"]): Index of the jth vertex. + x (Float[Array, "D"]): Index of the ith vertex. + y (Float[Array, "D"]): Index of the jth vertex. Returns: - Float[Array, "1"]: The value of :math:`k(v_i, v_j)`. + Float[Array, ""]: The value of :math:`k(v_i, v_j)`. """ S = kwargs["S"] Kxx = (jax_gather_nd(self.evecs, x) * S[None, :]) @ jnp.transpose( diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index d8591d31..d421d5fa 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -46,8 +46,8 @@ def __init__( self._stationary = False def __call__( - self, params: Dict, x: Float[Array, "1 D"], y: Float[Array, "1 D"] - ) -> Float[Array, "1"]: + self, params: Dict, x: Float[Array, "D"], y: Float[Array, "D"] + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with shift parameter :math:`\\alpha` and variance :math:`\\sigma^2` through .. math:: @@ -55,14 +55,14 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ - x = self.slice_input(x).squeeze() - y = self.slice_input(y).squeeze() + x = self.slice_input(x) + y = self.slice_input(y) K = jnp.power(params["shift"] + jnp.dot(x * params["variance"], y), self.degree) return K.squeeze() diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index 255b0cd3..715e74da 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -41,9 +41,9 @@ def __init__( def __call__( self, params: Dict, - x: Float[Array, "1 D"], - y: Float[Array, "1 D"], - ) -> Float[Array, "1"]: + x: Float[Array, "D"], + y: Float[Array, "D"], + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -52,10 +52,10 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, "1"]: The value of :math:`k(x, y)` + Float[Array, ""]: The value of :math:`k(x, y)` """ x = self.slice_input(x) / params["lengthscale"] y = self.slice_input(y) / params["lengthscale"] diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index bf97f017..43d2a903 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -41,9 +41,9 @@ def __init__( def __call__( self, params: Dict, - x: Float[Array, "1 D"], - y: Float[Array, "1 D"], - ) -> Float[Array, "1"]: + x: Float[Array, "D"], + y: Float[Array, "D"], + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -52,11 +52,11 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call. + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / params["lengthscale"] y = self.slice_input(y) / params["lengthscale"] diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index dc2b1b4a..63d949b8 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -38,8 +38,8 @@ def __init__( super().__init__(DenseKernelComputation, active_dims, spectral_density, name) def __call__( - self, params: Dict, x: Float[Array, "1 D"], y: Float[Array, "1 D"] - ) -> Float[Array, "1"]: + self, params: Dict, x: Float[Array, "D"], y: Float[Array, "D"] + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -48,11 +48,11 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call. + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / params["lengthscale"] y = self.slice_input(y) / params["lengthscale"] diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index e13a4cc9..1111fd3b 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -45,8 +45,8 @@ def __init__( self._stationary = True def __call__( - self, params: Dict, x: Float[Array, "1 D"], y: Float[Array, "1 D"] - ) -> Float[Array, "1"]: + self, params: Dict, x: Float[Array, "D"], y: Float[Array, "D"] + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -55,11 +55,11 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call. + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / params["lengthscale"] y = self.slice_input(y) / params["lengthscale"] diff --git a/gpjax/kernels/stationary/utils.py b/gpjax/kernels/stationary/utils.py index def31c1e..70aee9a5 100644 --- a/gpjax/kernels/stationary/utils.py +++ b/gpjax/kernels/stationary/utils.py @@ -35,32 +35,32 @@ def build_student_t_distribution(nu: int) -> dx.Distribution: def squared_distance( - x: Float[Array, "1 D"], y: Float[Array, "1 D"] -) -> Float[Array, "1"]: + x: Float[Array, "D"], y: Float[Array, "D"] +) -> Float[Array, ""]: """Compute the squared distance between a pair of inputs. Args: - x (Float[Array, "1 D"]): First input. - y (Float[Array, "1 D"]): Second input. + x (Float[Array, "D"]): First input. + y (Float[Array, "D"]): Second input. Returns: - Float[Array, "1"]: The squared distance between the inputs. + Float[Array, ""]: The squared distance between the inputs. """ - return jnp.sum((x - y) ** 2, axis=-1) + return jnp.sum((x - y) ** 2) def euclidean_distance( - x: Float[Array, "1 D"], y: Float[Array, "1 D"] -) -> Float[Array, "1"]: + x: Float[Array, "D"], y: Float[Array, "D"] +) -> Float[Array, ""]: """Compute the euclidean distance between a pair of inputs. Args: - x (Float[Array, "1 D"]): First input. - y (Float[Array, "1 D"]): Second input. + x (Float[Array, "D"]): First input. + y (Float[Array, "D"]): Second input. Returns: - Float[Array, "1"]: The euclidean distance between the inputs. + Float[Array, ""]: The euclidean distance between the inputs. """ return jnp.sqrt(jnp.maximum(squared_distance(x, y), 1e-36)) diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index b1ff4e48..7b5bd30c 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -36,8 +36,8 @@ def __init__( self._stationary = True def __call__( - self, params: Dict, x: Float[Array, "1 D"], y: Float[Array, "1 D"] - ) -> Float[Array, "1"]: + self, params: Dict, x: Float[Array, "D"], y: Float[Array, "D"] + ) -> Float[Array, ""]: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with variance :math:`\\sigma` .. math:: @@ -45,11 +45,11 @@ def __call__( Args: params (Dict): Parameter set for which the kernel should be evaluated on. - x (Float[Array, "1 D"]): The left hand argument of the kernel function's call. - y (Float[Array, "1 D"]): The right hand argument of the kernel function's call. + x (Float[Array, "D"]): The left hand argument of the kernel function's call. + y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, "1"]: The value of :math:`k(x, y)`. + Float[Array, ""]: The value of :math:`k(x, y)`. """ K = jnp.all(jnp.equal(x, y)) * params["variance"] return K.squeeze() From df88c69cf5337edc72081a0885f00e5605f717d3 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 14:59:10 +0300 Subject: [PATCH 12/87] fix KeyArray type hint --- gpjax/kernels/stationary/white.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index 7b5bd30c..48e068d4 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -17,6 +17,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float +from gpjax.utils import KeyArray from ..base import AbstractKernel from ..computations import ( @@ -54,11 +55,11 @@ def __call__( K = jnp.all(jnp.equal(x, y)) * params["variance"] return K.squeeze() - def init_params(self, key: Float[Array, "1 D"]) -> Dict: + def init_params(self, key: KeyArray) -> Dict: """Initialise the kernel parameters. Args: - key (Float[Array, "1 D"]): The key to initialise the parameters with. + key (KeyArray): The key to initialise the parameters with. Returns: Dict: The initialised parameters. From 711fcacd6bc942f29c5a8324e4be5254ae39924d Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 15:01:34 +0300 Subject: [PATCH 13/87] beartype does not like forward references; replaced with string types --- .../constant_diagonal_linear_operator.py | 10 ++--- gpjax/linops/dense_linear_operator.py | 11 ++--- gpjax/linops/diagonal_linear_operator.py | 8 ++-- gpjax/linops/identity_linear_operator.py | 8 ++-- gpjax/linops/linear_operator.py | 42 +++++++++---------- gpjax/linops/utils.py | 7 +--- 6 files changed, 37 insertions(+), 49 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 5e7a45b6..6e8d2d92 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -117,7 +117,7 @@ def diagonal(self) -> Float[Array, "N"]: """Diagonal of the covariance operator.""" return self.value * jnp.ones(self.size) - def to_root(self) -> ConstantDiagonalLinearOperator: + def to_root(self) -> "ConstantDiagonalLinearOperator": """ Lower triangular. @@ -136,7 +136,7 @@ def log_det(self) -> Float[Array, "1"]: """ return 2.0 * self.size * jnp.log(self.value) - def inverse(self) -> ConstantDiagonalLinearOperator: + def inverse(self) -> "ConstantDiagonalLinearOperator": """Inverse of the covariance operator. Returns: @@ -157,7 +157,7 @@ def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: return rhs / self.value @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> ConstantDiagonalLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "ConstantDiagonalLinearOperator": """Construct covariance operator from dense matrix. Args: @@ -172,8 +172,8 @@ def from_dense(cls, dense: Float[Array, "N N"]) -> ConstantDiagonalLinearOperato @classmethod def from_root( - cls, root: ConstantDiagonalLinearOperator - ) -> ConstantDiagonalLinearOperator: + cls, root: "ConstantDiagonalLinearOperator" + ) -> "ConstantDiagonalLinearOperator": """Construct covariance operator from root. Args: diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index 3e6d01d5..df53ffa4 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -15,11 +15,6 @@ from __future__ import annotations -from beartype.typing import TYPE_CHECKING - -if TYPE_CHECKING: - from .diagonal_linear_operator import DiagonalLinearOperator - from beartype.typing import Union import jax.numpy as jnp @@ -106,7 +101,7 @@ def __mul__(self, other: float) -> LinearOperator: return DenseLinearOperator(matrix=self.matrix * other) - def _add_diagonal(self, other: DiagonalLinearOperator) -> LinearOperator: + def _add_diagonal(self, other: "gpjax.linops.diagonal_linear_operator.DiagonalLinearOperator") -> LinearOperator: """Add diagonal to the covariance operator, useful for computing, Kxx + Iσ². Args: @@ -151,7 +146,7 @@ def to_dense(self) -> Float[Array, "N N"]: return self.matrix @classmethod - def from_dense(cls, matrix: Float[Array, "N N"]) -> DenseLinearOperator: + def from_dense(cls, matrix: Float[Array, "N N"]) -> "DenseLinearOperator": """Construct covariance operator from dense covariance matrix. Args: @@ -163,7 +158,7 @@ def from_dense(cls, matrix: Float[Array, "N N"]) -> DenseLinearOperator: return DenseLinearOperator(matrix=matrix) @classmethod - def from_root(cls, root: LinearOperator) -> DenseLinearOperator: + def from_root(cls, root: LinearOperator) -> "DenseLinearOperator": """Construct covariance operator from the root of the covariance matrix. Args: diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 515c767a..4b60b997 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -140,7 +140,7 @@ def __matmul__(self, other: Float[Array, "N M"]) -> Float[Array, "N M"]: return diag * other - def to_root(self) -> DiagonalLinearOperator: + def to_root(self) -> "DiagonalLinearOperator": """ Lower triangular. @@ -157,7 +157,7 @@ def log_det(self) -> Float[Array, "1"]: """ return jnp.sum(jnp.log(self.diagonal())) - def inverse(self) -> DiagonalLinearOperator: + def inverse(self) -> "DiagonalLinearOperator": """Inverse of the covariance operator. Returns: @@ -178,7 +178,7 @@ def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: return self.inverse() @ rhs @classmethod - def from_root(cls, root: DiagonalLinearOperator) -> DiagonalLinearOperator: + def from_root(cls, root: "DiagonalLinearOperator") -> "DiagonalLinearOperator": """Construct covariance operator from the lower triangular matrix. Returns: @@ -187,7 +187,7 @@ def from_root(cls, root: DiagonalLinearOperator) -> DiagonalLinearOperator: return DiagonalFromRootLinearOperator(root=root) @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> DiagonalLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "DiagonalLinearOperator": """Construct covariance operator from its dense matrix representation. Returns: diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index a738ab6f..16509550 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -63,7 +63,7 @@ def __matmul__(self, other: Float[Array, "N M"]) -> Float[Array, "N M"]: """ return other - def to_root(self) -> IdentityLinearOperator: + def to_root(self) -> "IdentityLinearOperator": """ Lower triangular. @@ -80,7 +80,7 @@ def log_det(self) -> Float[Array, "1"]: """ return jnp.array(0.0) - def inverse(self) -> ConstantDiagonalLinearOperator: + def inverse(self) -> "IdentityLinearOperator": """Inverse of the covariance operator. Returns: @@ -102,7 +102,7 @@ def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: return rhs @classmethod - def from_root(cls, root: IdentityLinearOperator) -> IdentityLinearOperator: + def from_root(cls, root: "IdentityLinearOperator") -> "IdentityLinearOperator": """Construct from root. Args: @@ -114,7 +114,7 @@ def from_root(cls, root: IdentityLinearOperator) -> IdentityLinearOperator: return root @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> IdentityLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "IdentityLinearOperator": return IdentityLinearOperator(dense.shape[0]) diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 28646703..d970a5de 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -14,10 +14,6 @@ # ============================================================================== from __future__ import annotations -from beartype.typing import TYPE_CHECKING - -if TYPE_CHECKING: - from .diagonal_linear_operator import DiagonalLinearOperator import abc import jax.numpy as jnp @@ -58,58 +54,58 @@ def ndim(self) -> int: return len(self.shape) @property - def T(self) -> LinearOperator: + def T(self) -> "LinearOperator": """Transpose linear operator. Currently, we assume all linear operators are square and symmetric.""" return self def __sub__( - self, other: Union[LinearOperator, Float[Array, "N N"]] - ) -> LinearOperator: + self, other: Union["LinearOperator", Float[Array, "N N"]] + ) -> "LinearOperator": """Subtract linear operator.""" return self + (other * -1) def __rsub__( - self, other: Union[LinearOperator, Float[Array, "N N"]] - ) -> LinearOperator: + self, other: Union["LinearOperator", Float[Array, "N N"]] + ) -> "LinearOperator": """Reimplimentation of subtract linear operator.""" return (self * -1) + other def __add__( - self, other: Union[LinearOperator, Float[Array, "N N"]] - ) -> LinearOperator: + self, other: Union["LinearOperator", Float[Array, "N N"]] + ) -> "LinearOperator": """Add linear operator.""" raise NotImplementedError def __radd__( - self, other: Union[LinearOperator, Float[Array, "N N"]] - ) -> LinearOperator: + self, other: Union["LinearOperator", Float[Array, "N N"]] + ) -> "LinearOperator": """Reimplimentation of add linear operator.""" return self + other @abc.abstractmethod - def __mul__(self, other: float) -> LinearOperator: + def __mul__(self, other: float) -> "LinearOperator": """Multiply linear operator by scalar.""" raise NotImplementedError - def __rmul__(self, other: float) -> LinearOperator: + def __rmul__(self, other: float) -> "LinearOperator": """Reimplimentation of multiply linear operator by scalar.""" return self.__mul__(other) @abc.abstractmethod - def _add_diagonal(self, other: DiagonalLinearOperator) -> LinearOperator: + def _add_diagonal(self, other: "gpjax.linops.diagonal_linear_operator.DiagonalLinearOperator") -> "LinearOperator": """Add diagonal linear operator to a linear operator, useful e.g., for adding jitter.""" return NotImplementedError @abc.abstractmethod def __matmul__( - self, other: Union[LinearOperator, Float[Array, "N M"]] - ) -> Union[LinearOperator, Float[Array, "N M"]]: + self, other: Union["LinearOperator", Float[Array, "N M"]] + ) -> Union["LinearOperator", Float[Array, "N M"]]: """Matrix multiplication.""" raise NotImplementedError def __rmatmul__( - self, other: Union[LinearOperator, Float[Array, "N M"]] - ) -> Union[LinearOperator, Float[Array, "N M"]]: + self, other: Union["LinearOperator", Float[Array, "N M"]] + ) -> Union["LinearOperator", Float[Array, "N M"]]: """Reimplimentation of matrix multiplication.""" # Exploit the fact that linear operators are square and symmetric. if other.ndim == 1: @@ -145,7 +141,7 @@ def log_det(self) -> Float[Array, "1"]: return 2.0 * jnp.sum(jnp.log(root.diagonal())) - def to_root(self) -> LinearOperator: + def to_root(self) -> "LinearOperator": """Compute the root of the linear operator via the Cholesky decomposition. Returns: @@ -158,7 +154,7 @@ def to_root(self) -> LinearOperator: return LowerTriangularLinearOperator.from_dense(L) - def inverse(self) -> LinearOperator: + def inverse(self) -> "LinearOperator": """Inverse of the linear matrix. Default implementation uses dense Cholesky decomposition. Returns: @@ -196,7 +192,7 @@ def to_dense(self) -> Float[Array, "N N"]: raise NotImplementedError @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> LinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "LinearOperator": """Construct linear operator from dense matrix. Args: diff --git a/gpjax/linops/utils.py b/gpjax/linops/utils.py index b5e746ac..0f35f177 100644 --- a/gpjax/linops/utils.py +++ b/gpjax/linops/utils.py @@ -15,10 +15,7 @@ from __future__ import annotations -from beartype.typing import Union, Tuple, TYPE_CHECKING - -if TYPE_CHECKING: - from .identity_linear_operator import IdentityLinearOperator +from beartype.typing import Union, Tuple, Type from jaxtyping import Float, Array @@ -28,7 +25,7 @@ from .linear_operator import LinearOperator -def identity(n: int) -> IdentityLinearOperator: +def identity(n: int) -> "gpjax.linops.identity_linear_operator.IdentityLinearOperator": """Identity matrix. Args: From 1c95fa5daa0a2bee8f1b5f902ecc6469e7e04a17 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 15:02:10 +0300 Subject: [PATCH 14/87] linops other type hint fixes --- gpjax/linops/constant_diagonal_linear_operator.py | 2 +- gpjax/linops/linear_operator.py | 8 ++++---- gpjax/linops/utils.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 6e8d2d92..2d03c9ae 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -78,7 +78,7 @@ def __add__( else: return super().__add__(other) - def __mul__(self, other: float) -> LinearOperator: + def __mul__(self, other: Union[float, Float[Array, ""], Float[Array, "1"]]) -> LinearOperator: """Multiply covariance operator by scalar. Args: diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index d970a5de..d5e3696e 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -122,19 +122,19 @@ def diagonal(self) -> Float[Array, "N"]: raise NotImplementedError - def trace(self) -> Float[Array, "1"]: + def trace(self) -> Float[Array, ""]: """Trace of the linear matrix. Returns: - Float[Array, "1"]: Trace of the linear matrix. + Float[Array, ""]: Trace of the linear matrix. """ return jnp.sum(self.diagonal()) - def log_det(self) -> Float[Array, "1"]: + def log_det(self) -> Float[Array, ""]: """Log determinant of the linear matrix. Default implementation uses dense Cholesky decomposition. Returns: - Float[Array, "1"]: Log determinant of the linear matrix. + Float[Array, ""]: Log determinant of the linear matrix. """ root = self.to_root() diff --git a/gpjax/linops/utils.py b/gpjax/linops/utils.py index 0f35f177..72fde65b 100644 --- a/gpjax/linops/utils.py +++ b/gpjax/linops/utils.py @@ -103,7 +103,7 @@ def check_shapes_match(shape1: Tuple[int, ...], shape2: Tuple[int, ...]) -> None ) -def default_dtype() -> jnp.dtype: +def default_dtype() -> Union[Type[jnp.float64], Type[jnp.float32]]: """Get the default dtype for the linear operator. Returns: From 1b915cf6c4a57b7f8f92a9afa6e92cc839b06fc0 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:29:41 +0300 Subject: [PATCH 15/87] fix KeyArray --- gpjax/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gpjax/utils.py b/gpjax/utils.py index 86728f01..baa86634 100644 --- a/gpjax/utils.py +++ b/gpjax/utils.py @@ -16,9 +16,12 @@ import jaxutils import deprecation +from beartype.typing import Union from jaxtyping import UInt32, Array +from jax.random import KeyArray as JAXKeyArray -KeyArray = UInt32[Array, "2"] +OldKeyArray = UInt32[Array, "2"] +KeyArray = Union[OldKeyArray, JAXKeyArray] # for compatibility regardless of enable_custom_prng setting depreciate = deprecation.deprecated( deprecated_in="0.5.6", From c3e48c1dcb15a76fc52e7b4703894c005f55bcef Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:34:11 +0300 Subject: [PATCH 16/87] abstractions.py some type fixes --- gpjax/abstractions.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gpjax/abstractions.py b/gpjax/abstractions.py index 711dcda5..0e028465 100644 --- a/gpjax/abstractions.py +++ b/gpjax/abstractions.py @@ -23,7 +23,7 @@ from gpjax.utils import KeyArray from jax import lax from jax.experimental import host_callback -from jaxtyping import Array, Float +from jaxtyping import Shaped, Array, Float, Int from tqdm.auto import tqdm from .natural_gradients import natural_gradients @@ -107,7 +107,7 @@ def loss(params: Dict) -> Float[Array, "1"]: iter_nums = jnp.arange(num_iters) # Optimisation step - def step(carry, iter_num: int): + def step(carry, iter_num: Union[int, Int[Array, ""]]): params, opt_state = carry loss_val, loss_gradient = jax.value_and_grad(loss)(params) updates, opt_state = optax_optim.update(loss_gradient, opt_state, params) @@ -342,7 +342,7 @@ def _not_callback(_) -> int: _ = lax.cond(cond, _do_callback, _not_callback, operand=None) - def _update_progress_bar(loss_val: Float[Array, "1"], iter_num: int) -> None: + def _update_progress_bar(loss_val: Float[Array, ""], iter_num: int) -> None: """Updates tqdm progress bar of a JAX scan or loop.""" # Conditions for iteration number @@ -368,7 +368,7 @@ def _update_progress_bar(loss_val: Float[Array, "1"], iter_num: int) -> None: def _progress_bar_scan(body_fun: Callable) -> Callable: """Decorator that adds a progress bar to `body_fun` used in `lax.scan`.""" - def wrapper_progress_bar(carry: Any, x: Union[tuple, int]) -> Any: + def wrapper_progress_bar(carry: Any, x: Union[tuple, Shaped[Array, "..."], int]) -> Any: # Get iteration number if type(x) is tuple: From 4cc9db112c9ac06305026c3b4fe3dc92cc2c4188 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:34:25 +0300 Subject: [PATCH 17/87] fix GaussianDistribution.log_prob return type --- gpjax/gaussian_distribution.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 541d78c8..30d05e30 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -139,14 +139,14 @@ def entropy(self) -> Float[Array, "1"]: self.event_shape[0] * (1.0 + jnp.log(2.0 * jnp.pi)) + self.scale.log_det() ) - def log_prob(self, y: Float[Array, "N"]) -> Float[Array, "1"]: + def log_prob(self, y: Float[Array, "N"]) -> Float[Array, ""]: """Calculates the log pdf of the multivariate Gaussian. Args: y (Float[Array, "N"]): The value to calculate the log probability of. Returns: - Float[Array, "1"]: The log probability of the value. + Float[Array, ""]: The log probability of the value. """ mu = self.loc sigma = self.scale From 4c4a572a71bedd521b954358a2d4288927a728df Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:39:02 +0300 Subject: [PATCH 18/87] fix depreciations & warnings --- gpjax/gps.py | 32 ++++++++++++++++---------------- gpjax/parameters.py | 2 +- gpjax/variational_families.py | 2 +- tests/test_abstractions.py | 3 ++- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/gpjax/gps.py b/gpjax/gps.py index de844294..875966cf 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -25,12 +25,12 @@ from .kernels.base import AbstractKernel from jaxutils import PyTree -from .config import get_global_config +from jaxutils.config import get_global_config from .kernels import AbstractKernel from .likelihoods import AbstractLikelihood, Conjugate, NonConjugate from .mean_functions import AbstractMeanFunction, Zero from jaxutils import Dataset -from .utils import concat_dictionaries +from jaxutils.dict import concat_dictionaries from .gaussian_distribution import GaussianDistribution import deprecation @@ -116,7 +116,7 @@ class Prior(AbstractPrior): .. math:: - p(f(\\cdot)) = \mathcal{GP}(m(\\cdot), k(\\cdot, \\cdot)). + p(f(\\cdot)) = \\mathcal{GP}(m(\\cdot), k(\\cdot, \\cdot)). To invoke a ``Prior`` distribution, only a kernel function is required. By default, the mean function will be set to zero. In general, this assumption @@ -318,27 +318,27 @@ def init_params(self, key: KeyArray) -> Dict: class ConjugatePosterior(AbstractPosterior): - """A Gaussian process posterior distribution when the constituent likelihood + r"""A Gaussian process posterior distribution when the constituent likelihood function is a Gaussian distribution. In such cases, the latent function values :math:`f` can be analytically integrated out of the posterior distribution. As such, many computational operations can be simplified; something we make use of in this object. For a Gaussian process prior :math:`p(\mathbf{f})` and a Gaussian likelihood - :math:`p(y | \\mathbf{f}) = \\mathcal{N}(y\\mid \mathbf{f}, \\sigma^2))` where - :math:`\mathbf{f} = f(\\mathbf{x})`, the predictive posterior distribution at - a set of inputs :math:`\\mathbf{x}` is given by + :math:`p(y | \mathbf{f}) = \mathcal{N}(y\mid \mathbf{f}, \sigma^2))` where + :math:`\mathbf{f} = f(\mathbf{x})`, the predictive posterior distribution at + a set of inputs :math:`\mathbf{x}` is given by .. math:: - p(\\mathbf{f}^{\\star}\mid \mathbf{y}) & = \\int p(\\mathbf{f}^{\\star} \\mathbf{f} \\mid \\mathbf{y})\\\\ - & =\\mathcal{N}(\\mathbf{f}^{\\star} \\boldsymbol{\mu}_{\mid \mathbf{y}}, \\boldsymbol{\Sigma}_{\mid \mathbf{y}} + p(\mathbf{f}^{\star}\mid \mathbf{y}) & = \int p(\mathbf{f}^{\star} \mathbf{f} \mid \mathbf{y})\\ + & =\mathcal{N}(\mathbf{f}^{\star} \boldsymbol{\mu}_{\mid \mathbf{y}}, \boldsymbol{\Sigma}_{\mid \mathbf{y}} where .. math:: - \\boldsymbol{\mu}_{\mid \mathbf{y}} & = k(\\mathbf{x}^{\\star}, \\mathbf{x})\\left(k(\\mathbf{x}, \\mathbf{x}')+\\sigma^2\\mathbf{I}_n\\right)^{-1}\\mathbf{y} \\\\ - \\boldsymbol{\Sigma}_{\mid \mathbf{y}} & =k(\\mathbf{x}^{\\star}, \\mathbf{x}^{\\star\\prime}) -k(\\mathbf{x}^{\\star}, \\mathbf{x})\\left( k(\\mathbf{x}, \\mathbf{x}') + \\sigma^2\\mathbf{I}_n \\right)^{-1}k(\\mathbf{x}, \\mathbf{x}^{\\star}). + \boldsymbol{\mu}_{\mid \mathbf{y}} & = k(\mathbf{x}^{\star}, \mathbf{x})\left(k(\mathbf{x}, \mathbf{x}')+\sigma^2\mathbf{I}_n\right)^{-1}\mathbf{y} \\ + \boldsymbol{\Sigma}_{\mid \mathbf{y}} & =k(\mathbf{x}^{\star}, \mathbf{x}^{\star\prime}) -k(\mathbf{x}^{\star}, \mathbf{x})\left( k(\mathbf{x}, \mathbf{x}') + \sigma^2\mathbf{I}_n \right)^{-1}k(\mathbf{x}, \mathbf{x}^{\star}). Example: >>> import gpjax as gpx @@ -372,7 +372,7 @@ def predict( params: Dict, train_data: Dataset, ) -> Callable[[Float[Array, "N D"]], GaussianDistribution]: - """Conditional on a training data set, compute the GP's posterior + r"""Conditional on a training data set, compute the GP's posterior predictive distribution for a given set of parameters. The returned function can be evaluated at a set of test inputs to compute the corresponding predictive density. @@ -380,14 +380,14 @@ def predict( The predictive distribution of a conjugate GP is given by .. math:: - p(\\mathbf{f}^{\\star}\mid \mathbf{y}) & = \\int p(\\mathbf{f}^{\\star} \\mathbf{f} \\mid \\mathbf{y})\\\\ - & =\\mathcal{N}(\\mathbf{f}^{\\star} \\boldsymbol{\mu}_{\mid \mathbf{y}}, \\boldsymbol{\Sigma}_{\mid \mathbf{y}} + p(\mathbf{f}^{\star}\mid \mathbf{y}) & = \int p(\mathbf{f}^{\star} \mathbf{f} \mid \mathbf{y})\\ + & =\mathcal{N}(\mathbf{f}^{\star} \boldsymbol{\mu}_{\mid \mathbf{y}}, \boldsymbol{\Sigma}_{\mid \mathbf{y}} where .. math:: - \\boldsymbol{\mu}_{\mid \mathbf{y}} & = k(\\mathbf{x}^{\\star}, \\mathbf{x})\\left(k(\\mathbf{x}, \\mathbf{x}')+\\sigma^2\\mathbf{I}_n\\right)^{-1}\\mathbf{y} \\\\ - \\boldsymbol{\Sigma}_{\mid \mathbf{y}} & =k(\\mathbf{x}^{\\star}, \\mathbf{x}^{\\star\\prime}) -k(\\mathbf{x}^{\\star}, \\mathbf{x})\\left( k(\\mathbf{x}, \\mathbf{x}') + \\sigma^2\\mathbf{I}_n \\right)^{-1}k(\\mathbf{x}, \\mathbf{x}^{\\star}). + \boldsymbol{\mu}_{\mid \mathbf{y}} & = k(\mathbf{x}^{\star}, \mathbf{x})\left(k(\mathbf{x}, \mathbf{x}')+\sigma^2\mathbf{I}_n\right)^{-1}\mathbf{y} \\ + \boldsymbol{\Sigma}_{\mid \mathbf{y}} & =k(\mathbf{x}^{\star}, \mathbf{x}^{\star\prime}) -k(\mathbf{x}^{\star}, \mathbf{x})\left( k(\mathbf{x}, \mathbf{x}') + \sigma^2\mathbf{I}_n \right)^{-1}k(\mathbf{x}, \mathbf{x}^{\star}). The conditioning set is a GPJax ``Dataset`` object, whilst predictions are made on a regular Jax array. diff --git a/gpjax/parameters.py b/gpjax/parameters.py index 02a438c9..89730bad 100644 --- a/gpjax/parameters.py +++ b/gpjax/parameters.py @@ -26,7 +26,7 @@ from jaxtyping import Array, Float from jaxutils import PyTree -from .config import Identity, get_global_config +from jaxutils.config import Identity, get_global_config from .utils import merge_dictionaries diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 60315f3f..232c00b4 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -32,7 +32,7 @@ from .config import get_global_config from .gps import Prior from .likelihoods import AbstractLikelihood, Gaussian -from .utils import concat_dictionaries +from jaxutils.dict import concat_dictionaries from .gaussian_distribution import GaussianDistribution import deprecation diff --git a/tests/test_abstractions.py b/tests/test_abstractions.py index 4b7fce30..628d77a0 100644 --- a/tests/test_abstractions.py +++ b/tests/test_abstractions.py @@ -20,7 +20,8 @@ from jax.config import config import gpjax as gpx -from gpjax import RBF, Dataset, Gaussian, Prior, initialise +from jaxutils import Dataset +from gpjax import RBF, Gaussian, Prior, initialise from gpjax.abstractions import InferenceState, fit, fit_batches, fit_natgrads, get_batch from gpjax.parameters import ParameterState, build_bijectors From 9516fdfd93e04c53833f92214cae4f0ad486a941 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:51:22 +0300 Subject: [PATCH 19/87] fix scalar array types --- gpjax/abstractions.py | 2 +- gpjax/gaussian_distribution.py | 16 ++++++++-------- gpjax/variational_families.py | 16 ++++++++-------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gpjax/abstractions.py b/gpjax/abstractions.py index 0e028465..9ef38263 100644 --- a/gpjax/abstractions.py +++ b/gpjax/abstractions.py @@ -92,7 +92,7 @@ def fit( params, trainables, bijectors = parameter_state.unpack() # Define optimisation loss function on unconstrained space, with a stop gradient rule for trainables that are set to False - def loss(params: Dict) -> Float[Array, "1"]: + def loss(params: Dict) -> Float[Array, ""]: params = trainable_params(params, trainables) params = constrain(params, bijectors) return objective(params) diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 30d05e30..afb7b614 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -133,7 +133,7 @@ def event_shape(self) -> Tuple: """Returns the event shape.""" return self.loc.shape[-1:] - def entropy(self) -> Float[Array, "1"]: + def entropy(self) -> Float[Array, ""]: """Calculates the entropy of the distribution.""" return 0.5 * ( self.event_shape[0] * (1.0 + jnp.log(2.0 * jnp.pi)) + self.scale.log_det() @@ -180,7 +180,7 @@ def _sample_n(self, key: KeyArray, n: int) -> Float[Array, "n N"]: return vmap(affine_transformation)(Z) - def kl_divergence(self, other: "GaussianDistribution") -> Float[Array, "1"]: + def kl_divergence(self, other: "GaussianDistribution") -> Float[Array, ""]: return _kl_divergence(self, other) @@ -197,14 +197,14 @@ def _check_and_return_dimension( return q.event_shape[-1] -def _frobeinius_norm_squared(matrix: Float[Array, "N N"]) -> Float[Array, "1"]: +def _frobenius_norm_squared(matrix: Float[Array, "N N"]) -> Float[Array, ""]: """Calculates the squared Frobenius norm of a matrix.""" return jnp.sum(jnp.square(matrix)) def _kl_divergence( q: GaussianDistribution, p: GaussianDistribution -) -> Float[Array, "1"]: +) -> Float[Array, ""]: """Computes the KL divergence, KL[q||p], between two multivariate Gaussian distributions q(x) = N(x; μq, Σq) and p(x) = N(x; μp, Σp). @@ -213,7 +213,7 @@ def _kl_divergence( p (GaussianDistribution): A multivariate Gaussian distribution. Returns: - Float[Array, "1"]: The KL divergence between q and p. + Float[Array, ""]: The KL divergence between q and p. """ n_dim = _check_and_return_dimension(q, p) @@ -234,14 +234,14 @@ def _kl_divergence( diff = mu_p - mu_q # trace term, tr[Σp⁻¹ Σq] = tr[(LpLpᵀ)⁻¹(LqLqᵀ)] = tr[(Lp⁻¹Lq)(Lp⁻¹Lq)ᵀ] = (fr[LqLp⁻¹])² - trace = _frobeinius_norm_squared( + trace = _frobenius_norm_squared( sqrt_p.solve(sqrt_q.to_dense()) ) # TODO: Not most efficient, given the `to_dense()` call (e.g., consider diagonal p and q). Need to abstract solving linear operator against another linear operator. # Mahalanobis term, (μp - μq)ᵀ Σp⁻¹ (μp - μq) = tr [(μp - μq)ᵀ [LpLpᵀ]⁻¹ (μp - μq)] = (fr[Lp⁻¹(μp - μq)])² - mahalanobis = _frobeinius_norm_squared( + mahalanobis = jnp.sum(jnp.square( sqrt_p.solve(diff) - ) # TODO: Need to improve this. Perhaps add a Mahalanobis method to ``LinearOperator``s. + )) # TODO: Need to improve this. Perhaps add a Mahalanobis method to ``LinearOperator``s. # KL[q(x)||p(x)] = [ [(μp - μq)ᵀ Σp⁻¹ (μp - μq)] - n - log|Σq| + log|Σp| + tr[Σp⁻¹ Σq] ] / 2 return (mahalanobis - n_dim - sigma_q.log_det() + sigma_p.log_det() + trace) / 2.0 diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 464283b7..a4c6414c 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -155,7 +155,7 @@ def init_params(self, key: KeyArray) -> Dict: }, ) - def prior_kl(self, params: Dict) -> Float[Array, "1"]: + def prior_kl(self, params: Dict) -> Float[Array, ""]: """ Compute the KL-divergence between our variational approximation and the Gaussian process prior. @@ -169,7 +169,7 @@ def prior_kl(self, params: Dict) -> Float[Array, "1"]: and GP prior are to be evaluated. Returns: - Float[Array, "1"]: The KL-divergence between our variational + Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. """ @@ -297,7 +297,7 @@ def __init__( super().__init__(prior, inducing_inputs, name) - def prior_kl(self, params: Dict) -> Float[Array, "1"]: + def prior_kl(self, params: Dict) -> Float[Array, ""]: """Compute the KL-divergence between our variational approximation and the Gaussian process prior. @@ -308,7 +308,7 @@ def prior_kl(self, params: Dict) -> Float[Array, "1"]: and GP prior are to be evaluated. Returns: - Float[Array, "1"]: The KL-divergence between our variational + Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. """ @@ -431,7 +431,7 @@ def init_params(self, key: KeyArray) -> Dict: }, ) - def prior_kl(self, params: Dict) -> Float[Array, "1"]: + def prior_kl(self, params: Dict) -> Float[Array, ""]: """Compute the KL-divergence between our current variational approximation and the Gaussian process prior. For this variational family, we have KL[q(f(·))||p(·)] = KL[q(u)||p(u)] = KL[N(μ, S)||N(mz, Kzz)], @@ -442,7 +442,7 @@ def prior_kl(self, params: Dict) -> Float[Array, "1"]: params (Dict): The parameters at which our variational distribution and GP prior are to be evaluated. Returns: - Float[Array, "1"]: The KL-divergence between our variational approximation and the GP prior. + Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. """ jitter = get_global_config()["jitter"] @@ -618,7 +618,7 @@ def init_params(self, key: KeyArray) -> Dict: }, ) - def prior_kl(self, params: Dict) -> Float[Array, "1"]: + def prior_kl(self, params: Dict) -> Float[Array, ""]: """Compute the KL-divergence between our current variational approximation and the Gaussian process prior. For this variational family, we have KL[q(f(·))||p(·)] = KL[q(u)||p(u)] = KL[N(μ, S)||N(mz, Kzz)], @@ -629,7 +629,7 @@ def prior_kl(self, params: Dict) -> Float[Array, "1"]: params (Dict): The parameters at which our variational distribution and GP prior are to be evaluated. Returns: - Float[Array, "1"]: The KL-divergence between our variational approximation and the GP prior. + Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. """ jitter = get_global_config()["jitter"] From 2d4525895138019122857ddcbdf798c334e98b54 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:51:56 +0300 Subject: [PATCH 20/87] introduce ScalarBool, ScalarInt for jitted calls in abstractions --- gpjax/abstractions.py | 8 ++++---- gpjax/utils.py | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gpjax/abstractions.py b/gpjax/abstractions.py index 9ef38263..7c52f760 100644 --- a/gpjax/abstractions.py +++ b/gpjax/abstractions.py @@ -20,7 +20,7 @@ import jax.random as jr import optax as ox -from gpjax.utils import KeyArray +from gpjax.utils import KeyArray, ScalarBool, ScalarInt from jax import lax from jax.experimental import host_callback from jaxtyping import Shaped, Array, Float, Int @@ -107,7 +107,7 @@ def loss(params: Dict) -> Float[Array, ""]: iter_nums = jnp.arange(num_iters) # Optimisation step - def step(carry, iter_num: Union[int, Int[Array, ""]]): + def step(carry, iter_num: ScalarInt): params, opt_state = carry loss_val, loss_gradient = jax.value_and_grad(loss)(params) updates, opt_state = optax_optim.update(loss_gradient, opt_state, params) @@ -328,7 +328,7 @@ def _close_tqdm(args: Any, transform: Any) -> None: """Close the tqdm progress bar.""" tqdm_bars[0].close() - def _callback(cond: bool, func: Callable, arg: Any) -> None: + def _callback(cond: ScalarBool, func: Callable, arg: Any) -> None: """Callback a function for a given argument if a condition is true.""" dummy_result = 0 @@ -342,7 +342,7 @@ def _not_callback(_) -> int: _ = lax.cond(cond, _do_callback, _not_callback, operand=None) - def _update_progress_bar(loss_val: Float[Array, ""], iter_num: int) -> None: + def _update_progress_bar(loss_val: Float[Array, ""], iter_num: ScalarInt) -> None: """Updates tqdm progress bar of a JAX scan or loop.""" # Conditions for iteration number diff --git a/gpjax/utils.py b/gpjax/utils.py index baa86634..ba76600e 100644 --- a/gpjax/utils.py +++ b/gpjax/utils.py @@ -17,12 +17,15 @@ import deprecation from beartype.typing import Union -from jaxtyping import UInt32, Array +from jaxtyping import Bool, UInt32, Int, Array from jax.random import KeyArray as JAXKeyArray OldKeyArray = UInt32[Array, "2"] KeyArray = Union[OldKeyArray, JAXKeyArray] # for compatibility regardless of enable_custom_prng setting +ScalarBool = Union[bool, Bool[Array, ""]] +ScalarInt = Union[int, Int[Array, ""]] + depreciate = deprecation.deprecated( deprecated_in="0.5.6", removed_in="0.6.0", From ecfde64a45429720152bde825fc7007192c0bf96 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:53:31 +0300 Subject: [PATCH 21/87] relax LinearOperator's solve() types (can be both matrix or vector), not ideal :S --- gpjax/linops/constant_diagonal_linear_operator.py | 2 +- gpjax/linops/diagonal_linear_operator.py | 2 +- gpjax/linops/identity_linear_operator.py | 2 +- gpjax/linops/linear_operator.py | 2 +- gpjax/linops/triangular_linear_operator.py | 2 +- gpjax/linops/zero_linear_operator.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 2d03c9ae..e2a57015 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -144,7 +144,7 @@ def inverse(self) -> "ConstantDiagonalLinearOperator": """ return ConstantDiagonalLinearOperator(value=1.0 / self.value, size=self.size) - def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: """Solve linear system. Args: diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 4b60b997..fe42a6ad 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -165,7 +165,7 @@ def inverse(self) -> "DiagonalLinearOperator": """ return DiagonalLinearOperator(diag=1.0 / self.diagonal()) - def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: """Solve linear system. Args: diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index 16509550..06228483 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -88,7 +88,7 @@ def inverse(self) -> "IdentityLinearOperator": """ return self - def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: """Solve linear system. Args: diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index d5e3696e..ce247df8 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -167,7 +167,7 @@ def inverse(self) -> "LinearOperator": return DenseLinearOperator(self.solve(jnp.eye(n))) - def solve(self, rhs: Float[Array, "N M"]) -> Float[Array, "N M"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: """Solve linear system. Default implementation uses dense Cholesky decomposition. Args: diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index 9a7d5b54..24f32705 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -38,7 +38,7 @@ def inverse(self) -> DenseLinearOperator: matrix = self.solve(jnp.eye(self.size)) return DenseLinearOperator(matrix) - def solve(self, rhs: Float[Array, "N"]) -> Float[Array, "N"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: return jsp.linalg.solve_triangular(self.to_dense(), rhs, lower=True) def __matmul__(self, other): diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 2f548985..9755cc3b 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -146,7 +146,7 @@ def inverse(self) -> None: """ raise RuntimeError("ZeroLinearOperator is not invertible.") - def solve(self, rhs: Float[Array, "N M"]) -> None: + def solve(self, rhs: Float[Array, "... M"]) -> None: """Solve linear system. Raises: From 066a5d7089d61b1a73050dbc094374994e8eb78d Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:53:45 +0300 Subject: [PATCH 22/87] remove _stop_grad type hints, not sure what they should be --- gpjax/parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/parameters.py b/gpjax/parameters.py index bd8e08bf..afc7db09 100644 --- a/gpjax/parameters.py +++ b/gpjax/parameters.py @@ -365,7 +365,7 @@ def build_trainables(params: Dict, status: bool = True) -> Dict: return prior_container -def _stop_grad(param: Dict, trainable: Dict) -> Dict: +def _stop_grad(param, trainable): """ When taking a gradient, we want to stop the gradient from flowing through a parameter if it is not trainable. This is achieved using the model's From ff6872533f79736f7040b06c4ac1d11640735281 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 17:54:01 +0300 Subject: [PATCH 23/87] found some more --- gpjax/variational_families.py | 2 +- gpjax/variational_inference.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 232c00b4..75405535 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -29,7 +29,7 @@ LowerTriangularLinearOperator ) -from .config import get_global_config +from jaxutils.config import get_global_config from .gps import Prior from .likelihoods import AbstractLikelihood, Gaussian from jaxutils.dict import concat_dictionaries diff --git a/gpjax/variational_inference.py b/gpjax/variational_inference.py index 219db779..3c4c3a79 100644 --- a/gpjax/variational_inference.py +++ b/gpjax/variational_inference.py @@ -30,7 +30,7 @@ from .likelihoods import Gaussian from .quadrature import gauss_hermite_quadrature from jaxutils import Dataset -from .utils import concat_dictionaries +from jaxutils.dict import concat_dictionaries from .variational_families import ( AbstractVariationalFamily, CollapsedVariationalGaussian, From 5c9075537fac44f862e1a5061781ac577a0806d1 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 18:10:10 +0300 Subject: [PATCH 24/87] float -> ScalarFloat fixes --- gpjax/linops/constant_diagonal_linear_operator.py | 3 ++- gpjax/linops/dense_linear_operator.py | 3 ++- gpjax/linops/diagonal_linear_operator.py | 3 ++- gpjax/linops/linear_operator.py | 4 ++-- gpjax/linops/zero_linear_operator.py | 3 ++- gpjax/utils.py | 3 ++- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index e2a57015..e224e27b 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -22,6 +22,7 @@ from simple_pytree import static_field from dataclasses import dataclass +from gpjax.utils import ScalarFloat from .linear_operator import LinearOperator from .diagonal_linear_operator import DiagonalLinearOperator @@ -78,7 +79,7 @@ def __add__( else: return super().__add__(other) - def __mul__(self, other: Union[float, Float[Array, ""], Float[Array, "1"]]) -> LinearOperator: + def __mul__(self, other: Union[ScalarFloat, Float[Array, "1"]]) -> LinearOperator: """Multiply covariance operator by scalar. Args: diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index df53ffa4..e0b94e11 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -23,6 +23,7 @@ from .linear_operator import LinearOperator from .utils import to_linear_operator +from gpjax.utils import ScalarFloat def _check_matrix(matrix: Array) -> None: @@ -89,7 +90,7 @@ def __add__( else: raise NotImplementedError - def __mul__(self, other: float) -> LinearOperator: + def __mul__(self, other: ScalarFloat) -> LinearOperator: """Multiply covariance operator by scalar. Args: diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index fe42a6ad..d17041c6 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -20,6 +20,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float from dataclasses import dataclass +from gpjax.utils import ScalarFloat from .linear_operator import LinearOperator from .dense_linear_operator import DenseLinearOperator from .utils import to_linear_operator @@ -93,7 +94,7 @@ def __add__( else: raise NotImplementedError - def __mul__(self, other: float) -> LinearOperator: + def __mul__(self, other: ScalarFloat) -> LinearOperator: """Multiply covariance operator by scalar. Args: diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index ce247df8..212c0fb1 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -83,11 +83,11 @@ def __radd__( return self + other @abc.abstractmethod - def __mul__(self, other: float) -> "LinearOperator": + def __mul__(self, other: ScalarFloat) -> "LinearOperator": """Multiply linear operator by scalar.""" raise NotImplementedError - def __rmul__(self, other: float) -> "LinearOperator": + def __rmul__(self, other: ScalarFloat) -> "LinearOperator": """Reimplimentation of multiply linear operator by scalar.""" return self.__mul__(other) diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 9755cc3b..02c45ae6 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -21,6 +21,7 @@ from jaxtyping import Array, Float from dataclasses import dataclass +from gpjax.utils import ScalarFloat from .linear_operator import LinearOperator from .diagonal_linear_operator import DiagonalLinearOperator from .utils import check_shapes_match, to_linear_operator, default_dtype @@ -87,7 +88,7 @@ def _add_diagonal(self, other: DiagonalLinearOperator) -> DiagonalLinearOperator check_shapes_match(self.shape, other.shape) return other - def __mul__(self, other: float) -> ZeroLinearOperator: + def __mul__(self, other: ScalarFloat) -> ZeroLinearOperator: """Multiply covariance operator by scalar. Args: diff --git a/gpjax/utils.py b/gpjax/utils.py index ba76600e..74ba6f6b 100644 --- a/gpjax/utils.py +++ b/gpjax/utils.py @@ -17,7 +17,7 @@ import deprecation from beartype.typing import Union -from jaxtyping import Bool, UInt32, Int, Array +from jaxtyping import Bool, UInt32, Int, Float, Array from jax.random import KeyArray as JAXKeyArray OldKeyArray = UInt32[Array, "2"] @@ -25,6 +25,7 @@ ScalarBool = Union[bool, Bool[Array, ""]] ScalarInt = Union[int, Int[Array, ""]] +ScalarFloat = Union[float, Float[Array, ""]] depreciate = deprecation.deprecated( deprecated_in="0.5.6", From c6925687b1c3576c04386f443fad61c29dc4d6a5 Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 18:10:47 +0300 Subject: [PATCH 25/87] linops log_det type fixes --- gpjax/linops/constant_diagonal_linear_operator.py | 6 +++--- gpjax/linops/diagonal_linear_operator.py | 4 ++-- gpjax/linops/identity_linear_operator.py | 4 ++-- gpjax/linops/zero_linear_operator.py | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index e224e27b..4376ba57 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -129,13 +129,13 @@ def to_root(self) -> "ConstantDiagonalLinearOperator": value=jnp.sqrt(self.value), size=self.size ) - def log_det(self) -> Float[Array, "1"]: + def log_det(self) -> Float[Array, ""]: """Log determinant. Returns: - Float[Array, "1"]: Log determinant of the covariance matrix. + Float[Array, ""]: Log determinant of the covariance matrix. """ - return 2.0 * self.size * jnp.log(self.value) + return 2.0 * self.size * jnp.log(self.value.squeeze()) def inverse(self) -> "ConstantDiagonalLinearOperator": """Inverse of the covariance operator. diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index d17041c6..27531d40 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -150,11 +150,11 @@ def to_root(self) -> "DiagonalLinearOperator": """ return DiagonalLinearOperator(diag=jnp.sqrt(self.diagonal())) - def log_det(self) -> Float[Array, "1"]: + def log_det(self) -> Float[Array, ""]: """Log determinant. Returns: - Float[Array, "1"]: Log determinant of the covariance matrix. + Float[Array, ""]: Log determinant of the covariance matrix. """ return jnp.sum(jnp.log(self.diagonal())) diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index 06228483..4c5b4436 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -72,11 +72,11 @@ def to_root(self) -> "IdentityLinearOperator": """ return self - def log_det(self) -> Float[Array, "1"]: + def log_det(self) -> Float[Array, ""]: """Log determinant. Returns: - Float[Array, "1"]: Log determinant of the covariance matrix. + Float[Array, ""]: Log determinant of the covariance matrix. """ return jnp.array(0.0) diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 02c45ae6..b4ec455f 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -131,11 +131,11 @@ def to_root(self) -> ZeroLinearOperator: """ return self - def log_det(self) -> Float[Array, "1"]: + def log_det(self) -> Float[Array, ""]: """Log determinant. Returns: - Float[Array, "1"]: Log determinant of the covariance matrix. + Float[Array, ""]: Log determinant of the covariance matrix. """ return jnp.log(jnp.array(0.0)) From ff5211a9eff728fd0843b5d52ff34c5d4bb6004e Mon Sep 17 00:00:00 2001 From: ST John Date: Thu, 13 Apr 2023 18:11:00 +0300 Subject: [PATCH 26/87] some more linops type fixes --- gpjax/linops/constant_diagonal_linear_operator.py | 2 +- gpjax/linops/triangular_linear_operator.py | 2 +- gpjax/linops/zero_linear_operator.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 4376ba57..53206368 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -65,7 +65,7 @@ def __init__( def __add__( self, other: Union[Float[Array, "N N"], LinearOperator] - ) -> DiagonalLinearOperator: + ) -> LinearOperator: if isinstance(other, ConstantDiagonalLinearOperator): if other.size == self.size: return ConstantDiagonalLinearOperator( diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index 24f32705..ae86f34e 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -77,7 +77,7 @@ def __matmul__(self, other): def __add__(self, other): return super().__matmul__(other) - def solve(self, rhs: Float[Array, "N"]) -> Float[Array, "N"]: + def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: return jsp.linalg.solve_triangular(self.to_dense(), rhs, lower=False) @classmethod diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index b4ec455f..c5aafa1f 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -43,7 +43,7 @@ def _check_size(shape: Any) -> None: class ZeroLinearOperator(LinearOperator): """Zero linear operator.""" - def __init__(self, shape: Tuple[int], dtype: jnp.dtype = None) -> None: + def __init__(self, shape: Tuple[int, ...], dtype: jnp.dtype = None) -> None: _check_size(shape) From af69a7314634b759cf5d79b4711fcd052f61ac84 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:32:17 +0300 Subject: [PATCH 27/87] actually commit KeyArray and Scalar* types --- gpjax/utils.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 gpjax/utils.py diff --git a/gpjax/utils.py b/gpjax/utils.py new file mode 100644 index 00000000..3fc38dfb --- /dev/null +++ b/gpjax/utils.py @@ -0,0 +1,32 @@ +# Copyright 2023 The GPJax Contributors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +from beartype.typing import Union +from jaxtyping import Bool, UInt32, Int, Float, Array +from jax.random import KeyArray as JAXKeyArray + +OldKeyArray = UInt32[Array, "2"] +KeyArray = Union[OldKeyArray, JAXKeyArray] # for compatibility regardless of enable_custom_prng setting + +ScalarBool = Union[bool, Bool[Array, ""]] +ScalarInt = Union[int, Int[Array, ""]] +ScalarFloat = Union[float, Float[Array, ""]] + +__all__ = [ + "KeyArray", + "ScalarBool", + "ScalarInt", + "ScalarFloat", +] From cc97fe2852f8e0307380f1c0fd96a7e417ad4b54 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:33:00 +0300 Subject: [PATCH 28/87] add beartype to pyproject --- poetry.lock | 3643 ++++++++++++++++++++++++------------------------ pyproject.toml | 1 + 2 files changed, 1812 insertions(+), 1832 deletions(-) diff --git a/poetry.lock b/poetry.lock index a478cc80..49cb5376 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + [[package]] name = "absl-py" version = "1.4.0" @@ -5,6 +7,10 @@ description = "Abseil Python Common Libraries, see https://github.com/abseil/abs category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "absl-py-1.4.0.tar.gz", hash = "sha256:d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"}, + {file = "absl_py-1.4.0-py3-none-any.whl", hash = "sha256:0d3fe606adfa4f7db64792dd4c7aee4ee0c38ab75dfd353b7a83ed3e957fcb47"}, +] [[package]] name = "absolufy-imports" @@ -13,6 +19,10 @@ description = "A tool to automatically replace relative imports with absolute on category = "dev" optional = false python-versions = ">=3.6.1" +files = [ + {file = "absolufy_imports-0.3.1-py2.py3-none-any.whl", hash = "sha256:49bf7c753a9282006d553ba99217f48f947e3eef09e18a700f8a82f75dc7fc5c"}, + {file = "absolufy_imports-0.3.1.tar.gz", hash = "sha256:c90638a6c0b66826d1fb4880ddc20ef7701af34192c94faf40b95d32b59f9793"}, +] [[package]] name = "accessible-pygments" @@ -21,6 +31,10 @@ description = "A collection of accessible pygments styles" category = "dev" optional = false python-versions = "*" +files = [ + {file = "accessible-pygments-0.0.4.tar.gz", hash = "sha256:e7b57a9b15958e9601c7e9eb07a440c813283545a20973f2574a5f453d0e953e"}, + {file = "accessible_pygments-0.0.4-py2.py3-none-any.whl", hash = "sha256:416c6d8c1ea1c5ad8701903a20fcedf953c6e720d64f33dc47bfb2d3f2fa4e8d"}, +] [package.dependencies] pygments = ">=1.5" @@ -32,6 +46,10 @@ description = "A configurable sidebar-enabled Sphinx theme" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] [[package]] name = "appnope" @@ -40,6 +58,10 @@ description = "Disable App Nap on macOS >= 10.9" category = "dev" optional = false python-versions = "*" +files = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] [[package]] name = "argcomplete" @@ -48,6 +70,10 @@ description = "Bash tab completion for argparse" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "argcomplete-2.1.2-py3-none-any.whl", hash = "sha256:4ba9cdaa28c361d251edce884cd50b4b1215d65cdc881bd204426cdde9f52731"}, + {file = "argcomplete-2.1.2.tar.gz", hash = "sha256:fc82ef070c607b1559b5c720529d63b54d9dcf2dcfc2632b10e6372314a34457"}, +] [package.extras] lint = ["flake8", "mypy"] @@ -60,6 +86,10 @@ description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.15.1-py3-none-any.whl", hash = "sha256:89860bda98fe2bbd1f5d262229be7629d778ce280de68d95d4a73d1f592ad268"}, + {file = "astroid-2.15.1.tar.gz", hash = "sha256:af4e0aff46e2868218502789898269ed95b663fba49e65d91c1e09c966266c34"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -76,6 +106,10 @@ description = "Annotate AST trees with source code positions" category = "dev" optional = false python-versions = "*" +files = [ + {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, + {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, +] [package.dependencies] six = "*" @@ -90,6 +124,10 @@ description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, + {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, +] [package.extras] cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] @@ -105,6 +143,10 @@ description = "Internationalization utilities" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, +] [package.dependencies] pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} @@ -116,6 +158,29 @@ description = "Specifications for callback functions passed in to an API" category = "dev" optional = false python-versions = "*" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] + +[[package]] +name = "beartype" +version = "0.13.1" +description = "Unbearably fast runtime type checking in pure Python." +category = "main" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "beartype-0.13.1-py3-none-any.whl", hash = "sha256:c3097b487e57bc278f1b55da8863b704b2a786c46483a6d3df39ab6fe2523d80"}, + {file = "beartype-0.13.1.tar.gz", hash = "sha256:2903947a8a1eb6030264e30108aa72cb1a805cfc9050c0f4014c4aed3a17a00b"}, +] + +[package.extras] +all = ["typing-extensions (>=3.10.0.0)"] +dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "mypy (>=0.800)", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions"] +doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"] +test-tox = ["mypy (>=0.800)", "numpy", "pandera", "pytest (>=4.0.0)", "sphinx", "typing-extensions"] +test-tox-coverage = ["coverage (>=5.5)"] [[package]] name = "beautifulsoup4" @@ -124,6 +189,10 @@ description = "Screen-scraping library" category = "dev" optional = false python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.0-py3-none-any.whl", hash = "sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591"}, + {file = "beautifulsoup4-4.12.0.tar.gz", hash = "sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"}, +] [package.dependencies] soupsieve = ">1.2" @@ -139,6 +208,33 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "black-23.1.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221"}, + {file = "black-23.1.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26"}, + {file = "black-23.1.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b"}, + {file = "black-23.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"}, + {file = "black-23.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958"}, + {file = "black-23.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a"}, + {file = "black-23.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481"}, + {file = "black-23.1.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad"}, + {file = "black-23.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8"}, + {file = "black-23.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580"}, + {file = "black-23.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468"}, + {file = "black-23.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739"}, + {file = "black-23.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9"}, + {file = "black-23.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555"}, + {file = "black-23.1.0-py3-none-any.whl", hash = "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32"}, + {file = "black-23.1.0.tar.gz", hash = "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac"}, +] [package.dependencies] click = ">=8.0.0" @@ -162,6 +258,10 @@ description = "Flexible and fast inference in Python" category = "dev" optional = false python-versions = "*" +files = [ + {file = "blackjax-0.9.6-py3-none-any.whl", hash = "sha256:d1c20dd15a63944a7b5c835bac4900aadf8630bedb0d7e51ab7fc63255eb0dd7"}, + {file = "blackjax-0.9.6.tar.gz", hash = "sha256:fb708f183d714750feb475fb87b8162fc1641309f30ee42fd38a5dec82733868"}, +] [package.dependencies] fastprogress = ">=0.2.0" @@ -176,6 +276,10 @@ description = "An easy safelist-based HTML-sanitizing tool." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"}, + {file = "bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414"}, +] [package.dependencies] six = ">=1.9.0" @@ -191,6 +295,10 @@ description = "A decorator for caching properties in classes." category = "main" optional = false python-versions = "*" +files = [ + {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, + {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, +] [[package]] name = "certifi" @@ -199,6 +307,10 @@ description = "Python package for providing Mozilla's CA Bundle." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] [[package]] name = "cffi" @@ -207,6 +319,72 @@ description = "Foreign Function Interface for Python calling C code." category = "dev" optional = false python-versions = "*" +files = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] [package.dependencies] pycparser = "*" @@ -218,6 +396,83 @@ description = "The Real First Universal Charset Detector. Open, modern and activ category = "dev" optional = false python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, + {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, +] [[package]] name = "chex" @@ -226,6 +481,10 @@ description = "Chex: Testing made fun, in JAX!" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "chex-0.1.7-py3-none-any.whl", hash = "sha256:9f583015303b1205443843c0b55849bb287f1dfdbd22d9907b1ebb04f964d93e"}, + {file = "chex-0.1.7.tar.gz", hash = "sha256:74ed49799ac4d229881456d468136f1b19a9f9839e3de72b058824e2a4f4dedd"}, +] [package.dependencies] absl-py = ">=0.9.0" @@ -243,6 +502,10 @@ description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -254,6 +517,10 @@ description = "Extended pickling support for Python objects" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "cloudpickle-2.2.1-py3-none-any.whl", hash = "sha256:61f594d1f4c295fa5cd9014ceb3a1fc4a70b0de1164b94fbc2d854ccba056f9f"}, + {file = "cloudpickle-2.2.1.tar.gz", hash = "sha256:d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5"}, +] [[package]] name = "colorama" @@ -262,6 +529,10 @@ description = "Cross-platform colored terminal text." category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] [[package]] name = "colorlog" @@ -270,6 +541,10 @@ description = "Add colours to the output of Python's logging module." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "colorlog-6.7.0-py2.py3-none-any.whl", hash = "sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662"}, + {file = "colorlog-6.7.0.tar.gz", hash = "sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5"}, +] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} @@ -284,6 +559,10 @@ description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus- category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "comm-0.1.3-py3-none-any.whl", hash = "sha256:16613c6211e20223f215fc6d3b266a247b6e2641bf4e0a3ad34cb1aff2aa3f37"}, + {file = "comm-0.1.3.tar.gz", hash = "sha256:a61efa9daffcfbe66fd643ba966f846a624e4e6d6767eda9cf6e993aadaab93e"}, +] [package.dependencies] traitlets = ">=5.3" @@ -300,24 +579,134 @@ description = "Python library for calculating contours of 2D quadrilateral grids category = "dev" optional = false python-versions = ">=3.8" - -[package.dependencies] -numpy = ">=1.16" - -[package.extras] -bokeh = ["bokeh", "chromedriver", "selenium"] -docs = ["furo", "sphinx-copybutton"] -mypy = ["contourpy[bokeh]", "docutils-stubs", "mypy (==0.991)", "types-Pillow"] -test = ["Pillow", "matplotlib", "pytest"] -test-no-images = ["pytest"] - -[[package]] -name = "coverage" +files = [ + {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:95c3acddf921944f241b6773b767f1cbce71d03307270e2d769fd584d5d1092d"}, + {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc1464c97579da9f3ab16763c32e5c5d5bb5fa1ec7ce509a4ca6108b61b84fab"}, + {file = "contourpy-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8acf74b5d383414401926c1598ed77825cd530ac7b463ebc2e4f46638f56cce6"}, + {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c71fdd8f1c0f84ffd58fca37d00ca4ebaa9e502fb49825484da075ac0b0b803"}, + {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f99e9486bf1bb979d95d5cffed40689cb595abb2b841f2991fc894b3452290e8"}, + {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87f4d8941a9564cda3f7fa6a6cd9b32ec575830780677932abdec7bcb61717b0"}, + {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e20e5a1908e18aaa60d9077a6d8753090e3f85ca25da6e25d30dc0a9e84c2c6"}, + {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a877ada905f7d69b2a31796c4b66e31a8068b37aa9b78832d41c82fc3e056ddd"}, + {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6381fa66866b0ea35e15d197fc06ac3840a9b2643a6475c8fff267db8b9f1e69"}, + {file = "contourpy-1.0.7-cp310-cp310-win32.whl", hash = "sha256:3c184ad2433635f216645fdf0493011a4667e8d46b34082f5a3de702b6ec42e3"}, + {file = "contourpy-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:3caea6365b13119626ee996711ab63e0c9d7496f65641f4459c60a009a1f3e80"}, + {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed33433fc3820263a6368e532f19ddb4c5990855e4886088ad84fd7c4e561c71"}, + {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38e2e577f0f092b8e6774459317c05a69935a1755ecfb621c0a98f0e3c09c9a5"}, + {file = "contourpy-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae90d5a8590e5310c32a7630b4b8618cef7563cebf649011da80874d0aa8f414"}, + {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130230b7e49825c98edf0b428b7aa1125503d91732735ef897786fe5452b1ec2"}, + {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58569c491e7f7e874f11519ef46737cea1d6eda1b514e4eb5ac7dab6aa864d02"}, + {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54d43960d809c4c12508a60b66cb936e7ed57d51fb5e30b513934a4a23874fae"}, + {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:152fd8f730c31fd67fe0ffebe1df38ab6a669403da93df218801a893645c6ccc"}, + {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9056c5310eb1daa33fc234ef39ebfb8c8e2533f088bbf0bc7350f70a29bde1ac"}, + {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a9d7587d2fdc820cc9177139b56795c39fb8560f540bba9ceea215f1f66e1566"}, + {file = "contourpy-1.0.7-cp311-cp311-win32.whl", hash = "sha256:4ee3ee247f795a69e53cd91d927146fb16c4e803c7ac86c84104940c7d2cabf0"}, + {file = "contourpy-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:5caeacc68642e5f19d707471890f037a13007feba8427eb7f2a60811a1fc1350"}, + {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd7dc0e6812b799a34f6d12fcb1000539098c249c8da54f3566c6a6461d0dbad"}, + {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0f9d350b639db6c2c233d92c7f213d94d2e444d8e8fc5ca44c9706cf72193772"}, + {file = "contourpy-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e96a08b62bb8de960d3a6afbc5ed8421bf1a2d9c85cc4ea73f4bc81b4910500f"}, + {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:031154ed61f7328ad7f97662e48660a150ef84ee1bc8876b6472af88bf5a9b98"}, + {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e9ebb4425fc1b658e13bace354c48a933b842d53c458f02c86f371cecbedecc"}, + {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efb8f6d08ca7998cf59eaf50c9d60717f29a1a0a09caa46460d33b2924839dbd"}, + {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6c180d89a28787e4b73b07e9b0e2dac7741261dbdca95f2b489c4f8f887dd810"}, + {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b8d587cc39057d0afd4166083d289bdeff221ac6d3ee5046aef2d480dc4b503c"}, + {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:769eef00437edf115e24d87f8926955f00f7704bede656ce605097584f9966dc"}, + {file = "contourpy-1.0.7-cp38-cp38-win32.whl", hash = "sha256:62398c80ef57589bdbe1eb8537127321c1abcfdf8c5f14f479dbbe27d0322e66"}, + {file = "contourpy-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:57119b0116e3f408acbdccf9eb6ef19d7fe7baf0d1e9aaa5381489bc1aa56556"}, + {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30676ca45084ee61e9c3da589042c24a57592e375d4b138bd84d8709893a1ba4"}, + {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e927b3868bd1e12acee7cc8f3747d815b4ab3e445a28d2e5373a7f4a6e76ba1"}, + {file = "contourpy-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:366a0cf0fc079af5204801786ad7a1c007714ee3909e364dbac1729f5b0849e5"}, + {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89ba9bb365446a22411f0673abf6ee1fea3b2cf47b37533b970904880ceb72f3"}, + {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71b0bf0c30d432278793d2141362ac853859e87de0a7dee24a1cea35231f0d50"}, + {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7281244c99fd7c6f27c1c6bfafba878517b0b62925a09b586d88ce750a016d2"}, + {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b6d0f9e1d39dbfb3977f9dd79f156c86eb03e57a7face96f199e02b18e58d32a"}, + {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7f6979d20ee5693a1057ab53e043adffa1e7418d734c1532e2d9e915b08d8ec2"}, + {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5dd34c1ae752515318224cba7fc62b53130c45ac6a1040c8b7c1a223c46e8967"}, + {file = "contourpy-1.0.7-cp39-cp39-win32.whl", hash = "sha256:c5210e5d5117e9aec8c47d9156d1d3835570dd909a899171b9535cb4a3f32693"}, + {file = "contourpy-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:60835badb5ed5f4e194a6f21c09283dd6e007664a86101431bf870d9e86266c4"}, + {file = "contourpy-1.0.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ce41676b3d0dd16dbcfabcc1dc46090aaf4688fd6e819ef343dbda5a57ef0161"}, + {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a011cf354107b47c58ea932d13b04d93c6d1d69b8b6dce885e642531f847566"}, + {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31a55dccc8426e71817e3fe09b37d6d48ae40aae4ecbc8c7ad59d6893569c436"}, + {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69f8ff4db108815addd900a74df665e135dbbd6547a8a69333a68e1f6e368ac2"}, + {file = "contourpy-1.0.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efe99298ba37e37787f6a2ea868265465410822f7bea163edcc1bd3903354ea9"}, + {file = "contourpy-1.0.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a1e97b86f73715e8670ef45292d7cc033548266f07d54e2183ecb3c87598888f"}, + {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc331c13902d0f50845099434cd936d49d7a2ca76cb654b39691974cb1e4812d"}, + {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24847601071f740837aefb730e01bd169fbcaa610209779a78db7ebb6e6a7051"}, + {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abf298af1e7ad44eeb93501e40eb5a67abbf93b5d90e468d01fc0c4451971afa"}, + {file = "contourpy-1.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:64757f6460fc55d7e16ed4f1de193f362104285c667c112b50a804d482777edd"}, + {file = "contourpy-1.0.7.tar.gz", hash = "sha256:d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e"}, +] + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "chromedriver", "selenium"] +docs = ["furo", "sphinx-copybutton"] +mypy = ["contourpy[bokeh]", "docutils-stubs", "mypy (==0.991)", "types-Pillow"] +test = ["Pillow", "matplotlib", "pytest"] +test-no-images = ["pytest"] + +[[package]] +name = "coverage" version = "7.2.2" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "coverage-7.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c90e73bdecb7b0d1cea65a08cb41e9d672ac6d7995603d6465ed4914b98b9ad7"}, + {file = "coverage-7.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e2926b8abedf750c2ecf5035c07515770944acf02e1c46ab08f6348d24c5f94d"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57b77b9099f172804e695a40ebaa374f79e4fb8b92f3e167f66facbf92e8e7f5"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe1c0adad110bf0ad7fb59f833880e489a61e39d699d37249bdf42f80590169"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2199988e0bc8325d941b209f4fd1c6fa007024b1442c5576f1a32ca2e48941e6"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:81f63e0fb74effd5be736cfe07d710307cc0a3ccb8f4741f7f053c057615a137"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:186e0fc9cf497365036d51d4d2ab76113fb74f729bd25da0975daab2e107fd90"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:420f94a35e3e00a2b43ad5740f935358e24478354ce41c99407cddd283be00d2"}, + {file = "coverage-7.2.2-cp310-cp310-win32.whl", hash = "sha256:38004671848b5745bb05d4d621526fca30cee164db42a1f185615f39dc997292"}, + {file = "coverage-7.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:0ce383d5f56d0729d2dd40e53fe3afeb8f2237244b0975e1427bfb2cf0d32bab"}, + {file = "coverage-7.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3eb55b7b26389dd4f8ae911ba9bc8c027411163839dea4c8b8be54c4ee9ae10b"}, + {file = "coverage-7.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2b96123a453a2d7f3995ddb9f28d01fd112319a7a4d5ca99796a7ff43f02af5"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:299bc75cb2a41e6741b5e470b8c9fb78d931edbd0cd009c58e5c84de57c06731"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e1df45c23d4230e3d56d04414f9057eba501f78db60d4eeecfcb940501b08fd"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:006ed5582e9cbc8115d2e22d6d2144a0725db542f654d9d4fda86793832f873d"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d683d230b5774816e7d784d7ed8444f2a40e7a450e5720d58af593cb0b94a212"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8efb48fa743d1c1a65ee8787b5b552681610f06c40a40b7ef94a5b517d885c54"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c752d5264053a7cf2fe81c9e14f8a4fb261370a7bb344c2a011836a96fb3f57"}, + {file = "coverage-7.2.2-cp311-cp311-win32.whl", hash = "sha256:55272f33da9a5d7cccd3774aeca7a01e500a614eaea2a77091e9be000ecd401d"}, + {file = "coverage-7.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:92ebc1619650409da324d001b3a36f14f63644c7f0a588e331f3b0f67491f512"}, + {file = "coverage-7.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5afdad4cc4cc199fdf3e18088812edcf8f4c5a3c8e6cb69127513ad4cb7471a9"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0484d9dd1e6f481b24070c87561c8d7151bdd8b044c93ac99faafd01f695c78e"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d530191aa9c66ab4f190be8ac8cc7cfd8f4f3217da379606f3dd4e3d83feba69"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac0f522c3b6109c4b764ffec71bf04ebc0523e926ca7cbe6c5ac88f84faced0"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ba279aae162b20444881fc3ed4e4f934c1cf8620f3dab3b531480cf602c76b7f"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:53d0fd4c17175aded9c633e319360d41a1f3c6e352ba94edcb0fa5167e2bad67"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c99cb7c26a3039a8a4ee3ca1efdde471e61b4837108847fb7d5be7789ed8fd9"}, + {file = "coverage-7.2.2-cp37-cp37m-win32.whl", hash = "sha256:5cc0783844c84af2522e3a99b9b761a979a3ef10fb87fc4048d1ee174e18a7d8"}, + {file = "coverage-7.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:817295f06eacdc8623dc4df7d8b49cea65925030d4e1e2a7c7218380c0072c25"}, + {file = "coverage-7.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6146910231ece63facfc5984234ad1b06a36cecc9fd0c028e59ac7c9b18c38c6"}, + {file = "coverage-7.2.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:387fb46cb8e53ba7304d80aadca5dca84a2fbf6fe3faf6951d8cf2d46485d1e5"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:046936ab032a2810dcaafd39cc4ef6dd295df1a7cbead08fe996d4765fca9fe4"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e627dee428a176ffb13697a2c4318d3f60b2ccdde3acdc9b3f304206ec130ccd"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fa54fb483decc45f94011898727802309a109d89446a3c76387d016057d2c84"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3668291b50b69a0c1ef9f462c7df2c235da3c4073f49543b01e7eb1dee7dd540"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7c20b731211261dc9739bbe080c579a1835b0c2d9b274e5fcd903c3a7821cf88"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5764e1f7471cb8f64b8cda0554f3d4c4085ae4b417bfeab236799863703e5de2"}, + {file = "coverage-7.2.2-cp38-cp38-win32.whl", hash = "sha256:4f01911c010122f49a3e9bdc730eccc66f9b72bd410a3a9d3cb8448bb50d65d3"}, + {file = "coverage-7.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:c448b5c9e3df5448a362208b8d4b9ed85305528313fca1b479f14f9fe0d873b8"}, + {file = "coverage-7.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfe7085783cda55e53510482fa7b5efc761fad1abe4d653b32710eb548ebdd2d"}, + {file = "coverage-7.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9d22e94e6dc86de981b1b684b342bec5e331401599ce652900ec59db52940005"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:507e4720791977934bba016101579b8c500fb21c5fa3cd4cf256477331ddd988"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc4803779f0e4b06a2361f666e76f5c2e3715e8e379889d02251ec911befd149"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db8c2c5ace167fd25ab5dd732714c51d4633f58bac21fb0ff63b0349f62755a8"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f68ee32d7c4164f1e2c8797535a6d0a3733355f5861e0f667e37df2d4b07140"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d52f0a114b6a58305b11a5cdecd42b2e7f1ec77eb20e2b33969d702feafdd016"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:797aad79e7b6182cb49c08cc5d2f7aa7b2128133b0926060d0a8889ac43843be"}, + {file = "coverage-7.2.2-cp39-cp39-win32.whl", hash = "sha256:db45eec1dfccdadb179b0f9ca616872c6f700d23945ecc8f21bb105d74b1c5fc"}, + {file = "coverage-7.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:8dbe2647bf58d2c5a6c5bcc685f23b5f371909a5624e9f5cd51436d6a9f6c6ef"}, + {file = "coverage-7.2.2-pp37.pp38.pp39-none-any.whl", hash = "sha256:872d6ce1f5be73f05bea4df498c140b9e7ee5418bfa2cc8204e7f9b817caa968"}, + {file = "coverage-7.2.2.tar.gz", hash = "sha256:36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2"}, +] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} @@ -332,6 +721,10 @@ description = "Composable style cycles" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, + {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, +] [[package]] name = "debugpy" @@ -340,6 +733,25 @@ description = "An implementation of the Debug Adapter Protocol for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "debugpy-1.6.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664"}, + {file = "debugpy-1.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e"}, + {file = "debugpy-1.6.6-cp310-cp310-win32.whl", hash = "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494"}, + {file = "debugpy-1.6.6-cp310-cp310-win_amd64.whl", hash = "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917"}, + {file = "debugpy-1.6.6-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110"}, + {file = "debugpy-1.6.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca"}, + {file = "debugpy-1.6.6-cp37-cp37m-win32.whl", hash = "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b"}, + {file = "debugpy-1.6.6-cp37-cp37m-win_amd64.whl", hash = "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305"}, + {file = "debugpy-1.6.6-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e"}, + {file = "debugpy-1.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c"}, + {file = "debugpy-1.6.6-cp38-cp38-win32.whl", hash = "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32"}, + {file = "debugpy-1.6.6-cp38-cp38-win_amd64.whl", hash = "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225"}, + {file = "debugpy-1.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6"}, + {file = "debugpy-1.6.6-cp39-cp39-win32.whl", hash = "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe"}, + {file = "debugpy-1.6.6-cp39-cp39-win_amd64.whl", hash = "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1"}, + {file = "debugpy-1.6.6-py2.py3-none-any.whl", hash = "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115"}, + {file = "debugpy-1.6.6.zip", hash = "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67"}, +] [[package]] name = "decorator" @@ -348,6 +760,10 @@ description = "Decorators for Humans" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] [[package]] name = "defusedxml" @@ -356,6 +772,10 @@ description = "XML bomb protection for Python stdlib modules" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] [[package]] name = "dill" @@ -364,6 +784,10 @@ description = "serialize all of python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, + {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, +] [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -375,6 +799,10 @@ description = "Distribution utilities" category = "dev" optional = false python-versions = "*" +files = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] [[package]] name = "dm-tree" @@ -383,6 +811,47 @@ description = "Tree is a library for working with nested data structures." category = "main" optional = false python-versions = "*" +files = [ + {file = "dm-tree-0.1.8.tar.gz", hash = "sha256:0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430"}, + {file = "dm_tree-0.1.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:35cc164a79336bfcfafb47e5f297898359123bbd3330c1967f0c4994f9cf9f60"}, + {file = "dm_tree-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39070ba268c0491af9fe7a58644d99e8b4f2cde6e5884ba3380bddc84ed43d5f"}, + {file = "dm_tree-0.1.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2869228d9c619074de501a3c10dc7f07c75422f8fab36ecdcb859b6f1b1ec3ef"}, + {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d20f2faa3672b52e5013f4077117bfb99c4cfc0b445d3bde1584c34032b57436"}, + {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5483dca4d7eb1a0d65fe86d3b6a53ae717face83c1f17e0887b1a4a64ae5c410"}, + {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d7c26e431fc93cc7e0cba867eb000db6a05f6f2b25af11ac4e9dada88fc5bca"}, + {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d714371bb08839e4e5e29024fc95832d9affe129825ef38836b143028bd144"}, + {file = "dm_tree-0.1.8-cp310-cp310-win_amd64.whl", hash = "sha256:d40fa4106ca6edc66760246a08f500ec0c85ef55c762fb4a363f6ee739ba02ee"}, + {file = "dm_tree-0.1.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad16ceba90a56ec47cf45b21856d14962ac314787975ef786efb5e6e9ca75ec7"}, + {file = "dm_tree-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:803bfc53b4659f447ac694dbd04235f94a73ef7c1fd1e0df7c84ac41e0bc963b"}, + {file = "dm_tree-0.1.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:378cc8ad93c5fe3590f405a309980721f021c790ca1bdf9b15bb1d59daec57f5"}, + {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1607ce49aa42f010d1e5e616d92ce899d66835d4d8bea49679582435285515de"}, + {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:343a4a4ebaa127451ff971254a4be4084eb4bdc0b2513c32b46f6f728fd03f9e"}, + {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa42a605d099ee7d41ba2b5fb75e21423951fd26e5d50583a00471238fb3021d"}, + {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b7764de0d855338abefc6e3ee9fe40d301668310aa3baea3f778ff051f4393"}, + {file = "dm_tree-0.1.8-cp311-cp311-win_amd64.whl", hash = "sha256:a5d819c38c03f0bb5b3b3703c60e4b170355a0fc6b5819325bf3d4ceb3ae7e80"}, + {file = "dm_tree-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8c60a7eadab64c2278861f56bca320b2720f163dca9d7558103c3b77f2416571"}, + {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af4b3d372f2477dcd89a6e717e4a575ca35ccc20cc4454a8a4b6f8838a00672d"}, + {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de287fabc464b8734be251e46e06aa9aa1001f34198da2b6ce07bd197172b9cb"}, + {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:054b461f8176f4bce7a21f7b1870f873a1ced3bdbe1282c816c550bb43c71fa6"}, + {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f7915660f59c09068e428613c480150180df1060561fd0d1470684ae7007bd1"}, + {file = "dm_tree-0.1.8-cp37-cp37m-win_amd64.whl", hash = "sha256:b9f89a454e98806b44fe9d40ec9eee61f848388f7e79ac2371a55679bd5a3ac6"}, + {file = "dm_tree-0.1.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0e9620ccf06393eb6b613b5e366469304622d4ea96ae6540b28a33840e6c89cf"}, + {file = "dm_tree-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b095ba4f8ca1ba19350fd53cf1f8f3eb0bd406aa28af64a6dfc86707b32a810a"}, + {file = "dm_tree-0.1.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b9bd9b9ccb59409d33d51d84b7668010c04c2af7d4a371632874c1ca356cff3d"}, + {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d3172394079a86c3a759179c65f64c48d1a42b89495fcf38976d11cc3bb952c"}, + {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1612fcaecd79023dbc6a6ae48d51a80beb5c385d6f3f6d71688e57bc8d07de8"}, + {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5c8c12e3fda754ef6af94161bacdaeda816d941995fac415d6855c6c386af68"}, + {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:694c3654cfd2a81552c08ec66bb5c4a3d48fa292b9a181880fb081c36c5b9134"}, + {file = "dm_tree-0.1.8-cp38-cp38-win_amd64.whl", hash = "sha256:bb2d109f42190225112da899b9f3d46d0d5f26aef501c61e43529fe9322530b5"}, + {file = "dm_tree-0.1.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d16e1f2a073604cfcc09f7131ae8d534674f43c3aef4c25742eae295bc60d04f"}, + {file = "dm_tree-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:250b692fb75f45f02e2f58fbef9ab338904ef334b90557565621fa251df267cf"}, + {file = "dm_tree-0.1.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81fce77f22a302d7a5968aebdf4efafef4def7ce96528719a354e6990dcd49c7"}, + {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ac31b9aecccb2c6e1ab29706f6ded3eba0c2c69c770322c9c685929c3d6afb"}, + {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe962015b2fe1282892b28ebe962faed53c7f98d942da9a4625cbf27baef913"}, + {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c52cbf4f8b3dbd0beaedf44f69fa85eec5e9dede612e08035e06ada6ec9426"}, + {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:181c35521d480d0365f39300542cb6cd7fd2b77351bb43d7acfda15aef63b317"}, + {file = "dm_tree-0.1.8-cp39-cp39-win_amd64.whl", hash = "sha256:8ed3564abed97c806db122c2d3e1a2b64c74a63debe9903aad795167cc301368"}, +] [[package]] name = "docutils" @@ -391,6 +860,10 @@ description = "Docutils -- Python Documentation Utilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] [[package]] name = "etils" @@ -399,6 +872,10 @@ description = "Collection of common python utils" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "etils-1.2.0-py3-none-any.whl", hash = "sha256:c6585069b387fdbeed6a2c571b8bcf312ecdb577c95065461e5fad9ed1973989"}, + {file = "etils-1.2.0.tar.gz", hash = "sha256:29d369e2dcf43960d9ee338330579d04badd606c88f015f4e1a38d3adbe446d8"}, +] [package.extras] all = ["etils[array-types]", "etils[eapp]", "etils[ecolab]", "etils[edc]", "etils[enp]", "etils[epath]", "etils[epy]", "etils[etqdm]", "etils[etree-dm]", "etils[etree-jax]", "etils[etree-tf]", "etils[etree]"] @@ -424,6 +901,10 @@ description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] [package.extras] test = ["pytest (>=6)"] @@ -435,6 +916,10 @@ description = "execnet: rapid multi-Python deployment" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, + {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, +] [package.extras] testing = ["pre-commit"] @@ -446,6 +931,10 @@ description = "Get the currently executing AST node of a frame, and other inform category = "dev" optional = false python-versions = "*" +files = [ + {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, + {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, +] [package.extras] tests = ["asttokens", "littleutils", "pytest", "rich"] @@ -457,6 +946,10 @@ description = "Fastest Python implementation of JSON schema" category = "dev" optional = false python-versions = "*" +files = [ + {file = "fastjsonschema-2.16.3-py3-none-any.whl", hash = "sha256:04fbecc94300436f628517b05741b7ea009506ce8f946d40996567c669318490"}, + {file = "fastjsonschema-2.16.3.tar.gz", hash = "sha256:4a30d6315a68c253cfa8f963b9697246315aa3db89f98b97235e345dedfb0b8e"}, +] [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] @@ -468,6 +961,10 @@ description = "A nested progress with plotting options for fastai" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "fastprogress-1.0.3-py3-none-any.whl", hash = "sha256:6dfea88f7a4717b0a8d6ee2048beae5dbed369f932a368c5dd9caff34796f7c5"}, + {file = "fastprogress-1.0.3.tar.gz", hash = "sha256:7a17d2b438890f838c048eefce32c4ded47197ecc8ea042cecc33d3deb8022f5"}, +] [[package]] name = "filelock" @@ -476,6 +973,10 @@ description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "filelock-3.10.7-py3-none-any.whl", hash = "sha256:bde48477b15fde2c7e5a0713cbe72721cb5a5ad32ee0b8f419907960b9d75536"}, + {file = "filelock-3.10.7.tar.gz", hash = "sha256:892be14aa8efc01673b5ed6589dbccb95f9a8596f0507e232626155495c18105"}, +] [package.extras] docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] @@ -488,6 +989,10 @@ description = "Flax: A neural network library for JAX designed for flexibility" category = "dev" optional = false python-versions = "*" +files = [ + {file = "flax-0.6.8-py3-none-any.whl", hash = "sha256:221225804c263e39fe3cc8f754dc4192597cb0f063926b2338ea6563604747ed"}, + {file = "flax-0.6.8.tar.gz", hash = "sha256:bf1f81dd5dfbb10c603490531a86b1174ebbc38e5c5e8116a98115c135194c10"}, +] [package.dependencies] jax = ">=0.4.2" @@ -511,6 +1016,10 @@ description = "Tools to manipulate font files" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "fonttools-4.39.2-py3-none-any.whl", hash = "sha256:85245aa2fd4cf502a643c9a9a2b5a393703e150a6eaacc3e0e84bb448053f061"}, + {file = "fonttools-4.39.2.zip", hash = "sha256:e2d9f10337c9e3b17f9bce17a60a16a885a7d23b59b7f45ce07ea643e5580439"}, +] [package.extras] all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.0.0)", "xattr", "zopfli (>=0.1.4)"] @@ -533,6 +1042,10 @@ description = "Python AST that abstracts the underlying Python version" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "gast-0.5.3-py3-none-any.whl", hash = "sha256:211aac1e58c167b25d3504998f2db694454a24bb1fb1225bce99420166f21d6a"}, + {file = "gast-0.5.3.tar.gz", hash = "sha256:cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"}, +] [[package]] name = "idna" @@ -541,6 +1054,10 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] [[package]] name = "imagesize" @@ -549,6 +1066,10 @@ description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] name = "importlib-metadata" @@ -557,6 +1078,10 @@ description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_metadata-6.1.0-py3-none-any.whl", hash = "sha256:ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09"}, + {file = "importlib_metadata-6.1.0.tar.gz", hash = "sha256:43ce9281e097583d758c2c708c4376371261a02c34682491a8e98352365aad20"}, +] [package.dependencies] zipp = ">=0.5" @@ -573,6 +1098,10 @@ description = "Read resources from Python packages" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, + {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, +] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} @@ -588,6 +1117,10 @@ description = "brain-dead simple config-ini parsing" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] [[package]] name = "ipykernel" @@ -596,6 +1129,10 @@ description = "IPython Kernel for Jupyter" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.22.0-py3-none-any.whl", hash = "sha256:1ae6047c1277508933078163721bbb479c3e7292778a04b4bacf0874550977d6"}, + {file = "ipykernel-6.22.0.tar.gz", hash = "sha256:302558b81f1bc22dc259fb2a0c5c7cf2f4c0bdb21b50484348f7bafe7fb71421"}, +] [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} @@ -626,6 +1163,10 @@ description = "IPython: Productive Interactive Computing" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "ipython-8.11.0-py3-none-any.whl", hash = "sha256:5b54478e459155a326bf5f42ee4f29df76258c0279c36f21d71ddb560f88b156"}, + {file = "ipython-8.11.0.tar.gz", hash = "sha256:735cede4099dbc903ee540307b9171fbfef4aa75cfcacc5a273b2cda2f02be04"}, +] [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} @@ -661,6 +1202,10 @@ description = "Jupyter interactive widgets" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.0.5-py3-none-any.whl", hash = "sha256:a6e5c0392f86207fae304688a670afb26b2fd819592cfc0812777c2fdf22dbad"}, + {file = "ipywidgets-8.0.5.tar.gz", hash = "sha256:89a1930b9ef255838571a2415cc4a15e824e4316b8f067805d1d03b98b6a8c5f"}, +] [package.dependencies] ipython = ">=6.1.0" @@ -678,6 +1223,10 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] [package.extras] colors = ["colorama (>=0.4.3)"] @@ -692,6 +1241,9 @@ description = "Differentiate, compile, and transform Numpy code." category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "jax-0.4.8.tar.gz", hash = "sha256:08116481f7336db16c24812bfb5e6f9786915f4c2f6ff4028331fa69e7535202"}, +] [package.dependencies] ml_dtypes = ">=0.0.3" @@ -720,6 +1272,20 @@ description = "XLA library for JAX" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "jaxlib-0.4.7-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:63c2890978e8646516db3d8a680b43d2bed8b63543a70556391f589a261bd85f"}, + {file = "jaxlib-0.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c16f922507277d5630e81d9c1a4974366a27aad5230d645d063bc2011564d01"}, + {file = "jaxlib-0.4.7-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:da88382e6487805974cea6facc61ba92b5828a7a1f2dd80f762c487d873a2b47"}, + {file = "jaxlib-0.4.7-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:022b216036c009989d4c0683538820c19247215bb99fdd35c7bf32838d596be6"}, + {file = "jaxlib-0.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d0f1d3b6ef6c68013898cca958ab1507d6809b523275037efbdb9aaaaab158ba"}, + {file = "jaxlib-0.4.7-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:0ae7178c33460822d9d8d03718cba395e02e6bac2402709c35826c94f0c9cc7b"}, + {file = "jaxlib-0.4.7-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:ea07605e37d2b4e25f3c639e0d22ab4605fbc1a10ea918fd14ce09077bdaffb6"}, + {file = "jaxlib-0.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:48b85d3c8923b1619ddf8cbf14c4e4daf6919796d8aa9d006ce2a085e8202930"}, + {file = "jaxlib-0.4.7-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a860f2990c97bee5ffcdbb5111751591e5e7a66d5e32b4f6d9e6aa14ac82bf27"}, + {file = "jaxlib-0.4.7-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c78dc2b6fa1c92ead137a23d1bd3e10d04c58b268e77eca811502abac05b2b19"}, + {file = "jaxlib-0.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f1f3726e374d0d6fcc14da540b71b758d37356c6726f0f4b48e2f5530a5f8769"}, + {file = "jaxlib-0.4.7-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:d4629205dbe342153941db5f69c4a1bfe35fd8d2947aebe34f4dff3771d3fff7"}, +] [package.dependencies] ml-dtypes = ">=0.0.3" @@ -733,6 +1299,10 @@ description = "Hardware accelerated, batchable and differentiable optimizers in category = "dev" optional = false python-versions = "*" +files = [ + {file = "jaxopt-0.6-py3-none-any.whl", hash = "sha256:69af71c39969e9e5fa54bd50cbab3e18f6c32659d92e1bf56912a24c8ad0fca6"}, + {file = "jaxopt-0.6.tar.gz", hash = "sha256:19df9cb745ee39fa27f9ba4f01bbec5b0e3a8a1f60320aff553131a5f152c9fa"}, +] [package.dependencies] absl-py = ">=0.7.0" @@ -749,6 +1319,10 @@ description = "Type annotations and runtime checking for shape and dtype of JAX category = "main" optional = false python-versions = "~=3.8" +files = [ + {file = "jaxtyping-0.2.14-py3-none-any.whl", hash = "sha256:91de0ef79a7ee497c4b5c08f096edbcfc7627bec71e865caaf6748e8175e8627"}, + {file = "jaxtyping-0.2.14.tar.gz", hash = "sha256:5b78abbba18e0ca5b4c0870c965e204e0cdfadc1d385c24a0e1fcc15d6b3680d"}, +] [package.dependencies] numpy = ">=1.20.0" @@ -762,6 +1336,10 @@ description = "An autocompletion tool for Python that can be used for text edito category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, + {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, +] [package.dependencies] parso = ">=0.8.0,<0.9.0" @@ -778,6 +1356,10 @@ description = "A very fast and expressive template engine." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] [package.dependencies] MarkupSafe = ">=2.0" @@ -792,6 +1374,10 @@ description = "Lightweight pipelining with Python functions" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "joblib-1.2.0-py3-none-any.whl", hash = "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385"}, + {file = "joblib-1.2.0.tar.gz", hash = "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"}, +] [[package]] name = "jsonschema" @@ -800,6 +1386,10 @@ description = "An implementation of JSON Schema validation for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] [package.dependencies] attrs = ">=17.4.0" @@ -818,6 +1408,10 @@ description = "Jupyter protocol implementation and client libraries" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.1.0-py3-none-any.whl", hash = "sha256:d5b8e739d7816944be50f81121a109788a3d92732ecf1ad1e4dadebc948818fe"}, + {file = "jupyter_client-8.1.0.tar.gz", hash = "sha256:3fbab64100a0dcac7701b1e0f1a4412f1ccb45546ff2ad9bc4fcbe4e19804811"}, +] [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} @@ -838,6 +1432,10 @@ description = "Jupyter core package. A base package on which Jupyter projects re category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.3.0-py3-none-any.whl", hash = "sha256:d4201af84559bc8c70cead287e1ab94aeef3c512848dde077b7684b54d67730d"}, + {file = "jupyter_core-5.3.0.tar.gz", hash = "sha256:6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc"}, +] [package.dependencies] platformdirs = ">=2.5" @@ -855,6 +1453,10 @@ description = "Pygments theme using JupyterLab CSS variables" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, + {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, +] [[package]] name = "jupyterlab-widgets" @@ -863,6 +1465,10 @@ description = "Jupyter interactive widgets for JupyterLab" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.6-py3-none-any.whl", hash = "sha256:e95d08adf4f9c37a57da5fff8a65d00480199885fd2ecd2583fd9560b594b4e9"}, + {file = "jupyterlab_widgets-3.0.6.tar.gz", hash = "sha256:a464d68a7b9ebabdc135196389381412a39503d89302be0867d0ff3b2428ebb8"}, +] [[package]] name = "jupytext" @@ -871,6 +1477,10 @@ description = "Jupyter notebooks as Markdown documents, Julia, Python or R scrip category = "dev" optional = false python-versions = "~=3.6" +files = [ + {file = "jupytext-1.14.5-py3-none-any.whl", hash = "sha256:a5dbe60d0ea158bbf82c2bce74aba8d0c220ad7edcda09e017c5eba229b34dc8"}, + {file = "jupytext-1.14.5.tar.gz", hash = "sha256:976e66be8056459a2067e0ec3ff68cc31e00c31895faf9eb893022d319e8f5b4"}, +] [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" @@ -890,6 +1500,76 @@ description = "A fast implementation of the Cassowary constraint solver" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6"}, + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c"}, + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32"}, + {file = "kiwisolver-1.4.4-cp310-cp310-win32.whl", hash = "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408"}, + {file = "kiwisolver-1.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4"}, + {file = "kiwisolver-1.4.4-cp311-cp311-win32.whl", hash = "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e"}, + {file = "kiwisolver-1.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-win32.whl", hash = "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c"}, + {file = "kiwisolver-1.4.4-cp38-cp38-win32.whl", hash = "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191"}, + {file = "kiwisolver-1.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9"}, + {file = "kiwisolver-1.4.4-cp39-cp39-win32.whl", hash = "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea"}, + {file = "kiwisolver-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b"}, + {file = "kiwisolver-1.4.4.tar.gz", hash = "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"}, +] [[package]] name = "latexcodec" @@ -898,6 +1578,10 @@ description = "A lexer and codec to work with LaTeX code in Python." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, + {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, +] [package.dependencies] six = ">=1.4.1" @@ -909,6 +1593,44 @@ description = "A fast and thorough lazy object proxy." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, +] [[package]] name = "linkify-it-py" @@ -917,6 +1639,10 @@ description = "Links recognition library with FULL unicode support." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "linkify-it-py-2.0.0.tar.gz", hash = "sha256:476464480906bed8b2fa3813bf55566282e55214ad7e41b7d1c2b564666caf2f"}, + {file = "linkify_it_py-2.0.0-py3-none-any.whl", hash = "sha256:1bff43823e24e507a099e328fc54696124423dd6320c75a9da45b4b754b748ad"}, +] [package.dependencies] uc-micro-py = "*" @@ -934,6 +1660,10 @@ description = "Python port of markdown-it. Markdown parsing, done right!" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, + {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, +] [package.dependencies] mdurl = ">=0.1,<1.0" @@ -955,6 +1685,58 @@ description = "Safely add untrusted strings to HTML/XML markup." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, + {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, +] [[package]] name = "matplotlib" @@ -963,6 +1745,49 @@ description = "Python plotting package" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:95cbc13c1fc6844ab8812a525bbc237fa1470863ff3dace7352e910519e194b1"}, + {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:08308bae9e91aca1ec6fd6dda66237eef9f6294ddb17f0d0b3c863169bf82353"}, + {file = "matplotlib-3.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:544764ba51900da4639c0f983b323d288f94f65f4024dc40ecb1542d74dc0500"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56d94989191de3fcc4e002f93f7f1be5da476385dde410ddafbb70686acf00ea"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99bc9e65901bb9a7ce5e7bb24af03675cbd7c70b30ac670aa263240635999a4"}, + {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb7d248c34a341cd4c31a06fd34d64306624c8cd8d0def7abb08792a5abfd556"}, + {file = "matplotlib-3.7.1-cp310-cp310-win32.whl", hash = "sha256:ce463ce590f3825b52e9fe5c19a3c6a69fd7675a39d589e8b5fbe772272b3a24"}, + {file = "matplotlib-3.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d7bc90727351fb841e4d8ae620d2d86d8ed92b50473cd2b42ce9186104ecbba"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:770a205966d641627fd5cf9d3cb4b6280a716522cd36b8b284a8eb1581310f61"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f67bfdb83a8232cb7a92b869f9355d677bce24485c460b19d01970b64b2ed476"}, + {file = "matplotlib-3.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2bf092f9210e105f414a043b92af583c98f50050559616930d884387d0772aba"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89768d84187f31717349c6bfadc0e0d8c321e8eb34522acec8a67b1236a66332"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83111e6388dec67822e2534e13b243cc644c7494a4bb60584edbff91585a83c6"}, + {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a867bf73a7eb808ef2afbca03bcdb785dae09595fbe550e1bab0cd023eba3de0"}, + {file = "matplotlib-3.7.1-cp311-cp311-win32.whl", hash = "sha256:fbdeeb58c0cf0595efe89c05c224e0a502d1aa6a8696e68a73c3efc6bc354304"}, + {file = "matplotlib-3.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c0bd19c72ae53e6ab979f0ac6a3fafceb02d2ecafa023c5cca47acd934d10be7"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:6eb88d87cb2c49af00d3bbc33a003f89fd9f78d318848da029383bfc08ecfbfb"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:cf0e4f727534b7b1457898c4f4ae838af1ef87c359b76dcd5330fa31893a3ac7"}, + {file = "matplotlib-3.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:46a561d23b91f30bccfd25429c3c706afe7d73a5cc64ef2dfaf2b2ac47c1a5dc"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8704726d33e9aa8a6d5215044b8d00804561971163563e6e6591f9dcf64340cc"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4cf327e98ecf08fcbb82685acaf1939d3338548620ab8dfa02828706402c34de"}, + {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:617f14ae9d53292ece33f45cba8503494ee199a75b44de7717964f70637a36aa"}, + {file = "matplotlib-3.7.1-cp38-cp38-win32.whl", hash = "sha256:7c9a4b2da6fac77bcc41b1ea95fadb314e92508bf5493ceff058e727e7ecf5b0"}, + {file = "matplotlib-3.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:14645aad967684e92fc349493fa10c08a6da514b3d03a5931a1bac26e6792bd1"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:81a6b377ea444336538638d31fdb39af6be1a043ca5e343fe18d0f17e098770b"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:28506a03bd7f3fe59cd3cd4ceb2a8d8a2b1db41afede01f66c42561b9be7b4b7"}, + {file = "matplotlib-3.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8c587963b85ce41e0a8af53b9b2de8dddbf5ece4c34553f7bd9d066148dc719c"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8bf26ade3ff0f27668989d98c8435ce9327d24cffb7f07d24ef609e33d582439"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:def58098f96a05f90af7e92fd127d21a287068202aa43b2a93476170ebd99e87"}, + {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f883a22a56a84dba3b588696a2b8a1ab0d2c3d41be53264115c71b0a942d8fdb"}, + {file = "matplotlib-3.7.1-cp39-cp39-win32.whl", hash = "sha256:4f99e1b234c30c1e9714610eb0c6d2f11809c9c78c984a613ae539ea2ad2eb4b"}, + {file = "matplotlib-3.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:3ba2af245e36990facf67fde840a760128ddd71210b2ab6406e640188d69d136"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3032884084f541163f295db8a6536e0abb0db464008fadca6c98aaf84ccf4717"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a2cb34336110e0ed8bb4f650e817eed61fa064acbefeb3591f1b33e3a84fd96"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b867e2f952ed592237a1828f027d332d8ee219ad722345b79a001f49df0936eb"}, + {file = "matplotlib-3.7.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:57bfb8c8ea253be947ccb2bc2d1bb3862c2bccc662ad1b4626e1f5e004557042"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:438196cdf5dc8d39b50a45cb6e3f6274edbcf2254f85fa9b895bf85851c3a613"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:21e9cff1a58d42e74d01153360de92b326708fb205250150018a52c70f43c290"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75d4725d70b7c03e082bbb8a34639ede17f333d7247f56caceb3801cb6ff703d"}, + {file = "matplotlib-3.7.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:97cc368a7268141afb5690760921765ed34867ffb9655dd325ed207af85c7529"}, + {file = "matplotlib-3.7.1.tar.gz", hash = "sha256:7b73305f25eab4541bd7ee0b96d87e53ae9c9f1823be5659b806cd85786fe882"}, +] [package.dependencies] contourpy = ">=1.0.1" @@ -975,7 +1800,6 @@ packaging = ">=20.0" pillow = ">=6.2.0" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" -setuptools_scm = ">=7" [[package]] name = "matplotlib-inline" @@ -984,8 +1808,12 @@ description = "Inline Matplotlib backend for Jupyter" category = "dev" optional = false python-versions = ">=3.5" - -[package.dependencies] +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] + +[package.dependencies] traitlets = "*" [[package]] @@ -995,6 +1823,10 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] [[package]] name = "mdit-py-plugins" @@ -1003,6 +1835,10 @@ description = "Collection of plugins for markdown-it-py" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, + {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, +] [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" @@ -1019,6 +1855,10 @@ description = "Markdown URL utilities" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] [[package]] name = "mistune" @@ -1027,6 +1867,10 @@ description = "A sane Markdown parser with useful plugins and renderers" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, + {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, +] [[package]] name = "ml-dtypes" @@ -1035,6 +1879,25 @@ description = "" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "ml_dtypes-0.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a03c5acc55a878fac190d428ef01438f930cbef3fb8625c8c8fd2e3adc277607"}, + {file = "ml_dtypes-0.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e600aa70a9f8ee85c9488eb14852124c878ec824c3c7996d2d82010655eabfe"}, + {file = "ml_dtypes-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74c1fb29d2e586f643fb1a70b1dffe9fc35bc3ad8c76ec0797b2bf9f7ac128b"}, + {file = "ml_dtypes-0.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:b3f49901eb42cac259156edc17d4c1922ac47ddd1fe3c05169f445135a07319c"}, + {file = "ml_dtypes-0.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:52aaa9318e2a4ec65a6bc4842df3442a9cfa00a9b8365a08e0370b0dfefc3a5a"}, + {file = "ml_dtypes-0.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9912d50466d386a4016b16f889722183f6d6c03d9e478fdf62f41e50de0059"}, + {file = "ml_dtypes-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ece1269b5311489e26b3f3181d498b8829042f380cd160d7fe02f2393f69a71"}, + {file = "ml_dtypes-0.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:68d2e6c83c762aa6d476ea715ce6b2ac67f519c242cfe93d7a49cb76a83f6650"}, + {file = "ml_dtypes-0.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:85085f9dac85b1eee5f7d2044c47bb3df72abc7785d38d176744fde5782b76ce"}, + {file = "ml_dtypes-0.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75ef23de72daf5efcc99799dfaa387386b79502a123909b0d3098ef84ffa6fa"}, + {file = "ml_dtypes-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b651fa1f91ce83cf037db202cd2601ac9b649016ec8593459c0295e613bf47"}, + {file = "ml_dtypes-0.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:b28c6b7831fa2cbb3169ed3053f10fb11d0415e2f250b893eb874e3af747a1f3"}, + {file = "ml_dtypes-0.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:23ff15cd9ba61cc42287097c30ae6841facd6dc14cc252f977d6430b8cd6eccc"}, + {file = "ml_dtypes-0.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b148131da64f85053b79380cf34471eb869f7c027e2198a0c86d5e6fc9531f"}, + {file = "ml_dtypes-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc64866c1848999fab6f4a2938e769aed95b964085ebdcd7cd45e350192e457"}, + {file = "ml_dtypes-0.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:e64869be11c830736c40513c47918c421a8385243846f1e8fd838793d866aa87"}, + {file = "ml_dtypes-0.0.4.tar.gz", hash = "sha256:45623c738d477d7a0f3f8e4c94998dc49025202c520e62e27f0ef688db2f696f"}, +] [package.dependencies] numpy = [ @@ -1053,6 +1916,71 @@ description = "MessagePack serializer" category = "main" optional = false python-versions = "*" +files = [ + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, + {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, + {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, + {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, + {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, + {file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"}, + {file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"}, + {file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"}, + {file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"}, + {file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"}, + {file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, + {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, + {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, + {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, + {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, + {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, +] [[package]] name = "mypy-extensions" @@ -1061,6 +1989,10 @@ description = "Type system extensions for programs checked with the mypy type ch category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] [[package]] name = "myst-parser" @@ -1069,6 +2001,10 @@ description = "An extended [CommonMark](https://spec.commonmark.org/) compliant category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "myst-parser-1.0.0.tar.gz", hash = "sha256:502845659313099542bd38a2ae62f01360e7dd4b1310f025dd014dfc0439cdae"}, + {file = "myst_parser-1.0.0-py3-none-any.whl", hash = "sha256:69fb40a586c6fa68995e6521ac0a525793935db7e724ca9bac1d33be51be9a4c"}, +] [package.dependencies] docutils = ">=0.15,<0.20" @@ -1092,6 +2028,10 @@ description = "A client library for executing notebooks. Formerly nbconvert's Ex category = "dev" optional = false python-versions = ">=3.7.0" +files = [ + {file = "nbclient-0.7.2-py3-none-any.whl", hash = "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c"}, + {file = "nbclient-0.7.2.tar.gz", hash = "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547"}, +] [package.dependencies] jupyter-client = ">=6.1.12" @@ -1111,6 +2051,10 @@ description = "Converting Jupyter Notebooks" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "nbconvert-7.2.10-py3-none-any.whl", hash = "sha256:e41118f81698d3d59b3c7c2887937446048f741aba6c367c1c1a77810b3e2d08"}, + {file = "nbconvert-7.2.10.tar.gz", hash = "sha256:8eed67bd8314f3ec87c4351c2f674af3a04e5890ab905d6bd927c05aec1cf27d"}, +] [package.dependencies] beautifulsoup4 = "*" @@ -1146,6 +2090,10 @@ description = "The Jupyter Notebook format" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "nbformat-5.8.0-py3-none-any.whl", hash = "sha256:d910082bd3e0bffcf07eabf3683ed7dda0727a326c446eeb2922abe102e65162"}, + {file = "nbformat-5.8.0.tar.gz", hash = "sha256:46dac64c781f1c34dfd8acba16547024110348f9fc7eab0f31981c2a3dc48d1f"}, +] [package.dependencies] fastjsonschema = "*" @@ -1164,6 +2112,10 @@ description = "Jupyter Notebook Tools for Sphinx" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "nbsphinx-0.9.1-py3-none-any.whl", hash = "sha256:c2991a2c497715f52f6c727f8a633e309f097fe9bb794538011ca1ddb6b698fa"}, + {file = "nbsphinx-0.9.1.tar.gz", hash = "sha256:59bbfb7bc676a6647805fb3ca83490338ae7f96c1674a9e5e707f055c272c59d"}, +] [package.dependencies] docutils = "*" @@ -1180,6 +2132,10 @@ description = "Patch asyncio to allow nested event loops" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, + {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, +] [[package]] name = "networkx" @@ -1188,6 +2144,10 @@ description = "Python package for creating and manipulating graphs and networks" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "networkx-3.0-py3-none-any.whl", hash = "sha256:58058d66b1818043527244fab9d41a51fcd7dcc271748015f3c181b8a90c8e2e"}, + {file = "networkx-3.0.tar.gz", hash = "sha256:9a9992345353618ae98339c2b63d8201c381c2944f38a2ab49cb45a4c667e412"}, +] [package.extras] default = ["matplotlib (>=3.4)", "numpy (>=1.20)", "pandas (>=1.3)", "scipy (>=1.8)"] @@ -1203,6 +2163,10 @@ description = "Flexible test automation." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "nox-2022.11.21-py3-none-any.whl", hash = "sha256:0e41a990e290e274cb205a976c4c97ee3c5234441a8132c8c3fd9ea3c22149eb"}, + {file = "nox-2022.11.21.tar.gz", hash = "sha256:e21c31de0711d1274ca585a2c5fde36b1aa962005ba8e9322bf5eeed16dcd684"}, +] [package.dependencies] argcomplete = ">=1.9.4,<3.0" @@ -1220,6 +2184,36 @@ description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, + {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, + {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253"}, + {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978"}, + {file = "numpy-1.24.2-cp310-cp310-win32.whl", hash = "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9"}, + {file = "numpy-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0"}, + {file = "numpy-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a"}, + {file = "numpy-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0"}, + {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281"}, + {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910"}, + {file = "numpy-1.24.2-cp311-cp311-win32.whl", hash = "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95"}, + {file = "numpy-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04"}, + {file = "numpy-1.24.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2"}, + {file = "numpy-1.24.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5"}, + {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a"}, + {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96"}, + {file = "numpy-1.24.2-cp38-cp38-win32.whl", hash = "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d"}, + {file = "numpy-1.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756"}, + {file = "numpy-1.24.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a"}, + {file = "numpy-1.24.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f"}, + {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb"}, + {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780"}, + {file = "numpy-1.24.2-cp39-cp39-win32.whl", hash = "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468"}, + {file = "numpy-1.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5"}, + {file = "numpy-1.24.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d"}, + {file = "numpy-1.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"}, + {file = "numpy-1.24.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f"}, + {file = "numpy-1.24.2.tar.gz", hash = "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22"}, +] [[package]] name = "opt-einsum" @@ -1228,6 +2222,10 @@ description = "Optimizing numpys einsum function" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, +] [package.dependencies] numpy = ">=1.7" @@ -1243,6 +2241,10 @@ description = "A gradient processing and optimisation library in JAX." category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "optax-0.1.4-py3-none-any.whl", hash = "sha256:12fcf33bd682f9a162a3deb097f864130c3224d76771af2ba09410de80399a9b"}, + {file = "optax-0.1.4.tar.gz", hash = "sha256:fb7a0550d57a6636164a3de25986a8a19be8ff6431fcdf1225b4e05175810f22"}, +] [package.dependencies] absl-py = ">=0.7.1" @@ -1259,6 +2261,10 @@ description = "Orbax" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "orbax-0.1.7-py3-none-any.whl", hash = "sha256:67c7ce52b5476202af84977e8db03dede6c009b5d1f1095acfc175578038449b"}, + {file = "orbax-0.1.7.tar.gz", hash = "sha256:2517f566134db6597d2850450b7f486efd24bf24962bc4881007f4cc8e978b37"}, +] [package.dependencies] absl-py = "*" @@ -1284,6 +2290,10 @@ description = "Orbax Checkpoint" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "orbax-checkpoint-0.2.0.tar.gz", hash = "sha256:a4936743b04302ff1b5e1067ba8d6c381fcc6eda4e9f4c2a59bc5301720897d5"}, + {file = "orbax_checkpoint-0.2.0-py3-none-any.whl", hash = "sha256:c56f1fd8527a000aadee2d1ff16caa206f03c9125623edae2a2030b1da58f5ab"}, +] [package.dependencies] absl-py = "*" @@ -1309,6 +2319,10 @@ description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, + {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, +] [[package]] name = "pandas" @@ -1317,6 +2331,35 @@ description = "Powerful data structures for data analysis, time series, and stat category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, + {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, + {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, + {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, + {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, + {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, + {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, + {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, +] [package.dependencies] numpy = [ @@ -1337,6 +2380,10 @@ description = "Utilities for writing pandoc filters in python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] [[package]] name = "parso" @@ -1345,6 +2392,10 @@ description = "A Python Parser" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] [package.extras] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] @@ -1357,6 +2408,10 @@ description = "Utility library for gitignore style pattern matching of file path category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, + {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, +] [[package]] name = "pexpect" @@ -1365,6 +2420,10 @@ description = "Pexpect allows easy control of interactive console applications." category = "dev" optional = false python-versions = "*" +files = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] [package.dependencies] ptyprocess = ">=0.5" @@ -1376,6 +2435,10 @@ description = "Tiny 'shelve'-like database with concurrency support" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] [[package]] name = "pillow" @@ -1384,50 +2447,145 @@ description = "Python Imaging Library (Fork)" category = "dev" optional = false python-versions = ">=3.7" - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -description = "Resolve a name to an object." -category = "dev" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "platformdirs" -version = "3.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] - -[[package]] -name = "pluggy" -version = "1.0.0" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "prompt-toolkit" -version = "3.0.38" -description = "Library for building powerful interactive command lines in Python" -category = "dev" -optional = false +files = [ + {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"}, + {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"}, + {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"}, + {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"}, + {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"}, + {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"}, + {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"}, + {file = "Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0"}, + {file = "Pillow-9.4.0-2-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f"}, + {file = "Pillow-9.4.0-2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c"}, + {file = "Pillow-9.4.0-2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848"}, + {file = "Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1"}, + {file = "Pillow-9.4.0-2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33"}, + {file = "Pillow-9.4.0-2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9"}, + {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"}, + {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"}, + {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"}, + {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"}, + {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"}, + {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"}, + {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"}, + {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"}, + {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"}, + {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"}, + {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"}, + {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"}, + {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"}, + {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"}, + {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"}, + {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"}, + {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"}, + {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"}, + {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"}, + {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"}, + {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"}, + {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"}, + {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"}, + {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"}, + {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"}, + {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"}, + {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"}, + {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "pkgutil-resolve-name" +version = "1.3.10" +description = "Resolve a name to an object." +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] + +[[package]] +name = "platformdirs" +version = "3.2.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"}, + {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"}, +] + +[package.extras] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.38" +description = "Library for building powerful interactive command lines in Python" +category = "dev" +optional = false python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.38-py3-none-any.whl", hash = "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f"}, + {file = "prompt_toolkit-3.0.38.tar.gz", hash = "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b"}, +] [package.dependencies] wcwidth = "*" @@ -1439,6 +2597,22 @@ description = "Cross-platform lib for process and system monitoring in Python." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, + {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, + {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, + {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, + {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, + {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, + {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, + {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, +] [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] @@ -1450,6 +2624,10 @@ description = "Run a subprocess in a pseudo terminal" category = "dev" optional = false python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] [[package]] name = "pure-eval" @@ -1458,6 +2636,10 @@ description = "Safely evaluate AST nodes without side effects" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] [package.extras] tests = ["pytest"] @@ -1469,6 +2651,10 @@ description = "A BibTeX-compatible bibliography processor in Python" category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" +files = [ + {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, + {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, +] [package.dependencies] latexcodec = ">=1.0.4" @@ -1485,6 +2671,10 @@ description = "A docutils backend for pybtex." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, + {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, +] [package.dependencies] docutils = ">=0.8" @@ -1497,6 +2687,10 @@ description = "C parser in Python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] [[package]] name = "pydata-sphinx-theme" @@ -1505,6 +2699,10 @@ description = "Bootstrap-based Sphinx theme from the PyData community" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pydata_sphinx_theme-0.13.1-py3-none-any.whl", hash = "sha256:ce29c1de7961d616dfa25f4c3a9619818d4bb2d4a9985ed078367af294fbccc2"}, + {file = "pydata_sphinx_theme-0.13.1.tar.gz", hash = "sha256:a37d967207c2d787cfe5cf74abfc6b3bcaf0606cac6b283a3876e603d67d6a71"}, +] [package.dependencies] accessible-pygments = "*" @@ -1527,6 +2725,10 @@ description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, + {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, +] [package.extras] plugins = ["importlib-metadata"] @@ -1538,6 +2740,10 @@ description = "python code static checker" category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.17.1-py3-none-any.whl", hash = "sha256:8660a54e3f696243d644fca98f79013a959c03f979992c1ab59c24d3f4ec2700"}, + {file = "pylint-2.17.1.tar.gz", hash = "sha256:d4d009b0116e16845533bc2163493d6681846ac725eab8ca8014afb520178ddd"}, +] [package.dependencies] astroid = ">=2.15.0,<=2.17.0-dev0" @@ -1564,6 +2770,10 @@ description = "pyparsing module - Classes and methods to define and execute pars category = "dev" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] @@ -1575,6 +2785,35 @@ description = "Persistent/Functional/Immutable data structures" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, + {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, + {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, + {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, + {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, + {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, +] [[package]] name = "pytest" @@ -1583,6 +2822,10 @@ description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, + {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, +] [package.dependencies] attrs = ">=19.2.0" @@ -1603,6 +2846,10 @@ description = "Pytest plugin for measuring coverage." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, + {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, +] [package.dependencies] coverage = {version = ">=5.2.1", extras = ["toml"]} @@ -1618,6 +2865,10 @@ description = "pytest plugin for printing summary data as I want it" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest_pretty-1.1.1-py3-none-any.whl", hash = "sha256:22d19d319f2ce07d62ea64f487616d99433cae8530cd20813487bad8a7d5f088"}, + {file = "pytest_pretty-1.1.1.tar.gz", hash = "sha256:dfabbeee334ff5e77f3f731623cd44f147b3db7001df8d9ef8ea1f54986b41e2"}, +] [package.dependencies] pytest = ">=7" @@ -1630,6 +2881,10 @@ description = "pytest xdist plugin for distributed testing, most importantly acr category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-xdist-3.2.1.tar.gz", hash = "sha256:1849bd98d8b242b948e472db7478e090bf3361912a8fed87992ed94085f54727"}, + {file = "pytest_xdist-3.2.1-py3-none-any.whl", hash = "sha256:37290d161638a20b672401deef1cba812d110ac27e35d213f091d15b8beb40c9"}, +] [package.dependencies] execnet = ">=1.1" @@ -1647,6 +2902,10 @@ description = "Extensions to the standard Python datetime module" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] [package.dependencies] six = ">=1.5" @@ -1658,6 +2917,10 @@ description = "World timezone definitions, modern and historical" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pytz-2023.2-py2.py3-none-any.whl", hash = "sha256:8a8baaf1e237175b02f5c751eea67168043a749c843989e2b3015aa1ad9db68b"}, + {file = "pytz-2023.2.tar.gz", hash = "sha256:a27dcf612c05d2ebde626f7d506555f10dfc815b3eddccfaadfc7d99b11c9a07"}, +] [[package]] name = "pywin32" @@ -1666,6 +2929,22 @@ description = "Python for Window Extensions" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] [[package]] name = "pyyaml" @@ -1674,26 +2953,151 @@ description = "YAML parser and emitter for Python" category = "main" optional = false python-versions = ">=3.6" - -[[package]] -name = "pyzmq" -version = "25.0.2" -description = "Python bindings for 0MQ" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -cffi = {version = "*", markers = "implementation_name == \"pypy\""} - -[[package]] -name = "requests" -version = "2.28.2" -description = "Python HTTP for Humans." -category = "dev" -optional = false -python-versions = ">=3.7, <4" - +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] + +[[package]] +name = "pyzmq" +version = "25.0.2" +description = "Python bindings for 0MQ" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ac178e666c097c8d3deb5097b58cd1316092fc43e8ef5b5fdb259b51da7e7315"}, + {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:659e62e1cbb063151c52f5b01a38e1df6b54feccfa3e2509d44c35ca6d7962ee"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8280ada89010735a12b968ec3ea9a468ac2e04fddcc1cede59cb7f5178783b9c"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b5eeb5278a8a636bb0abdd9ff5076bcbb836cd2302565df53ff1fa7d106d54"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a2e5fe42dfe6b73ca120b97ac9f34bfa8414feb15e00e37415dbd51cf227ef6"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:827bf60e749e78acb408a6c5af6688efbc9993e44ecc792b036ec2f4b4acf485"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7b504ae43d37e282301da586529e2ded8b36d4ee2cd5e6db4386724ddeaa6bbc"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb1f69a0a2a2b1aae8412979dd6293cc6bcddd4439bf07e4758d864ddb112354"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b9c9cc965cdf28381e36da525dcb89fc1571d9c54800fdcd73e3f73a2fc29bd"}, + {file = "pyzmq-25.0.2-cp310-cp310-win32.whl", hash = "sha256:24abbfdbb75ac5039205e72d6c75f10fc39d925f2df8ff21ebc74179488ebfca"}, + {file = "pyzmq-25.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6a821a506822fac55d2df2085a52530f68ab15ceed12d63539adc32bd4410f6e"}, + {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:9af0bb0277e92f41af35e991c242c9c71920169d6aa53ade7e444f338f4c8128"}, + {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:54a96cf77684a3a537b76acfa7237b1e79a8f8d14e7f00e0171a94b346c5293e"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88649b19ede1cab03b96b66c364cbbf17c953615cdbc844f7f6e5f14c5e5261c"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:715cff7644a80a7795953c11b067a75f16eb9fc695a5a53316891ebee7f3c9d5"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:312b3f0f066b4f1d17383aae509bacf833ccaf591184a1f3c7a1661c085063ae"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d488c5c8630f7e782e800869f82744c3aca4aca62c63232e5d8c490d3d66956a"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:38d9f78d69bcdeec0c11e0feb3bc70f36f9b8c44fc06e5d06d91dc0a21b453c7"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3059a6a534c910e1d5d068df42f60d434f79e6cc6285aa469b384fa921f78cf8"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6526d097b75192f228c09d48420854d53dfbc7abbb41b0e26f363ccb26fbc177"}, + {file = "pyzmq-25.0.2-cp311-cp311-win32.whl", hash = "sha256:5c5fbb229e40a89a2fe73d0c1181916f31e30f253cb2d6d91bea7927c2e18413"}, + {file = "pyzmq-25.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:ed15e3a2c3c2398e6ae5ce86d6a31b452dfd6ad4cd5d312596b30929c4b6e182"}, + {file = "pyzmq-25.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:032f5c8483c85bf9c9ca0593a11c7c749d734ce68d435e38c3f72e759b98b3c9"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:374b55516393bfd4d7a7daa6c3b36d6dd6a31ff9d2adad0838cd6a203125e714"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08bfcc21b5997a9be4fefa405341320d8e7f19b4d684fb9c0580255c5bd6d695"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1a843d26a8da1b752c74bc019c7b20e6791ee813cd6877449e6a1415589d22ff"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b48616a09d7df9dbae2f45a0256eee7b794b903ddc6d8657a9948669b345f220"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d4427b4a136e3b7f85516c76dd2e0756c22eec4026afb76ca1397152b0ca8145"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:26b0358e8933990502f4513c991c9935b6c06af01787a36d133b7c39b1df37fa"}, + {file = "pyzmq-25.0.2-cp36-cp36m-win32.whl", hash = "sha256:c8fedc3ccd62c6b77dfe6f43802057a803a411ee96f14e946f4a76ec4ed0e117"}, + {file = "pyzmq-25.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:2da6813b7995b6b1d1307329c73d3e3be2fd2d78e19acfc4eff2e27262732388"}, + {file = "pyzmq-25.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a35960c8b2f63e4ef67fd6731851030df68e4b617a6715dd11b4b10312d19fef"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2a0b880ab40aca5a878933376cb6c1ec483fba72f7f34e015c0f675c90b20"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:85762712b74c7bd18e340c3639d1bf2f23735a998d63f46bb6584d904b5e401d"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:64812f29d6eee565e129ca14b0c785744bfff679a4727137484101b34602d1a7"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:510d8e55b3a7cd13f8d3e9121edf0a8730b87d925d25298bace29a7e7bc82810"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b164cc3c8acb3d102e311f2eb6f3c305865ecb377e56adc015cb51f721f1dda6"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:28fdb9224a258134784a9cf009b59265a9dde79582fb750d4e88a6bcbc6fa3dc"}, + {file = "pyzmq-25.0.2-cp37-cp37m-win32.whl", hash = "sha256:dd771a440effa1c36d3523bc6ba4e54ff5d2e54b4adcc1e060d8f3ca3721d228"}, + {file = "pyzmq-25.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:9bdc40efb679b9dcc39c06d25629e55581e4c4f7870a5e88db4f1c51ce25e20d"}, + {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:1f82906a2d8e4ee310f30487b165e7cc8ed09c009e4502da67178b03083c4ce0"}, + {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:21ec0bf4831988af43c8d66ba3ccd81af2c5e793e1bf6790eb2d50e27b3c570a"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbce982a17c88d2312ec2cf7673985d444f1beaac6e8189424e0a0e0448dbb3"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9e1d2f2d86fc75ed7f8845a992c5f6f1ab5db99747fb0d78b5e4046d041164d2"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e92ff20ad5d13266bc999a29ed29a3b5b101c21fdf4b2cf420c09db9fb690e"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edbbf06cc2719889470a8d2bf5072bb00f423e12de0eb9ffec946c2c9748e149"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77942243ff4d14d90c11b2afd8ee6c039b45a0be4e53fb6fa7f5e4fd0b59da39"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ab046e9cb902d1f62c9cc0eca055b1d11108bdc271caf7c2171487298f229b56"}, + {file = "pyzmq-25.0.2-cp38-cp38-win32.whl", hash = "sha256:ad761cfbe477236802a7ab2c080d268c95e784fe30cafa7e055aacd1ca877eb0"}, + {file = "pyzmq-25.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8560756318ec7c4c49d2c341012167e704b5a46d9034905853c3d1ade4f55bee"}, + {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:ab2c056ac503f25a63f6c8c6771373e2a711b98b304614151dfb552d3d6c81f6"}, + {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cca8524b61c0eaaa3505382dc9b9a3bc8165f1d6c010fdd1452c224225a26689"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cfb9f7eae02d3ac42fbedad30006b7407c984a0eb4189a1322241a20944d61e5"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5eaeae038c68748082137d6896d5c4db7927e9349237ded08ee1bbd94f7361c9"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a31992a8f8d51663ebf79df0df6a04ffb905063083d682d4380ab8d2c67257c"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6a979e59d2184a0c8f2ede4b0810cbdd86b64d99d9cc8a023929e40dce7c86cc"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1f124cb73f1aa6654d31b183810febc8505fd0c597afa127c4f40076be4574e0"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:65c19a63b4a83ae45d62178b70223adeee5f12f3032726b897431b6553aa25af"}, + {file = "pyzmq-25.0.2-cp39-cp39-win32.whl", hash = "sha256:83d822e8687621bed87404afc1c03d83fa2ce39733d54c2fd52d8829edb8a7ff"}, + {file = "pyzmq-25.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:24683285cc6b7bf18ad37d75b9db0e0fefe58404e7001f1d82bf9e721806daa7"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a4b4261eb8f9ed71f63b9eb0198dd7c934aa3b3972dac586d0ef502ba9ab08b"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:62ec8d979f56c0053a92b2b6a10ff54b9ec8a4f187db2b6ec31ee3dd6d3ca6e2"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:affec1470351178e892121b3414c8ef7803269f207bf9bef85f9a6dd11cde264"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffc71111433bd6ec8607a37b9211f4ef42e3d3b271c6d76c813669834764b248"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:6fadc60970714d86eff27821f8fb01f8328dd36bebd496b0564a500fe4a9e354"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:269968f2a76c0513490aeb3ba0dc3c77b7c7a11daa894f9d1da88d4a0db09835"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f7c8b8368e84381ae7c57f1f5283b029c888504aaf4949c32e6e6fb256ec9bf0"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25e6873a70ad5aa31e4a7c41e5e8c709296edef4a92313e1cd5fc87bbd1874e2"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b733076ff46e7db5504c5e7284f04a9852c63214c74688bdb6135808531755a3"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a6f6ae12478fdc26a6d5fdb21f806b08fa5403cd02fd312e4cb5f72df078f96f"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:67da1c213fbd208906ab3470cfff1ee0048838365135a9bddc7b40b11e6d6c89"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531e36d9fcd66f18de27434a25b51d137eb546931033f392e85674c7a7cea853"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34a6fddd159ff38aa9497b2e342a559f142ab365576284bc8f77cb3ead1f79c5"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b491998ef886662c1f3d49ea2198055a9a536ddf7430b051b21054f2a5831800"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:5d496815074e3e3d183fe2c7fcea2109ad67b74084c254481f87b64e04e9a471"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:56a94ab1d12af982b55ca96c6853db6ac85505e820d9458ac76364c1998972f4"}, + {file = "pyzmq-25.0.2.tar.gz", hash = "sha256:6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "requests" +version = "2.28.2" +description = "Python HTTP for Humans." +category = "dev" +optional = false +python-versions = ">=3.7, <4" +files = [ + {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, + {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, +] + [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" @@ -1711,6 +3115,10 @@ description = "Render rich text, tables, progress bars, syntax highlighting, mar category = "dev" optional = false python-versions = ">=3.7.0" +files = [ + {file = "rich-13.3.3-py3-none-any.whl", hash = "sha256:540c7d6d26a1178e8e8b37e9ba44573a3cd1464ff6348b99ee7061b95d1c6333"}, + {file = "rich-13.3.3.tar.gz", hash = "sha256:dc84400a9d842b3a9c5ff74addd8eb798d155f36c1c91303888e0a66850d2a15"}, +] [package.dependencies] markdown-it-py = ">=2.2.0,<3.0.0" @@ -1727,6 +3135,25 @@ description = "An extremely fast Python linter, written in Rust." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "ruff-0.0.259-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:f3938dc45e2a3f818e9cbd53007265c22246fbfded8837b2c563bf0ebde1a226"}, + {file = "ruff-0.0.259-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:22e1e35bf5f12072cd644d22afd9203641ccf258bc14ff91aa1c43dc14f6047d"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2fb20e89e85d147c85caa807707a1488bccc1f3854dc3d53533e89b52a0c5ff"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:49e903bcda19f6bb0725a962c058eb5d61f40d84ef52ed53b61939b69402ab4e"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71f0ef1985e9a6696fa97da8459917fa34bdaa2c16bd33bd5edead585b7d44f7"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7cfef26619cba184d59aa7fa17b48af5891d51fc0b755a9bc533478a10d4d066"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79b02fa17ec1fd8d306ae302cb47fb614b71e1f539997858243769bcbe78c6d9"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:428507fb321b386dda70d66cd1a8aa0abf51d7c197983d83bb9e4fa5ee60300b"}, + {file = "ruff-0.0.259-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5fbaea9167f1852757f02133e5daacdb8c75b3431343205395da5b10499927a"}, + {file = "ruff-0.0.259-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:40ae87f2638484b7e8a7567b04a7af719f1c484c5bf132038b702bb32e1f6577"}, + {file = "ruff-0.0.259-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:29e2b77b7d5da6a7dd5cf9b738b511355c5734ece56f78e500d4b5bffd58c1a0"}, + {file = "ruff-0.0.259-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b3c1beacf6037e7f0781d4699d9a2dd4ba2462f475be5b1f45cf84c4ba3c69d"}, + {file = "ruff-0.0.259-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:daaea322e7e85f4c13d82be9536309e1c4b8b9851bb0cbc7eeb15d490fd46bf9"}, + {file = "ruff-0.0.259-py3-none-win32.whl", hash = "sha256:38704f151323aa5858370a2f792e122cc25e5d1aabe7d42ceeab83da18f0b456"}, + {file = "ruff-0.0.259-py3-none-win_amd64.whl", hash = "sha256:aa9449b898287e621942cc71b9327eceb8f0c357e4065fecefb707ef2d978df8"}, + {file = "ruff-0.0.259-py3-none-win_arm64.whl", hash = "sha256:e4f39e18702de69faaaee3969934b92d7467285627f99a5b6ecd55a7d9f5d086"}, + {file = "ruff-0.0.259.tar.gz", hash = "sha256:8b56496063ab3bfdf72339a5fbebb8bd46e5c5fee25ef11a9f03b208fa0562ec"}, +] [[package]] name = "scikit-learn" @@ -1735,6 +3162,29 @@ description = "A set of python modules for machine learning and data mining" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "scikit-learn-1.2.2.tar.gz", hash = "sha256:8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7"}, + {file = "scikit_learn-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99cc01184e347de485bf253d19fcb3b1a3fb0ee4cea5ee3c43ec0cc429b6d29f"}, + {file = "scikit_learn-1.2.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e6e574db9914afcb4e11ade84fab084536a895ca60aadea3041e85b8ac963edb"}, + {file = "scikit_learn-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fe83b676f407f00afa388dd1fdd49e5c6612e551ed84f3b1b182858f09e987d"}, + {file = "scikit_learn-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2642baa0ad1e8f8188917423dd73994bf25429f8893ddbe115be3ca3183584"}, + {file = "scikit_learn-1.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ad66c3848c0a1ec13464b2a95d0a484fd5b02ce74268eaa7e0c697b904f31d6c"}, + {file = "scikit_learn-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfeaf8be72117eb61a164ea6fc8afb6dfe08c6f90365bde2dc16456e4bc8e45f"}, + {file = "scikit_learn-1.2.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:fe0aa1a7029ed3e1dcbf4a5bc675aa3b1bc468d9012ecf6c6f081251ca47f590"}, + {file = "scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:065e9673e24e0dc5113e2dd2b4ca30c9d8aa2fa90f4c0597241c93b63130d233"}, + {file = "scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf036ea7ef66115e0d49655f16febfa547886deba20149555a41d28f56fd6d3c"}, + {file = "scikit_learn-1.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:8b0670d4224a3c2d596fd572fb4fa673b2a0ccfb07152688ebd2ea0b8c61025c"}, + {file = "scikit_learn-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9c710ff9f9936ba8a3b74a455ccf0dcf59b230caa1e9ba0223773c490cab1e51"}, + {file = "scikit_learn-1.2.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:2dd3ffd3950e3d6c0c0ef9033a9b9b32d910c61bd06cb8206303fb4514b88a49"}, + {file = "scikit_learn-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44b47a305190c28dd8dd73fc9445f802b6ea716669cfc22ab1eb97b335d238b1"}, + {file = "scikit_learn-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:953236889928d104c2ef14027539f5f2609a47ebf716b8cbe4437e85dce42744"}, + {file = "scikit_learn-1.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:7f69313884e8eb311460cc2f28676d5e400bd929841a2c8eb8742ae78ebf7c20"}, + {file = "scikit_learn-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8156db41e1c39c69aa2d8599ab7577af53e9e5e7a57b0504e116cc73c39138dd"}, + {file = "scikit_learn-1.2.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fe175ee1dab589d2e1033657c5b6bec92a8a3b69103e3dd361b58014729975c3"}, + {file = "scikit_learn-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d5312d9674bed14f73773d2acf15a3272639b981e60b72c9b190a0cffed5bad"}, + {file = "scikit_learn-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea061bf0283bf9a9f36ea3c5d3231ba2176221bbd430abd2603b1c3b2ed85c89"}, + {file = "scikit_learn-1.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:6477eed40dbce190f9f9e9d0d37e020815825b300121307942ec2110302b66a3"}, +] [package.dependencies] joblib = ">=1.1.1" @@ -1755,6 +3205,29 @@ description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, + {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, + {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, + {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, + {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, + {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, + {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, +] [package.dependencies] numpy = ">=1.18.5,<1.26.0" @@ -1771,6 +3244,10 @@ description = "Statistical data visualization" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "seaborn-0.12.2-py3-none-any.whl", hash = "sha256:ebf15355a4dba46037dfd65b7350f014ceb1f13c05e814eda2c9f5fd731afc08"}, + {file = "seaborn-0.12.2.tar.gz", hash = "sha256:374645f36509d0dcab895cba5b47daf0586f77bfe3b36c97c607db7da5be0139"}, +] [package.dependencies] matplotlib = ">=3.1,<3.6.1 || >3.6.1" @@ -1782,37 +3259,6 @@ dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] stats = ["scipy (>=1.3)", "statsmodels (>=0.10)"] -[[package]] -name = "setuptools" -version = "67.6.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "setuptools-scm" -version = "7.1.0" -description = "the blessed package to manage your versions by scm tags" -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -packaging = ">=20.0" -setuptools = "*" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} -typing-extensions = "*" - -[package.extras] -test = ["pytest (>=6.2)", "virtualenv (>20)"] -toml = ["setuptools (>=42)"] - [[package]] name = "simple-pytree" version = "0.1.7" @@ -1820,6 +3266,10 @@ description = "" category = "main" optional = false python-versions = ">=3.8,<3.12" +files = [ + {file = "simple_pytree-0.1.7-py3-none-any.whl", hash = "sha256:d84834955b153eeb22a944bdfeff7ce1a261e31ef347f0b1e07bb0eedbb3f0ea"}, + {file = "simple_pytree-0.1.7.tar.gz", hash = "sha256:037c5c492de191038c6625fb223da572ec321e829150f48c452e100d69bbffba"}, +] [package.dependencies] jax = "*" @@ -1832,6 +3282,10 @@ description = "Python 2 and 3 compatibility utilities" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] name = "snowballstemmer" @@ -1840,6 +3294,10 @@ description = "This package provides 29 stemmers for 28 languages generated from category = "dev" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "soupsieve" @@ -1848,6 +3306,10 @@ description = "A modern CSS selector implementation for Beautiful Soup." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"}, + {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, +] [[package]] name = "sphinx" @@ -1856,6 +3318,10 @@ description = "Python documentation generator" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "Sphinx-6.1.3.tar.gz", hash = "sha256:0dac3b698538ffef41716cf97ba26c1c7788dba73ce6f150c1ff5b4720786dd2"}, + {file = "sphinx-6.1.3-py3-none-any.whl", hash = "sha256:807d1cb3d6be87eb78a381c3e70ebd8d346b9a25f3753e9947e866b2786865fc"}, +] [package.dependencies] alabaster = ">=0.7,<0.8" @@ -1888,6 +3354,10 @@ description = "A clean book theme for scientific explanations and documentation category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinx_book_theme-1.0.0-py3-none-any.whl", hash = "sha256:f6baba7888d5a63328a210e9960a7a6e951e9632d74edb6fce48c9d5d8c28768"}, + {file = "sphinx_book_theme-1.0.0.tar.gz", hash = "sha256:7c76ea51347e55d801504bfb1b2433cba49e7212a25fbebd0ce44b3c098ea946"}, +] [package.dependencies] pydata-sphinx-theme = ">=0.13.0" @@ -1905,6 +3375,10 @@ description = "Add a copy button to each of your code cells." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinx-copybutton-0.5.1.tar.gz", hash = "sha256:366251e28a6f6041514bfb5439425210418d6c750e98d3a695b73e56866a677a"}, + {file = "sphinx_copybutton-0.5.1-py3-none-any.whl", hash = "sha256:0842851b5955087a7ec7fc870b622cb168618ad408dee42692e9a5c97d071da8"}, +] [package.dependencies] sphinx = ">=1.8" @@ -1920,6 +3394,10 @@ description = "Tabbed views for Sphinx" category = "dev" optional = false python-versions = "~=3.7" +files = [ + {file = "sphinx-tabs-3.4.1.tar.gz", hash = "sha256:d2a09f9e8316e400d57503f6df1c78005fdde220e5af589cc79d493159e1b832"}, + {file = "sphinx_tabs-3.4.1-py3-none-any.whl", hash = "sha256:7cea8942aeccc5d01a995789c01804b787334b55927f29b36ba16ed1e7cb27c6"}, +] [package.dependencies] docutils = ">=0.18.0,<0.19.0" @@ -1937,6 +3415,10 @@ description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1949,7 +3431,11 @@ description = "Sphinx extension for BibTeX style citations." category = "dev" optional = false python-versions = ">=3.6" - +files = [ + {file = "sphinxcontrib-bibtex-2.5.0.tar.gz", hash = "sha256:71b42e5db0e2e284f243875326bf9936aa9a763282277d75048826fef5b00eaa"}, + {file = "sphinxcontrib_bibtex-2.5.0-py3-none-any.whl", hash = "sha256:748f726eaca6efff7731012103417ef130ecdcc09501b4d0c54283bf5f059f76"}, +] + [package.dependencies] docutils = ">=0.8" importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} @@ -1964,6 +3450,10 @@ description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1976,6 +3466,10 @@ description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML h category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1988,6 +3482,10 @@ description = "A sphinx extension which renders display math in HTML via JavaScr category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] test = ["flake8", "mypy", "pytest"] @@ -1999,6 +3497,10 @@ description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp d category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -2011,6 +3513,10 @@ description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -2023,6 +3529,10 @@ description = "Sphinx Extension to enable OGP support" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinxext-opengraph-0.8.1.tar.gz", hash = "sha256:4e698b907ef9582cd0106bd50807106677fdab4dc5c31040be17c9afb6e17880"}, + {file = "sphinxext_opengraph-0.8.1-py3-none-any.whl", hash = "sha256:64fe993d4974c65202d1c8f1c986abb559154a814a6378f9d3aaf8c7c9bd62bc"}, +] [package.dependencies] matplotlib = "*" @@ -2035,6 +3545,10 @@ description = "Extract data from python stack frames and tracebacks for informat category = "dev" optional = false python-versions = "*" +files = [ + {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, + {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, +] [package.dependencies] asttokens = ">=2.1.0" @@ -2051,6 +3565,9 @@ description = "Probabilistic modeling and statistical inference in TensorFlow" category = "main" optional = false python-versions = "*" +files = [ + {file = "tensorflow_probability-0.19.0-py2.py3-none-any.whl", hash = "sha256:ee70967fbd52b09e9c5ec148a9437c4cf3f9e9d689cdca400a1bc921f21cdcac"}, +] [package.dependencies] absl-py = "*" @@ -2072,6 +3589,25 @@ description = "Read and write large, multi-dimensional arrays" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "tensorstore-0.1.35-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:4e1b4210b777c4a585a183bdd435bfa8aa5628c46075cb64adcd9b4bdd124e35"}, + {file = "tensorstore-0.1.35-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285cfc4816bb0cc305cddc11f25f81a14bd84af0c8bbd39e42c81413c0bf242e"}, + {file = "tensorstore-0.1.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a8578518362daee85e39162bf870faf5545868cd53fe99ede0eda1fad288f6"}, + {file = "tensorstore-0.1.35-cp310-cp310-win_amd64.whl", hash = "sha256:a0318ea4afd4f2c00ce2dd4b540acb31c45a260bda94ae7e4340a1a4d28c6848"}, + {file = "tensorstore-0.1.35-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:7173f451c1b970230f57b0cdefdd692940ee457d4982a696d00aba163a7fee9a"}, + {file = "tensorstore-0.1.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2fc9d8e5aaa54c538434592eaf88f7dfa6773fb35a960cc4cbe20bef55092d7"}, + {file = "tensorstore-0.1.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f34fc72a9ceff1c1666b6c85cc86858adbd10ff1c3c6b98c7788bbea9161a6a6"}, + {file = "tensorstore-0.1.35-cp311-cp311-win_amd64.whl", hash = "sha256:216bf4c00ec4aabf699d2a54ee9311f2fb19a2a3a904d7abb2194572af2f8384"}, + {file = "tensorstore-0.1.35-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:932f96d35ebdf0e4650bd9cd089319e9c5723d2aaf3f65123a821fc3b04ca4ac"}, + {file = "tensorstore-0.1.35-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9d0ea7888a88e5d892894ddf14f76d37665d0adbc2d861c559d0d6d5eaac20d"}, + {file = "tensorstore-0.1.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd1406fd325517331887b0b2533e27e17e549196418eb087730bafa6fffaa236"}, + {file = "tensorstore-0.1.35-cp38-cp38-win_amd64.whl", hash = "sha256:99ad4e577249c2dfb07a501d78a31e29d6b9e53752384d58782ad53e6014ac41"}, + {file = "tensorstore-0.1.35-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:9acf9e9a7b3117881ec11f26930d0fee89cce6bb3d81056c15317f7cf2c0c1e1"}, + {file = "tensorstore-0.1.35-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d742468c6aec6a1dcf3ec164694c9827eb498b2c701b8020fb4a56446f9bbc1a"}, + {file = "tensorstore-0.1.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8011a556b4cbbc547e9365cf833ce7a5fb9fdbaa3f86a92665b78a78b78131"}, + {file = "tensorstore-0.1.35-cp39-cp39-win_amd64.whl", hash = "sha256:04c383af4a17e238fffdda7abc06b66c8583554d523cd721f2011bbb7a715327"}, + {file = "tensorstore-0.1.35.tar.gz", hash = "sha256:93db16e2f448cad716628640d3b73b87d9b259ae8ba1741a82108aef14e427c6"}, +] [package.dependencies] numpy = ">=1.16.0" @@ -2083,6 +3619,10 @@ description = "threadpoolctl" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "threadpoolctl-3.1.0-py3-none-any.whl", hash = "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b"}, + {file = "threadpoolctl-3.1.0.tar.gz", hash = "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380"}, +] [[package]] name = "tinycss2" @@ -2091,6 +3631,10 @@ description = "A tiny CSS parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] [package.dependencies] webencodings = ">=0.4" @@ -2106,6 +3650,10 @@ description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] [[package]] name = "tomli" @@ -2114,6 +3662,10 @@ description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "tomlkit" @@ -2122,6 +3674,10 @@ description = "Style preserving TOML library" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomlkit-0.11.7-py3-none-any.whl", hash = "sha256:5325463a7da2ef0c6bbfefb62a3dc883aebe679984709aee32a317907d0a8d3c"}, + {file = "tomlkit-0.11.7.tar.gz", hash = "sha256:f392ef70ad87a672f02519f99967d28a4d3047133e2d1df936511465fbb3791d"}, +] [[package]] name = "toolz" @@ -2130,6 +3686,10 @@ description = "List processing tools and functional utilities" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "toolz-0.12.0-py3-none-any.whl", hash = "sha256:2059bd4148deb1884bb0eb770a3cde70e7f954cfbbdc2285f1f2de01fd21eb6f"}, + {file = "toolz-0.12.0.tar.gz", hash = "sha256:88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"}, +] [[package]] name = "tornado" @@ -2138,6 +3698,19 @@ description = "Tornado is a Python web framework and asynchronous networking lib category = "dev" optional = false python-versions = ">= 3.7" +files = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] [[package]] name = "tqdm" @@ -2146,6 +3719,10 @@ description = "Fast, Extensible Progress Meter" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, + {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -2163,6 +3740,10 @@ description = "Traitlets Python configuration system" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, + {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, +] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] @@ -2175,6 +3756,10 @@ description = "Run-time type checker for Python" category = "main" optional = false python-versions = ">=3.7.4" +files = [ + {file = "typeguard-3.0.2-py3-none-any.whl", hash = "sha256:bbe993854385284ab42fd5bd3bee6f6556577ce8b50696d6cb956d704f286c8e"}, + {file = "typeguard-3.0.2.tar.gz", hash = "sha256:fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a"}, +] [package.dependencies] importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} @@ -2191,6 +3776,10 @@ description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, + {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, +] [[package]] name = "uc-micro-py" @@ -2199,6 +3788,10 @@ description = "Micro subset of unicode data files for linkify-it-py projects." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "uc-micro-py-1.0.1.tar.gz", hash = "sha256:b7cdf4ea79433043ddfe2c82210208f26f7962c0cfbe3bacb05ee879a7fdb596"}, + {file = "uc_micro_py-1.0.1-py3-none-any.whl", hash = "sha256:316cfb8b6862a0f1d03540f0ae6e7b033ff1fa0ddbe60c12cbe0d4cec846a69f"}, +] [package.extras] test = ["coverage", "pytest", "pytest-cov"] @@ -2210,6 +3803,10 @@ description = "HTTP library with thread-safe connection pooling, file post, and category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, + {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, +] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] @@ -2223,6 +3820,10 @@ description = "Virtual Python Environment builder" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.21.0-py3-none-any.whl", hash = "sha256:31712f8f2a17bd06234fa97fdf19609e789dd4e3e4bf108c3da71d710651adbc"}, + {file = "virtualenv-20.21.0.tar.gz", hash = "sha256:f50e3e60f990a0757c9b68333c9fdaa72d7188caa417f96af9e52407831a3b68"}, +] [package.dependencies] distlib = ">=0.3.6,<1" @@ -2240,6 +3841,10 @@ description = "IPython magic function to print date/time stamps and various syst category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "watermark-2.3.1-py2.py3-none-any.whl", hash = "sha256:8e2681e512660e50d2aa460fd7d40d8ed2862735ae5087fc0ec7752fb10ee29c"}, + {file = "watermark-2.3.1.tar.gz", hash = "sha256:0a69eb017f4f96e909739f25ce1a3bd0729c65d8cf4294ea07d609322360019a"}, +] [package.dependencies] ipython = "*" @@ -2251,6 +3856,10 @@ description = "Measures the displayed width of unicode strings in a terminal" category = "dev" optional = false python-versions = "*" +files = [ + {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, + {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, +] [[package]] name = "webencodings" @@ -2259,6 +3868,10 @@ description = "Character encoding aliases for legacy web content" category = "dev" optional = false python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] [[package]] name = "widgetsnbextension" @@ -2267,6 +3880,10 @@ description = "Jupyter interactive widgets for Jupyter Notebook" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.6-py3-none-any.whl", hash = "sha256:7df2bffa274b0b416c1fa0789e321451858a9e276e1220b40a16cc994192e2b7"}, + {file = "widgetsnbextension-4.0.6.tar.gz", hash = "sha256:1a07d06c881a7c16ca7ab4541b476edbe2e404f5c5f0cf524ffa2406a8bd7c80"}, +] [[package]] name = "wrapt" @@ -2275,6 +3892,83 @@ description = "Module for decorators, wrappers and monkey patching." category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] [[package]] name = "zipp" @@ -2283,1731 +3977,16 @@ description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, +] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [metadata] -lock-version = "1.1" +lock-version = "2.0" python-versions = ">=3.8,<3.12" -content-hash = "246ebb68c50e3c4899f5dd553f241030ff90ca6c72cabeec0d3190c1db4c24f9" - -[metadata.files] -absl-py = [ - {file = "absl-py-1.4.0.tar.gz", hash = "sha256:d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"}, - {file = "absl_py-1.4.0-py3-none-any.whl", hash = "sha256:0d3fe606adfa4f7db64792dd4c7aee4ee0c38ab75dfd353b7a83ed3e957fcb47"}, -] -absolufy-imports = [ - {file = "absolufy_imports-0.3.1-py2.py3-none-any.whl", hash = "sha256:49bf7c753a9282006d553ba99217f48f947e3eef09e18a700f8a82f75dc7fc5c"}, - {file = "absolufy_imports-0.3.1.tar.gz", hash = "sha256:c90638a6c0b66826d1fb4880ddc20ef7701af34192c94faf40b95d32b59f9793"}, -] -accessible-pygments = [ - {file = "accessible-pygments-0.0.4.tar.gz", hash = "sha256:e7b57a9b15958e9601c7e9eb07a440c813283545a20973f2574a5f453d0e953e"}, - {file = "accessible_pygments-0.0.4-py2.py3-none-any.whl", hash = "sha256:416c6d8c1ea1c5ad8701903a20fcedf953c6e720d64f33dc47bfb2d3f2fa4e8d"}, -] -alabaster = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, -] -appnope = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, -] -argcomplete = [ - {file = "argcomplete-2.1.2-py3-none-any.whl", hash = "sha256:4ba9cdaa28c361d251edce884cd50b4b1215d65cdc881bd204426cdde9f52731"}, - {file = "argcomplete-2.1.2.tar.gz", hash = "sha256:fc82ef070c607b1559b5c720529d63b54d9dcf2dcfc2632b10e6372314a34457"}, -] -astroid = [ - {file = "astroid-2.15.1-py3-none-any.whl", hash = "sha256:89860bda98fe2bbd1f5d262229be7629d778ce280de68d95d4a73d1f592ad268"}, - {file = "astroid-2.15.1.tar.gz", hash = "sha256:af4e0aff46e2868218502789898269ed95b663fba49e65d91c1e09c966266c34"}, -] -asttokens = [ - {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, - {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, -] -attrs = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, -] -babel = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, -] -backcall = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] -beautifulsoup4 = [ - {file = "beautifulsoup4-4.12.0-py3-none-any.whl", hash = "sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591"}, - {file = "beautifulsoup4-4.12.0.tar.gz", hash = "sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"}, -] -black = [ - {file = "black-23.1.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221"}, - {file = "black-23.1.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26"}, - {file = "black-23.1.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b"}, - {file = "black-23.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"}, - {file = "black-23.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958"}, - {file = "black-23.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a"}, - {file = "black-23.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481"}, - {file = "black-23.1.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad"}, - {file = "black-23.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8"}, - {file = "black-23.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580"}, - {file = "black-23.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468"}, - {file = "black-23.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739"}, - {file = "black-23.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9"}, - {file = "black-23.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555"}, - {file = "black-23.1.0-py3-none-any.whl", hash = "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32"}, - {file = "black-23.1.0.tar.gz", hash = "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac"}, -] -blackjax = [ - {file = "blackjax-0.9.6-py3-none-any.whl", hash = "sha256:d1c20dd15a63944a7b5c835bac4900aadf8630bedb0d7e51ab7fc63255eb0dd7"}, - {file = "blackjax-0.9.6.tar.gz", hash = "sha256:fb708f183d714750feb475fb87b8162fc1641309f30ee42fd38a5dec82733868"}, -] -bleach = [ - {file = "bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"}, - {file = "bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414"}, -] -cached-property = [ - {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, - {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -cffi = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, -] -charset-normalizer = [ - {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, - {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, -] -chex = [ - {file = "chex-0.1.7-py3-none-any.whl", hash = "sha256:9f583015303b1205443843c0b55849bb287f1dfdbd22d9907b1ebb04f964d93e"}, - {file = "chex-0.1.7.tar.gz", hash = "sha256:74ed49799ac4d229881456d468136f1b19a9f9839e3de72b058824e2a4f4dedd"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -cloudpickle = [ - {file = "cloudpickle-2.2.1-py3-none-any.whl", hash = "sha256:61f594d1f4c295fa5cd9014ceb3a1fc4a70b0de1164b94fbc2d854ccba056f9f"}, - {file = "cloudpickle-2.2.1.tar.gz", hash = "sha256:d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5"}, -] -colorama = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] -colorlog = [ - {file = "colorlog-6.7.0-py2.py3-none-any.whl", hash = "sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662"}, - {file = "colorlog-6.7.0.tar.gz", hash = "sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5"}, -] -comm = [ - {file = "comm-0.1.3-py3-none-any.whl", hash = "sha256:16613c6211e20223f215fc6d3b266a247b6e2641bf4e0a3ad34cb1aff2aa3f37"}, - {file = "comm-0.1.3.tar.gz", hash = "sha256:a61efa9daffcfbe66fd643ba966f846a624e4e6d6767eda9cf6e993aadaab93e"}, -] -contourpy = [ - {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:95c3acddf921944f241b6773b767f1cbce71d03307270e2d769fd584d5d1092d"}, - {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc1464c97579da9f3ab16763c32e5c5d5bb5fa1ec7ce509a4ca6108b61b84fab"}, - {file = "contourpy-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8acf74b5d383414401926c1598ed77825cd530ac7b463ebc2e4f46638f56cce6"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c71fdd8f1c0f84ffd58fca37d00ca4ebaa9e502fb49825484da075ac0b0b803"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f99e9486bf1bb979d95d5cffed40689cb595abb2b841f2991fc894b3452290e8"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87f4d8941a9564cda3f7fa6a6cd9b32ec575830780677932abdec7bcb61717b0"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e20e5a1908e18aaa60d9077a6d8753090e3f85ca25da6e25d30dc0a9e84c2c6"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a877ada905f7d69b2a31796c4b66e31a8068b37aa9b78832d41c82fc3e056ddd"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6381fa66866b0ea35e15d197fc06ac3840a9b2643a6475c8fff267db8b9f1e69"}, - {file = "contourpy-1.0.7-cp310-cp310-win32.whl", hash = "sha256:3c184ad2433635f216645fdf0493011a4667e8d46b34082f5a3de702b6ec42e3"}, - {file = "contourpy-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:3caea6365b13119626ee996711ab63e0c9d7496f65641f4459c60a009a1f3e80"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed33433fc3820263a6368e532f19ddb4c5990855e4886088ad84fd7c4e561c71"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38e2e577f0f092b8e6774459317c05a69935a1755ecfb621c0a98f0e3c09c9a5"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae90d5a8590e5310c32a7630b4b8618cef7563cebf649011da80874d0aa8f414"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130230b7e49825c98edf0b428b7aa1125503d91732735ef897786fe5452b1ec2"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58569c491e7f7e874f11519ef46737cea1d6eda1b514e4eb5ac7dab6aa864d02"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54d43960d809c4c12508a60b66cb936e7ed57d51fb5e30b513934a4a23874fae"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:152fd8f730c31fd67fe0ffebe1df38ab6a669403da93df218801a893645c6ccc"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9056c5310eb1daa33fc234ef39ebfb8c8e2533f088bbf0bc7350f70a29bde1ac"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a9d7587d2fdc820cc9177139b56795c39fb8560f540bba9ceea215f1f66e1566"}, - {file = "contourpy-1.0.7-cp311-cp311-win32.whl", hash = "sha256:4ee3ee247f795a69e53cd91d927146fb16c4e803c7ac86c84104940c7d2cabf0"}, - {file = "contourpy-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:5caeacc68642e5f19d707471890f037a13007feba8427eb7f2a60811a1fc1350"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd7dc0e6812b799a34f6d12fcb1000539098c249c8da54f3566c6a6461d0dbad"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0f9d350b639db6c2c233d92c7f213d94d2e444d8e8fc5ca44c9706cf72193772"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e96a08b62bb8de960d3a6afbc5ed8421bf1a2d9c85cc4ea73f4bc81b4910500f"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:031154ed61f7328ad7f97662e48660a150ef84ee1bc8876b6472af88bf5a9b98"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e9ebb4425fc1b658e13bace354c48a933b842d53c458f02c86f371cecbedecc"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efb8f6d08ca7998cf59eaf50c9d60717f29a1a0a09caa46460d33b2924839dbd"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6c180d89a28787e4b73b07e9b0e2dac7741261dbdca95f2b489c4f8f887dd810"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b8d587cc39057d0afd4166083d289bdeff221ac6d3ee5046aef2d480dc4b503c"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:769eef00437edf115e24d87f8926955f00f7704bede656ce605097584f9966dc"}, - {file = "contourpy-1.0.7-cp38-cp38-win32.whl", hash = "sha256:62398c80ef57589bdbe1eb8537127321c1abcfdf8c5f14f479dbbe27d0322e66"}, - {file = "contourpy-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:57119b0116e3f408acbdccf9eb6ef19d7fe7baf0d1e9aaa5381489bc1aa56556"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30676ca45084ee61e9c3da589042c24a57592e375d4b138bd84d8709893a1ba4"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e927b3868bd1e12acee7cc8f3747d815b4ab3e445a28d2e5373a7f4a6e76ba1"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:366a0cf0fc079af5204801786ad7a1c007714ee3909e364dbac1729f5b0849e5"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89ba9bb365446a22411f0673abf6ee1fea3b2cf47b37533b970904880ceb72f3"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71b0bf0c30d432278793d2141362ac853859e87de0a7dee24a1cea35231f0d50"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7281244c99fd7c6f27c1c6bfafba878517b0b62925a09b586d88ce750a016d2"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b6d0f9e1d39dbfb3977f9dd79f156c86eb03e57a7face96f199e02b18e58d32a"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7f6979d20ee5693a1057ab53e043adffa1e7418d734c1532e2d9e915b08d8ec2"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5dd34c1ae752515318224cba7fc62b53130c45ac6a1040c8b7c1a223c46e8967"}, - {file = "contourpy-1.0.7-cp39-cp39-win32.whl", hash = "sha256:c5210e5d5117e9aec8c47d9156d1d3835570dd909a899171b9535cb4a3f32693"}, - {file = "contourpy-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:60835badb5ed5f4e194a6f21c09283dd6e007664a86101431bf870d9e86266c4"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ce41676b3d0dd16dbcfabcc1dc46090aaf4688fd6e819ef343dbda5a57ef0161"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a011cf354107b47c58ea932d13b04d93c6d1d69b8b6dce885e642531f847566"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31a55dccc8426e71817e3fe09b37d6d48ae40aae4ecbc8c7ad59d6893569c436"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69f8ff4db108815addd900a74df665e135dbbd6547a8a69333a68e1f6e368ac2"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efe99298ba37e37787f6a2ea868265465410822f7bea163edcc1bd3903354ea9"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a1e97b86f73715e8670ef45292d7cc033548266f07d54e2183ecb3c87598888f"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc331c13902d0f50845099434cd936d49d7a2ca76cb654b39691974cb1e4812d"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24847601071f740837aefb730e01bd169fbcaa610209779a78db7ebb6e6a7051"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abf298af1e7ad44eeb93501e40eb5a67abbf93b5d90e468d01fc0c4451971afa"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:64757f6460fc55d7e16ed4f1de193f362104285c667c112b50a804d482777edd"}, - {file = "contourpy-1.0.7.tar.gz", hash = "sha256:d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e"}, -] -coverage = [ - {file = "coverage-7.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c90e73bdecb7b0d1cea65a08cb41e9d672ac6d7995603d6465ed4914b98b9ad7"}, - {file = "coverage-7.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e2926b8abedf750c2ecf5035c07515770944acf02e1c46ab08f6348d24c5f94d"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57b77b9099f172804e695a40ebaa374f79e4fb8b92f3e167f66facbf92e8e7f5"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe1c0adad110bf0ad7fb59f833880e489a61e39d699d37249bdf42f80590169"}, - {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2199988e0bc8325d941b209f4fd1c6fa007024b1442c5576f1a32ca2e48941e6"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:81f63e0fb74effd5be736cfe07d710307cc0a3ccb8f4741f7f053c057615a137"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:186e0fc9cf497365036d51d4d2ab76113fb74f729bd25da0975daab2e107fd90"}, - {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:420f94a35e3e00a2b43ad5740f935358e24478354ce41c99407cddd283be00d2"}, - {file = "coverage-7.2.2-cp310-cp310-win32.whl", hash = "sha256:38004671848b5745bb05d4d621526fca30cee164db42a1f185615f39dc997292"}, - {file = "coverage-7.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:0ce383d5f56d0729d2dd40e53fe3afeb8f2237244b0975e1427bfb2cf0d32bab"}, - {file = "coverage-7.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3eb55b7b26389dd4f8ae911ba9bc8c027411163839dea4c8b8be54c4ee9ae10b"}, - {file = "coverage-7.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2b96123a453a2d7f3995ddb9f28d01fd112319a7a4d5ca99796a7ff43f02af5"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:299bc75cb2a41e6741b5e470b8c9fb78d931edbd0cd009c58e5c84de57c06731"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e1df45c23d4230e3d56d04414f9057eba501f78db60d4eeecfcb940501b08fd"}, - {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:006ed5582e9cbc8115d2e22d6d2144a0725db542f654d9d4fda86793832f873d"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d683d230b5774816e7d784d7ed8444f2a40e7a450e5720d58af593cb0b94a212"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8efb48fa743d1c1a65ee8787b5b552681610f06c40a40b7ef94a5b517d885c54"}, - {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c752d5264053a7cf2fe81c9e14f8a4fb261370a7bb344c2a011836a96fb3f57"}, - {file = "coverage-7.2.2-cp311-cp311-win32.whl", hash = "sha256:55272f33da9a5d7cccd3774aeca7a01e500a614eaea2a77091e9be000ecd401d"}, - {file = "coverage-7.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:92ebc1619650409da324d001b3a36f14f63644c7f0a588e331f3b0f67491f512"}, - {file = "coverage-7.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5afdad4cc4cc199fdf3e18088812edcf8f4c5a3c8e6cb69127513ad4cb7471a9"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0484d9dd1e6f481b24070c87561c8d7151bdd8b044c93ac99faafd01f695c78e"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d530191aa9c66ab4f190be8ac8cc7cfd8f4f3217da379606f3dd4e3d83feba69"}, - {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac0f522c3b6109c4b764ffec71bf04ebc0523e926ca7cbe6c5ac88f84faced0"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ba279aae162b20444881fc3ed4e4f934c1cf8620f3dab3b531480cf602c76b7f"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:53d0fd4c17175aded9c633e319360d41a1f3c6e352ba94edcb0fa5167e2bad67"}, - {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c99cb7c26a3039a8a4ee3ca1efdde471e61b4837108847fb7d5be7789ed8fd9"}, - {file = "coverage-7.2.2-cp37-cp37m-win32.whl", hash = "sha256:5cc0783844c84af2522e3a99b9b761a979a3ef10fb87fc4048d1ee174e18a7d8"}, - {file = "coverage-7.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:817295f06eacdc8623dc4df7d8b49cea65925030d4e1e2a7c7218380c0072c25"}, - {file = "coverage-7.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6146910231ece63facfc5984234ad1b06a36cecc9fd0c028e59ac7c9b18c38c6"}, - {file = "coverage-7.2.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:387fb46cb8e53ba7304d80aadca5dca84a2fbf6fe3faf6951d8cf2d46485d1e5"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:046936ab032a2810dcaafd39cc4ef6dd295df1a7cbead08fe996d4765fca9fe4"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e627dee428a176ffb13697a2c4318d3f60b2ccdde3acdc9b3f304206ec130ccd"}, - {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fa54fb483decc45f94011898727802309a109d89446a3c76387d016057d2c84"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3668291b50b69a0c1ef9f462c7df2c235da3c4073f49543b01e7eb1dee7dd540"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7c20b731211261dc9739bbe080c579a1835b0c2d9b274e5fcd903c3a7821cf88"}, - {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5764e1f7471cb8f64b8cda0554f3d4c4085ae4b417bfeab236799863703e5de2"}, - {file = "coverage-7.2.2-cp38-cp38-win32.whl", hash = "sha256:4f01911c010122f49a3e9bdc730eccc66f9b72bd410a3a9d3cb8448bb50d65d3"}, - {file = "coverage-7.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:c448b5c9e3df5448a362208b8d4b9ed85305528313fca1b479f14f9fe0d873b8"}, - {file = "coverage-7.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfe7085783cda55e53510482fa7b5efc761fad1abe4d653b32710eb548ebdd2d"}, - {file = "coverage-7.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9d22e94e6dc86de981b1b684b342bec5e331401599ce652900ec59db52940005"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:507e4720791977934bba016101579b8c500fb21c5fa3cd4cf256477331ddd988"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc4803779f0e4b06a2361f666e76f5c2e3715e8e379889d02251ec911befd149"}, - {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db8c2c5ace167fd25ab5dd732714c51d4633f58bac21fb0ff63b0349f62755a8"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f68ee32d7c4164f1e2c8797535a6d0a3733355f5861e0f667e37df2d4b07140"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d52f0a114b6a58305b11a5cdecd42b2e7f1ec77eb20e2b33969d702feafdd016"}, - {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:797aad79e7b6182cb49c08cc5d2f7aa7b2128133b0926060d0a8889ac43843be"}, - {file = "coverage-7.2.2-cp39-cp39-win32.whl", hash = "sha256:db45eec1dfccdadb179b0f9ca616872c6f700d23945ecc8f21bb105d74b1c5fc"}, - {file = "coverage-7.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:8dbe2647bf58d2c5a6c5bcc685f23b5f371909a5624e9f5cd51436d6a9f6c6ef"}, - {file = "coverage-7.2.2-pp37.pp38.pp39-none-any.whl", hash = "sha256:872d6ce1f5be73f05bea4df498c140b9e7ee5418bfa2cc8204e7f9b817caa968"}, - {file = "coverage-7.2.2.tar.gz", hash = "sha256:36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2"}, -] -cycler = [ - {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, - {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, -] -debugpy = [ - {file = "debugpy-1.6.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664"}, - {file = "debugpy-1.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e"}, - {file = "debugpy-1.6.6-cp310-cp310-win32.whl", hash = "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494"}, - {file = "debugpy-1.6.6-cp310-cp310-win_amd64.whl", hash = "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917"}, - {file = "debugpy-1.6.6-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110"}, - {file = "debugpy-1.6.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca"}, - {file = "debugpy-1.6.6-cp37-cp37m-win32.whl", hash = "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b"}, - {file = "debugpy-1.6.6-cp37-cp37m-win_amd64.whl", hash = "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305"}, - {file = "debugpy-1.6.6-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e"}, - {file = "debugpy-1.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c"}, - {file = "debugpy-1.6.6-cp38-cp38-win32.whl", hash = "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32"}, - {file = "debugpy-1.6.6-cp38-cp38-win_amd64.whl", hash = "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225"}, - {file = "debugpy-1.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6"}, - {file = "debugpy-1.6.6-cp39-cp39-win32.whl", hash = "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe"}, - {file = "debugpy-1.6.6-cp39-cp39-win_amd64.whl", hash = "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1"}, - {file = "debugpy-1.6.6-py2.py3-none-any.whl", hash = "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115"}, - {file = "debugpy-1.6.6.zip", hash = "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67"}, -] -decorator = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] -defusedxml = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] -dill = [ - {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, - {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, -] -distlib = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, -] -dm-tree = [ - {file = "dm-tree-0.1.8.tar.gz", hash = "sha256:0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430"}, - {file = "dm_tree-0.1.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:35cc164a79336bfcfafb47e5f297898359123bbd3330c1967f0c4994f9cf9f60"}, - {file = "dm_tree-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39070ba268c0491af9fe7a58644d99e8b4f2cde6e5884ba3380bddc84ed43d5f"}, - {file = "dm_tree-0.1.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2869228d9c619074de501a3c10dc7f07c75422f8fab36ecdcb859b6f1b1ec3ef"}, - {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d20f2faa3672b52e5013f4077117bfb99c4cfc0b445d3bde1584c34032b57436"}, - {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5483dca4d7eb1a0d65fe86d3b6a53ae717face83c1f17e0887b1a4a64ae5c410"}, - {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d7c26e431fc93cc7e0cba867eb000db6a05f6f2b25af11ac4e9dada88fc5bca"}, - {file = "dm_tree-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d714371bb08839e4e5e29024fc95832d9affe129825ef38836b143028bd144"}, - {file = "dm_tree-0.1.8-cp310-cp310-win_amd64.whl", hash = "sha256:d40fa4106ca6edc66760246a08f500ec0c85ef55c762fb4a363f6ee739ba02ee"}, - {file = "dm_tree-0.1.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad16ceba90a56ec47cf45b21856d14962ac314787975ef786efb5e6e9ca75ec7"}, - {file = "dm_tree-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:803bfc53b4659f447ac694dbd04235f94a73ef7c1fd1e0df7c84ac41e0bc963b"}, - {file = "dm_tree-0.1.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:378cc8ad93c5fe3590f405a309980721f021c790ca1bdf9b15bb1d59daec57f5"}, - {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1607ce49aa42f010d1e5e616d92ce899d66835d4d8bea49679582435285515de"}, - {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:343a4a4ebaa127451ff971254a4be4084eb4bdc0b2513c32b46f6f728fd03f9e"}, - {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa42a605d099ee7d41ba2b5fb75e21423951fd26e5d50583a00471238fb3021d"}, - {file = "dm_tree-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b7764de0d855338abefc6e3ee9fe40d301668310aa3baea3f778ff051f4393"}, - {file = "dm_tree-0.1.8-cp311-cp311-win_amd64.whl", hash = "sha256:a5d819c38c03f0bb5b3b3703c60e4b170355a0fc6b5819325bf3d4ceb3ae7e80"}, - {file = "dm_tree-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8c60a7eadab64c2278861f56bca320b2720f163dca9d7558103c3b77f2416571"}, - {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af4b3d372f2477dcd89a6e717e4a575ca35ccc20cc4454a8a4b6f8838a00672d"}, - {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de287fabc464b8734be251e46e06aa9aa1001f34198da2b6ce07bd197172b9cb"}, - {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:054b461f8176f4bce7a21f7b1870f873a1ced3bdbe1282c816c550bb43c71fa6"}, - {file = "dm_tree-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f7915660f59c09068e428613c480150180df1060561fd0d1470684ae7007bd1"}, - {file = "dm_tree-0.1.8-cp37-cp37m-win_amd64.whl", hash = "sha256:b9f89a454e98806b44fe9d40ec9eee61f848388f7e79ac2371a55679bd5a3ac6"}, - {file = "dm_tree-0.1.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0e9620ccf06393eb6b613b5e366469304622d4ea96ae6540b28a33840e6c89cf"}, - {file = "dm_tree-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b095ba4f8ca1ba19350fd53cf1f8f3eb0bd406aa28af64a6dfc86707b32a810a"}, - {file = "dm_tree-0.1.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b9bd9b9ccb59409d33d51d84b7668010c04c2af7d4a371632874c1ca356cff3d"}, - {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d3172394079a86c3a759179c65f64c48d1a42b89495fcf38976d11cc3bb952c"}, - {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1612fcaecd79023dbc6a6ae48d51a80beb5c385d6f3f6d71688e57bc8d07de8"}, - {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5c8c12e3fda754ef6af94161bacdaeda816d941995fac415d6855c6c386af68"}, - {file = "dm_tree-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:694c3654cfd2a81552c08ec66bb5c4a3d48fa292b9a181880fb081c36c5b9134"}, - {file = "dm_tree-0.1.8-cp38-cp38-win_amd64.whl", hash = "sha256:bb2d109f42190225112da899b9f3d46d0d5f26aef501c61e43529fe9322530b5"}, - {file = "dm_tree-0.1.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d16e1f2a073604cfcc09f7131ae8d534674f43c3aef4c25742eae295bc60d04f"}, - {file = "dm_tree-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:250b692fb75f45f02e2f58fbef9ab338904ef334b90557565621fa251df267cf"}, - {file = "dm_tree-0.1.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81fce77f22a302d7a5968aebdf4efafef4def7ce96528719a354e6990dcd49c7"}, - {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ac31b9aecccb2c6e1ab29706f6ded3eba0c2c69c770322c9c685929c3d6afb"}, - {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe962015b2fe1282892b28ebe962faed53c7f98d942da9a4625cbf27baef913"}, - {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c52cbf4f8b3dbd0beaedf44f69fa85eec5e9dede612e08035e06ada6ec9426"}, - {file = "dm_tree-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:181c35521d480d0365f39300542cb6cd7fd2b77351bb43d7acfda15aef63b317"}, - {file = "dm_tree-0.1.8-cp39-cp39-win_amd64.whl", hash = "sha256:8ed3564abed97c806db122c2d3e1a2b64c74a63debe9903aad795167cc301368"}, -] -docutils = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, -] -etils = [ - {file = "etils-1.2.0-py3-none-any.whl", hash = "sha256:c6585069b387fdbeed6a2c571b8bcf312ecdb577c95065461e5fad9ed1973989"}, - {file = "etils-1.2.0.tar.gz", hash = "sha256:29d369e2dcf43960d9ee338330579d04badd606c88f015f4e1a38d3adbe446d8"}, -] -exceptiongroup = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, -] -execnet = [ - {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, - {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, -] -executing = [ - {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, - {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, -] -fastjsonschema = [ - {file = "fastjsonschema-2.16.3-py3-none-any.whl", hash = "sha256:04fbecc94300436f628517b05741b7ea009506ce8f946d40996567c669318490"}, - {file = "fastjsonschema-2.16.3.tar.gz", hash = "sha256:4a30d6315a68c253cfa8f963b9697246315aa3db89f98b97235e345dedfb0b8e"}, -] -fastprogress = [ - {file = "fastprogress-1.0.3-py3-none-any.whl", hash = "sha256:6dfea88f7a4717b0a8d6ee2048beae5dbed369f932a368c5dd9caff34796f7c5"}, - {file = "fastprogress-1.0.3.tar.gz", hash = "sha256:7a17d2b438890f838c048eefce32c4ded47197ecc8ea042cecc33d3deb8022f5"}, -] -filelock = [ - {file = "filelock-3.10.7-py3-none-any.whl", hash = "sha256:bde48477b15fde2c7e5a0713cbe72721cb5a5ad32ee0b8f419907960b9d75536"}, - {file = "filelock-3.10.7.tar.gz", hash = "sha256:892be14aa8efc01673b5ed6589dbccb95f9a8596f0507e232626155495c18105"}, -] -flax = [ - {file = "flax-0.6.8-py3-none-any.whl", hash = "sha256:221225804c263e39fe3cc8f754dc4192597cb0f063926b2338ea6563604747ed"}, - {file = "flax-0.6.8.tar.gz", hash = "sha256:bf1f81dd5dfbb10c603490531a86b1174ebbc38e5c5e8116a98115c135194c10"}, -] -fonttools = [ - {file = "fonttools-4.39.2-py3-none-any.whl", hash = "sha256:85245aa2fd4cf502a643c9a9a2b5a393703e150a6eaacc3e0e84bb448053f061"}, - {file = "fonttools-4.39.2.zip", hash = "sha256:e2d9f10337c9e3b17f9bce17a60a16a885a7d23b59b7f45ce07ea643e5580439"}, -] -gast = [ - {file = "gast-0.5.3-py3-none-any.whl", hash = "sha256:211aac1e58c167b25d3504998f2db694454a24bb1fb1225bce99420166f21d6a"}, - {file = "gast-0.5.3.tar.gz", hash = "sha256:cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"}, -] -idna = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] -imagesize = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] -importlib-metadata = [ - {file = "importlib_metadata-6.1.0-py3-none-any.whl", hash = "sha256:ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09"}, - {file = "importlib_metadata-6.1.0.tar.gz", hash = "sha256:43ce9281e097583d758c2c708c4376371261a02c34682491a8e98352365aad20"}, -] -importlib-resources = [ - {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, - {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, -] -iniconfig = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] -ipykernel = [ - {file = "ipykernel-6.22.0-py3-none-any.whl", hash = "sha256:1ae6047c1277508933078163721bbb479c3e7292778a04b4bacf0874550977d6"}, - {file = "ipykernel-6.22.0.tar.gz", hash = "sha256:302558b81f1bc22dc259fb2a0c5c7cf2f4c0bdb21b50484348f7bafe7fb71421"}, -] -ipython = [ - {file = "ipython-8.11.0-py3-none-any.whl", hash = "sha256:5b54478e459155a326bf5f42ee4f29df76258c0279c36f21d71ddb560f88b156"}, - {file = "ipython-8.11.0.tar.gz", hash = "sha256:735cede4099dbc903ee540307b9171fbfef4aa75cfcacc5a273b2cda2f02be04"}, -] -ipywidgets = [ - {file = "ipywidgets-8.0.5-py3-none-any.whl", hash = "sha256:a6e5c0392f86207fae304688a670afb26b2fd819592cfc0812777c2fdf22dbad"}, - {file = "ipywidgets-8.0.5.tar.gz", hash = "sha256:89a1930b9ef255838571a2415cc4a15e824e4316b8f067805d1d03b98b6a8c5f"}, -] -isort = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] -jax = [ - {file = "jax-0.4.8.tar.gz", hash = "sha256:08116481f7336db16c24812bfb5e6f9786915f4c2f6ff4028331fa69e7535202"}, -] -jaxlib = [ - {file = "jaxlib-0.4.7-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:63c2890978e8646516db3d8a680b43d2bed8b63543a70556391f589a261bd85f"}, - {file = "jaxlib-0.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c16f922507277d5630e81d9c1a4974366a27aad5230d645d063bc2011564d01"}, - {file = "jaxlib-0.4.7-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:da88382e6487805974cea6facc61ba92b5828a7a1f2dd80f762c487d873a2b47"}, - {file = "jaxlib-0.4.7-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:022b216036c009989d4c0683538820c19247215bb99fdd35c7bf32838d596be6"}, - {file = "jaxlib-0.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d0f1d3b6ef6c68013898cca958ab1507d6809b523275037efbdb9aaaaab158ba"}, - {file = "jaxlib-0.4.7-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:0ae7178c33460822d9d8d03718cba395e02e6bac2402709c35826c94f0c9cc7b"}, - {file = "jaxlib-0.4.7-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:ea07605e37d2b4e25f3c639e0d22ab4605fbc1a10ea918fd14ce09077bdaffb6"}, - {file = "jaxlib-0.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:48b85d3c8923b1619ddf8cbf14c4e4daf6919796d8aa9d006ce2a085e8202930"}, - {file = "jaxlib-0.4.7-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a860f2990c97bee5ffcdbb5111751591e5e7a66d5e32b4f6d9e6aa14ac82bf27"}, - {file = "jaxlib-0.4.7-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:c78dc2b6fa1c92ead137a23d1bd3e10d04c58b268e77eca811502abac05b2b19"}, - {file = "jaxlib-0.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f1f3726e374d0d6fcc14da540b71b758d37356c6726f0f4b48e2f5530a5f8769"}, - {file = "jaxlib-0.4.7-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:d4629205dbe342153941db5f69c4a1bfe35fd8d2947aebe34f4dff3771d3fff7"}, -] -jaxopt = [ - {file = "jaxopt-0.6-py3-none-any.whl", hash = "sha256:69af71c39969e9e5fa54bd50cbab3e18f6c32659d92e1bf56912a24c8ad0fca6"}, - {file = "jaxopt-0.6.tar.gz", hash = "sha256:19df9cb745ee39fa27f9ba4f01bbec5b0e3a8a1f60320aff553131a5f152c9fa"}, -] -jaxtyping = [ - {file = "jaxtyping-0.2.14-py3-none-any.whl", hash = "sha256:91de0ef79a7ee497c4b5c08f096edbcfc7627bec71e865caaf6748e8175e8627"}, - {file = "jaxtyping-0.2.14.tar.gz", hash = "sha256:5b78abbba18e0ca5b4c0870c965e204e0cdfadc1d385c24a0e1fcc15d6b3680d"}, -] -jedi = [ - {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, - {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, -] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -joblib = [ - {file = "joblib-1.2.0-py3-none-any.whl", hash = "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385"}, - {file = "joblib-1.2.0.tar.gz", hash = "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"}, -] -jsonschema = [ - {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, - {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, -] -jupyter-client = [ - {file = "jupyter_client-8.1.0-py3-none-any.whl", hash = "sha256:d5b8e739d7816944be50f81121a109788a3d92732ecf1ad1e4dadebc948818fe"}, - {file = "jupyter_client-8.1.0.tar.gz", hash = "sha256:3fbab64100a0dcac7701b1e0f1a4412f1ccb45546ff2ad9bc4fcbe4e19804811"}, -] -jupyter-core = [ - {file = "jupyter_core-5.3.0-py3-none-any.whl", hash = "sha256:d4201af84559bc8c70cead287e1ab94aeef3c512848dde077b7684b54d67730d"}, - {file = "jupyter_core-5.3.0.tar.gz", hash = "sha256:6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc"}, -] -jupyterlab-pygments = [ - {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, - {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, -] -jupyterlab-widgets = [ - {file = "jupyterlab_widgets-3.0.6-py3-none-any.whl", hash = "sha256:e95d08adf4f9c37a57da5fff8a65d00480199885fd2ecd2583fd9560b594b4e9"}, - {file = "jupyterlab_widgets-3.0.6.tar.gz", hash = "sha256:a464d68a7b9ebabdc135196389381412a39503d89302be0867d0ff3b2428ebb8"}, -] -jupytext = [ - {file = "jupytext-1.14.5-py3-none-any.whl", hash = "sha256:a5dbe60d0ea158bbf82c2bce74aba8d0c220ad7edcda09e017c5eba229b34dc8"}, - {file = "jupytext-1.14.5.tar.gz", hash = "sha256:976e66be8056459a2067e0ec3ff68cc31e00c31895faf9eb893022d319e8f5b4"}, -] -kiwisolver = [ - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6"}, - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c"}, - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32"}, - {file = "kiwisolver-1.4.4-cp310-cp310-win32.whl", hash = "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408"}, - {file = "kiwisolver-1.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4"}, - {file = "kiwisolver-1.4.4-cp311-cp311-win32.whl", hash = "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e"}, - {file = "kiwisolver-1.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-win32.whl", hash = "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c"}, - {file = "kiwisolver-1.4.4-cp38-cp38-win32.whl", hash = "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191"}, - {file = "kiwisolver-1.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9"}, - {file = "kiwisolver-1.4.4-cp39-cp39-win32.whl", hash = "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea"}, - {file = "kiwisolver-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b"}, - {file = "kiwisolver-1.4.4.tar.gz", hash = "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"}, -] -latexcodec = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, -] -linkify-it-py = [ - {file = "linkify-it-py-2.0.0.tar.gz", hash = "sha256:476464480906bed8b2fa3813bf55566282e55214ad7e41b7d1c2b564666caf2f"}, - {file = "linkify_it_py-2.0.0-py3-none-any.whl", hash = "sha256:1bff43823e24e507a099e328fc54696124423dd6320c75a9da45b4b754b748ad"}, -] -markdown-it-py = [ - {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, - {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, -] -markupsafe = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, -] -matplotlib = [ - {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:95cbc13c1fc6844ab8812a525bbc237fa1470863ff3dace7352e910519e194b1"}, - {file = "matplotlib-3.7.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:08308bae9e91aca1ec6fd6dda66237eef9f6294ddb17f0d0b3c863169bf82353"}, - {file = "matplotlib-3.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:544764ba51900da4639c0f983b323d288f94f65f4024dc40ecb1542d74dc0500"}, - {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56d94989191de3fcc4e002f93f7f1be5da476385dde410ddafbb70686acf00ea"}, - {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99bc9e65901bb9a7ce5e7bb24af03675cbd7c70b30ac670aa263240635999a4"}, - {file = "matplotlib-3.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb7d248c34a341cd4c31a06fd34d64306624c8cd8d0def7abb08792a5abfd556"}, - {file = "matplotlib-3.7.1-cp310-cp310-win32.whl", hash = "sha256:ce463ce590f3825b52e9fe5c19a3c6a69fd7675a39d589e8b5fbe772272b3a24"}, - {file = "matplotlib-3.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d7bc90727351fb841e4d8ae620d2d86d8ed92b50473cd2b42ce9186104ecbba"}, - {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:770a205966d641627fd5cf9d3cb4b6280a716522cd36b8b284a8eb1581310f61"}, - {file = "matplotlib-3.7.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f67bfdb83a8232cb7a92b869f9355d677bce24485c460b19d01970b64b2ed476"}, - {file = "matplotlib-3.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2bf092f9210e105f414a043b92af583c98f50050559616930d884387d0772aba"}, - {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89768d84187f31717349c6bfadc0e0d8c321e8eb34522acec8a67b1236a66332"}, - {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83111e6388dec67822e2534e13b243cc644c7494a4bb60584edbff91585a83c6"}, - {file = "matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a867bf73a7eb808ef2afbca03bcdb785dae09595fbe550e1bab0cd023eba3de0"}, - {file = "matplotlib-3.7.1-cp311-cp311-win32.whl", hash = "sha256:fbdeeb58c0cf0595efe89c05c224e0a502d1aa6a8696e68a73c3efc6bc354304"}, - {file = "matplotlib-3.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c0bd19c72ae53e6ab979f0ac6a3fafceb02d2ecafa023c5cca47acd934d10be7"}, - {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:6eb88d87cb2c49af00d3bbc33a003f89fd9f78d318848da029383bfc08ecfbfb"}, - {file = "matplotlib-3.7.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:cf0e4f727534b7b1457898c4f4ae838af1ef87c359b76dcd5330fa31893a3ac7"}, - {file = "matplotlib-3.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:46a561d23b91f30bccfd25429c3c706afe7d73a5cc64ef2dfaf2b2ac47c1a5dc"}, - {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8704726d33e9aa8a6d5215044b8d00804561971163563e6e6591f9dcf64340cc"}, - {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4cf327e98ecf08fcbb82685acaf1939d3338548620ab8dfa02828706402c34de"}, - {file = "matplotlib-3.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:617f14ae9d53292ece33f45cba8503494ee199a75b44de7717964f70637a36aa"}, - {file = "matplotlib-3.7.1-cp38-cp38-win32.whl", hash = "sha256:7c9a4b2da6fac77bcc41b1ea95fadb314e92508bf5493ceff058e727e7ecf5b0"}, - {file = "matplotlib-3.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:14645aad967684e92fc349493fa10c08a6da514b3d03a5931a1bac26e6792bd1"}, - {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:81a6b377ea444336538638d31fdb39af6be1a043ca5e343fe18d0f17e098770b"}, - {file = "matplotlib-3.7.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:28506a03bd7f3fe59cd3cd4ceb2a8d8a2b1db41afede01f66c42561b9be7b4b7"}, - {file = "matplotlib-3.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8c587963b85ce41e0a8af53b9b2de8dddbf5ece4c34553f7bd9d066148dc719c"}, - {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8bf26ade3ff0f27668989d98c8435ce9327d24cffb7f07d24ef609e33d582439"}, - {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:def58098f96a05f90af7e92fd127d21a287068202aa43b2a93476170ebd99e87"}, - {file = "matplotlib-3.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f883a22a56a84dba3b588696a2b8a1ab0d2c3d41be53264115c71b0a942d8fdb"}, - {file = "matplotlib-3.7.1-cp39-cp39-win32.whl", hash = "sha256:4f99e1b234c30c1e9714610eb0c6d2f11809c9c78c984a613ae539ea2ad2eb4b"}, - {file = "matplotlib-3.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:3ba2af245e36990facf67fde840a760128ddd71210b2ab6406e640188d69d136"}, - {file = "matplotlib-3.7.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3032884084f541163f295db8a6536e0abb0db464008fadca6c98aaf84ccf4717"}, - {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a2cb34336110e0ed8bb4f650e817eed61fa064acbefeb3591f1b33e3a84fd96"}, - {file = "matplotlib-3.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b867e2f952ed592237a1828f027d332d8ee219ad722345b79a001f49df0936eb"}, - {file = "matplotlib-3.7.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:57bfb8c8ea253be947ccb2bc2d1bb3862c2bccc662ad1b4626e1f5e004557042"}, - {file = "matplotlib-3.7.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:438196cdf5dc8d39b50a45cb6e3f6274edbcf2254f85fa9b895bf85851c3a613"}, - {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:21e9cff1a58d42e74d01153360de92b326708fb205250150018a52c70f43c290"}, - {file = "matplotlib-3.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75d4725d70b7c03e082bbb8a34639ede17f333d7247f56caceb3801cb6ff703d"}, - {file = "matplotlib-3.7.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:97cc368a7268141afb5690760921765ed34867ffb9655dd325ed207af85c7529"}, - {file = "matplotlib-3.7.1.tar.gz", hash = "sha256:7b73305f25eab4541bd7ee0b96d87e53ae9c9f1823be5659b806cd85786fe882"}, -] -matplotlib-inline = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, -] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] -mdit-py-plugins = [ - {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, - {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, -] -mdurl = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] -mistune = [ - {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, - {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, -] -ml-dtypes = [ - {file = "ml_dtypes-0.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a03c5acc55a878fac190d428ef01438f930cbef3fb8625c8c8fd2e3adc277607"}, - {file = "ml_dtypes-0.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e600aa70a9f8ee85c9488eb14852124c878ec824c3c7996d2d82010655eabfe"}, - {file = "ml_dtypes-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74c1fb29d2e586f643fb1a70b1dffe9fc35bc3ad8c76ec0797b2bf9f7ac128b"}, - {file = "ml_dtypes-0.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:b3f49901eb42cac259156edc17d4c1922ac47ddd1fe3c05169f445135a07319c"}, - {file = "ml_dtypes-0.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:52aaa9318e2a4ec65a6bc4842df3442a9cfa00a9b8365a08e0370b0dfefc3a5a"}, - {file = "ml_dtypes-0.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9912d50466d386a4016b16f889722183f6d6c03d9e478fdf62f41e50de0059"}, - {file = "ml_dtypes-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ece1269b5311489e26b3f3181d498b8829042f380cd160d7fe02f2393f69a71"}, - {file = "ml_dtypes-0.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:68d2e6c83c762aa6d476ea715ce6b2ac67f519c242cfe93d7a49cb76a83f6650"}, - {file = "ml_dtypes-0.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:85085f9dac85b1eee5f7d2044c47bb3df72abc7785d38d176744fde5782b76ce"}, - {file = "ml_dtypes-0.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75ef23de72daf5efcc99799dfaa387386b79502a123909b0d3098ef84ffa6fa"}, - {file = "ml_dtypes-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b651fa1f91ce83cf037db202cd2601ac9b649016ec8593459c0295e613bf47"}, - {file = "ml_dtypes-0.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:b28c6b7831fa2cbb3169ed3053f10fb11d0415e2f250b893eb874e3af747a1f3"}, - {file = "ml_dtypes-0.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:23ff15cd9ba61cc42287097c30ae6841facd6dc14cc252f977d6430b8cd6eccc"}, - {file = "ml_dtypes-0.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b148131da64f85053b79380cf34471eb869f7c027e2198a0c86d5e6fc9531f"}, - {file = "ml_dtypes-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc64866c1848999fab6f4a2938e769aed95b964085ebdcd7cd45e350192e457"}, - {file = "ml_dtypes-0.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:e64869be11c830736c40513c47918c421a8385243846f1e8fd838793d866aa87"}, - {file = "ml_dtypes-0.0.4.tar.gz", hash = "sha256:45623c738d477d7a0f3f8e4c94998dc49025202c520e62e27f0ef688db2f696f"}, -] -msgpack = [ - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, - {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, - {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, - {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, - {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, - {file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"}, - {file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"}, - {file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"}, - {file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"}, - {file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"}, - {file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, - {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, - {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, - {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, - {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, - {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, -] -mypy-extensions = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] -myst-parser = [ - {file = "myst-parser-1.0.0.tar.gz", hash = "sha256:502845659313099542bd38a2ae62f01360e7dd4b1310f025dd014dfc0439cdae"}, - {file = "myst_parser-1.0.0-py3-none-any.whl", hash = "sha256:69fb40a586c6fa68995e6521ac0a525793935db7e724ca9bac1d33be51be9a4c"}, -] -nbclient = [ - {file = "nbclient-0.7.2-py3-none-any.whl", hash = "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c"}, - {file = "nbclient-0.7.2.tar.gz", hash = "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547"}, -] -nbconvert = [ - {file = "nbconvert-7.2.10-py3-none-any.whl", hash = "sha256:e41118f81698d3d59b3c7c2887937446048f741aba6c367c1c1a77810b3e2d08"}, - {file = "nbconvert-7.2.10.tar.gz", hash = "sha256:8eed67bd8314f3ec87c4351c2f674af3a04e5890ab905d6bd927c05aec1cf27d"}, -] -nbformat = [ - {file = "nbformat-5.8.0-py3-none-any.whl", hash = "sha256:d910082bd3e0bffcf07eabf3683ed7dda0727a326c446eeb2922abe102e65162"}, - {file = "nbformat-5.8.0.tar.gz", hash = "sha256:46dac64c781f1c34dfd8acba16547024110348f9fc7eab0f31981c2a3dc48d1f"}, -] -nbsphinx = [ - {file = "nbsphinx-0.9.1-py3-none-any.whl", hash = "sha256:c2991a2c497715f52f6c727f8a633e309f097fe9bb794538011ca1ddb6b698fa"}, - {file = "nbsphinx-0.9.1.tar.gz", hash = "sha256:59bbfb7bc676a6647805fb3ca83490338ae7f96c1674a9e5e707f055c272c59d"}, -] -nest-asyncio = [ - {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, - {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, -] -networkx = [ - {file = "networkx-3.0-py3-none-any.whl", hash = "sha256:58058d66b1818043527244fab9d41a51fcd7dcc271748015f3c181b8a90c8e2e"}, - {file = "networkx-3.0.tar.gz", hash = "sha256:9a9992345353618ae98339c2b63d8201c381c2944f38a2ab49cb45a4c667e412"}, -] -nox = [ - {file = "nox-2022.11.21-py3-none-any.whl", hash = "sha256:0e41a990e290e274cb205a976c4c97ee3c5234441a8132c8c3fd9ea3c22149eb"}, - {file = "nox-2022.11.21.tar.gz", hash = "sha256:e21c31de0711d1274ca585a2c5fde36b1aa962005ba8e9322bf5eeed16dcd684"}, -] -numpy = [ - {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, - {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978"}, - {file = "numpy-1.24.2-cp310-cp310-win32.whl", hash = "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9"}, - {file = "numpy-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910"}, - {file = "numpy-1.24.2-cp311-cp311-win32.whl", hash = "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95"}, - {file = "numpy-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96"}, - {file = "numpy-1.24.2-cp38-cp38-win32.whl", hash = "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d"}, - {file = "numpy-1.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780"}, - {file = "numpy-1.24.2-cp39-cp39-win32.whl", hash = "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468"}, - {file = "numpy-1.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f"}, - {file = "numpy-1.24.2.tar.gz", hash = "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22"}, -] -opt-einsum = [ - {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, - {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, -] -optax = [ - {file = "optax-0.1.4-py3-none-any.whl", hash = "sha256:12fcf33bd682f9a162a3deb097f864130c3224d76771af2ba09410de80399a9b"}, - {file = "optax-0.1.4.tar.gz", hash = "sha256:fb7a0550d57a6636164a3de25986a8a19be8ff6431fcdf1225b4e05175810f22"}, -] -orbax = [ - {file = "orbax-0.1.7-py3-none-any.whl", hash = "sha256:67c7ce52b5476202af84977e8db03dede6c009b5d1f1095acfc175578038449b"}, - {file = "orbax-0.1.7.tar.gz", hash = "sha256:2517f566134db6597d2850450b7f486efd24bf24962bc4881007f4cc8e978b37"}, -] -orbax-checkpoint = [ - {file = "orbax-checkpoint-0.2.0.tar.gz", hash = "sha256:a4936743b04302ff1b5e1067ba8d6c381fcc6eda4e9f4c2a59bc5301720897d5"}, - {file = "orbax_checkpoint-0.2.0-py3-none-any.whl", hash = "sha256:c56f1fd8527a000aadee2d1ff16caa206f03c9125623edae2a2030b1da58f5ab"}, -] -packaging = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, -] -pandas = [ - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, - {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, - {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, - {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, - {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, - {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, - {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, - {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, -] -pandocfilters = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, -] -parso = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, -] -pathspec = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, -] -pexpect = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, -] -pickleshare = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] -pillow = [ - {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"}, - {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"}, - {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"}, - {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"}, - {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"}, - {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"}, - {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"}, - {file = "Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0"}, - {file = "Pillow-9.4.0-2-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f"}, - {file = "Pillow-9.4.0-2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c"}, - {file = "Pillow-9.4.0-2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848"}, - {file = "Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1"}, - {file = "Pillow-9.4.0-2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33"}, - {file = "Pillow-9.4.0-2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"}, - {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"}, - {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"}, - {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"}, - {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"}, - {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"}, - {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"}, - {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"}, - {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"}, - {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"}, - {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"}, - {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"}, - {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"}, -] -pkgutil-resolve-name = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] -platformdirs = [ - {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"}, - {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.38-py3-none-any.whl", hash = "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f"}, - {file = "prompt_toolkit-3.0.38.tar.gz", hash = "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b"}, -] -psutil = [ - {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, - {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, - {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, - {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, - {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, - {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, - {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, - {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, -] -ptyprocess = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] -pure-eval = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, -] -pybtex = [ - {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, - {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, -] -pybtex-docutils = [ - {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, - {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pydata-sphinx-theme = [ - {file = "pydata_sphinx_theme-0.13.1-py3-none-any.whl", hash = "sha256:ce29c1de7961d616dfa25f4c3a9619818d4bb2d4a9985ed078367af294fbccc2"}, - {file = "pydata_sphinx_theme-0.13.1.tar.gz", hash = "sha256:a37d967207c2d787cfe5cf74abfc6b3bcaf0606cac6b283a3876e603d67d6a71"}, -] -pygments = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, -] -pylint = [ - {file = "pylint-2.17.1-py3-none-any.whl", hash = "sha256:8660a54e3f696243d644fca98f79013a959c03f979992c1ab59c24d3f4ec2700"}, - {file = "pylint-2.17.1.tar.gz", hash = "sha256:d4d009b0116e16845533bc2163493d6681846ac725eab8ca8014afb520178ddd"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, - {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, - {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, - {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, - {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, - {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, -] -pytest = [ - {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, - {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, -] -pytest-cov = [ - {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, - {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, -] -pytest-pretty = [ - {file = "pytest_pretty-1.1.1-py3-none-any.whl", hash = "sha256:22d19d319f2ce07d62ea64f487616d99433cae8530cd20813487bad8a7d5f088"}, - {file = "pytest_pretty-1.1.1.tar.gz", hash = "sha256:dfabbeee334ff5e77f3f731623cd44f147b3db7001df8d9ef8ea1f54986b41e2"}, -] -pytest-xdist = [ - {file = "pytest-xdist-3.2.1.tar.gz", hash = "sha256:1849bd98d8b242b948e472db7478e090bf3361912a8fed87992ed94085f54727"}, - {file = "pytest_xdist-3.2.1-py3-none-any.whl", hash = "sha256:37290d161638a20b672401deef1cba812d110ac27e35d213f091d15b8beb40c9"}, -] -python-dateutil = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] -pytz = [ - {file = "pytz-2023.2-py2.py3-none-any.whl", hash = "sha256:8a8baaf1e237175b02f5c751eea67168043a749c843989e2b3015aa1ad9db68b"}, - {file = "pytz-2023.2.tar.gz", hash = "sha256:a27dcf612c05d2ebde626f7d506555f10dfc815b3eddccfaadfc7d99b11c9a07"}, -] -pywin32 = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -pyzmq = [ - {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ac178e666c097c8d3deb5097b58cd1316092fc43e8ef5b5fdb259b51da7e7315"}, - {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:659e62e1cbb063151c52f5b01a38e1df6b54feccfa3e2509d44c35ca6d7962ee"}, - {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8280ada89010735a12b968ec3ea9a468ac2e04fddcc1cede59cb7f5178783b9c"}, - {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b5eeb5278a8a636bb0abdd9ff5076bcbb836cd2302565df53ff1fa7d106d54"}, - {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a2e5fe42dfe6b73ca120b97ac9f34bfa8414feb15e00e37415dbd51cf227ef6"}, - {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:827bf60e749e78acb408a6c5af6688efbc9993e44ecc792b036ec2f4b4acf485"}, - {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7b504ae43d37e282301da586529e2ded8b36d4ee2cd5e6db4386724ddeaa6bbc"}, - {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb1f69a0a2a2b1aae8412979dd6293cc6bcddd4439bf07e4758d864ddb112354"}, - {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b9c9cc965cdf28381e36da525dcb89fc1571d9c54800fdcd73e3f73a2fc29bd"}, - {file = "pyzmq-25.0.2-cp310-cp310-win32.whl", hash = "sha256:24abbfdbb75ac5039205e72d6c75f10fc39d925f2df8ff21ebc74179488ebfca"}, - {file = "pyzmq-25.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6a821a506822fac55d2df2085a52530f68ab15ceed12d63539adc32bd4410f6e"}, - {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:9af0bb0277e92f41af35e991c242c9c71920169d6aa53ade7e444f338f4c8128"}, - {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:54a96cf77684a3a537b76acfa7237b1e79a8f8d14e7f00e0171a94b346c5293e"}, - {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88649b19ede1cab03b96b66c364cbbf17c953615cdbc844f7f6e5f14c5e5261c"}, - {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:715cff7644a80a7795953c11b067a75f16eb9fc695a5a53316891ebee7f3c9d5"}, - {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:312b3f0f066b4f1d17383aae509bacf833ccaf591184a1f3c7a1661c085063ae"}, - {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d488c5c8630f7e782e800869f82744c3aca4aca62c63232e5d8c490d3d66956a"}, - {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:38d9f78d69bcdeec0c11e0feb3bc70f36f9b8c44fc06e5d06d91dc0a21b453c7"}, - {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3059a6a534c910e1d5d068df42f60d434f79e6cc6285aa469b384fa921f78cf8"}, - {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6526d097b75192f228c09d48420854d53dfbc7abbb41b0e26f363ccb26fbc177"}, - {file = "pyzmq-25.0.2-cp311-cp311-win32.whl", hash = "sha256:5c5fbb229e40a89a2fe73d0c1181916f31e30f253cb2d6d91bea7927c2e18413"}, - {file = "pyzmq-25.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:ed15e3a2c3c2398e6ae5ce86d6a31b452dfd6ad4cd5d312596b30929c4b6e182"}, - {file = "pyzmq-25.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:032f5c8483c85bf9c9ca0593a11c7c749d734ce68d435e38c3f72e759b98b3c9"}, - {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:374b55516393bfd4d7a7daa6c3b36d6dd6a31ff9d2adad0838cd6a203125e714"}, - {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08bfcc21b5997a9be4fefa405341320d8e7f19b4d684fb9c0580255c5bd6d695"}, - {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1a843d26a8da1b752c74bc019c7b20e6791ee813cd6877449e6a1415589d22ff"}, - {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b48616a09d7df9dbae2f45a0256eee7b794b903ddc6d8657a9948669b345f220"}, - {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d4427b4a136e3b7f85516c76dd2e0756c22eec4026afb76ca1397152b0ca8145"}, - {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:26b0358e8933990502f4513c991c9935b6c06af01787a36d133b7c39b1df37fa"}, - {file = "pyzmq-25.0.2-cp36-cp36m-win32.whl", hash = "sha256:c8fedc3ccd62c6b77dfe6f43802057a803a411ee96f14e946f4a76ec4ed0e117"}, - {file = "pyzmq-25.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:2da6813b7995b6b1d1307329c73d3e3be2fd2d78e19acfc4eff2e27262732388"}, - {file = "pyzmq-25.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a35960c8b2f63e4ef67fd6731851030df68e4b617a6715dd11b4b10312d19fef"}, - {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2a0b880ab40aca5a878933376cb6c1ec483fba72f7f34e015c0f675c90b20"}, - {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:85762712b74c7bd18e340c3639d1bf2f23735a998d63f46bb6584d904b5e401d"}, - {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:64812f29d6eee565e129ca14b0c785744bfff679a4727137484101b34602d1a7"}, - {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:510d8e55b3a7cd13f8d3e9121edf0a8730b87d925d25298bace29a7e7bc82810"}, - {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b164cc3c8acb3d102e311f2eb6f3c305865ecb377e56adc015cb51f721f1dda6"}, - {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:28fdb9224a258134784a9cf009b59265a9dde79582fb750d4e88a6bcbc6fa3dc"}, - {file = "pyzmq-25.0.2-cp37-cp37m-win32.whl", hash = "sha256:dd771a440effa1c36d3523bc6ba4e54ff5d2e54b4adcc1e060d8f3ca3721d228"}, - {file = "pyzmq-25.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:9bdc40efb679b9dcc39c06d25629e55581e4c4f7870a5e88db4f1c51ce25e20d"}, - {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:1f82906a2d8e4ee310f30487b165e7cc8ed09c009e4502da67178b03083c4ce0"}, - {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:21ec0bf4831988af43c8d66ba3ccd81af2c5e793e1bf6790eb2d50e27b3c570a"}, - {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbce982a17c88d2312ec2cf7673985d444f1beaac6e8189424e0a0e0448dbb3"}, - {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9e1d2f2d86fc75ed7f8845a992c5f6f1ab5db99747fb0d78b5e4046d041164d2"}, - {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e92ff20ad5d13266bc999a29ed29a3b5b101c21fdf4b2cf420c09db9fb690e"}, - {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edbbf06cc2719889470a8d2bf5072bb00f423e12de0eb9ffec946c2c9748e149"}, - {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77942243ff4d14d90c11b2afd8ee6c039b45a0be4e53fb6fa7f5e4fd0b59da39"}, - {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ab046e9cb902d1f62c9cc0eca055b1d11108bdc271caf7c2171487298f229b56"}, - {file = "pyzmq-25.0.2-cp38-cp38-win32.whl", hash = "sha256:ad761cfbe477236802a7ab2c080d268c95e784fe30cafa7e055aacd1ca877eb0"}, - {file = "pyzmq-25.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8560756318ec7c4c49d2c341012167e704b5a46d9034905853c3d1ade4f55bee"}, - {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:ab2c056ac503f25a63f6c8c6771373e2a711b98b304614151dfb552d3d6c81f6"}, - {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cca8524b61c0eaaa3505382dc9b9a3bc8165f1d6c010fdd1452c224225a26689"}, - {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cfb9f7eae02d3ac42fbedad30006b7407c984a0eb4189a1322241a20944d61e5"}, - {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5eaeae038c68748082137d6896d5c4db7927e9349237ded08ee1bbd94f7361c9"}, - {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a31992a8f8d51663ebf79df0df6a04ffb905063083d682d4380ab8d2c67257c"}, - {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6a979e59d2184a0c8f2ede4b0810cbdd86b64d99d9cc8a023929e40dce7c86cc"}, - {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1f124cb73f1aa6654d31b183810febc8505fd0c597afa127c4f40076be4574e0"}, - {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:65c19a63b4a83ae45d62178b70223adeee5f12f3032726b897431b6553aa25af"}, - {file = "pyzmq-25.0.2-cp39-cp39-win32.whl", hash = "sha256:83d822e8687621bed87404afc1c03d83fa2ce39733d54c2fd52d8829edb8a7ff"}, - {file = "pyzmq-25.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:24683285cc6b7bf18ad37d75b9db0e0fefe58404e7001f1d82bf9e721806daa7"}, - {file = "pyzmq-25.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a4b4261eb8f9ed71f63b9eb0198dd7c934aa3b3972dac586d0ef502ba9ab08b"}, - {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:62ec8d979f56c0053a92b2b6a10ff54b9ec8a4f187db2b6ec31ee3dd6d3ca6e2"}, - {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:affec1470351178e892121b3414c8ef7803269f207bf9bef85f9a6dd11cde264"}, - {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffc71111433bd6ec8607a37b9211f4ef42e3d3b271c6d76c813669834764b248"}, - {file = "pyzmq-25.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:6fadc60970714d86eff27821f8fb01f8328dd36bebd496b0564a500fe4a9e354"}, - {file = "pyzmq-25.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:269968f2a76c0513490aeb3ba0dc3c77b7c7a11daa894f9d1da88d4a0db09835"}, - {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f7c8b8368e84381ae7c57f1f5283b029c888504aaf4949c32e6e6fb256ec9bf0"}, - {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25e6873a70ad5aa31e4a7c41e5e8c709296edef4a92313e1cd5fc87bbd1874e2"}, - {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b733076ff46e7db5504c5e7284f04a9852c63214c74688bdb6135808531755a3"}, - {file = "pyzmq-25.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a6f6ae12478fdc26a6d5fdb21f806b08fa5403cd02fd312e4cb5f72df078f96f"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:67da1c213fbd208906ab3470cfff1ee0048838365135a9bddc7b40b11e6d6c89"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531e36d9fcd66f18de27434a25b51d137eb546931033f392e85674c7a7cea853"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34a6fddd159ff38aa9497b2e342a559f142ab365576284bc8f77cb3ead1f79c5"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b491998ef886662c1f3d49ea2198055a9a536ddf7430b051b21054f2a5831800"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:5d496815074e3e3d183fe2c7fcea2109ad67b74084c254481f87b64e04e9a471"}, - {file = "pyzmq-25.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:56a94ab1d12af982b55ca96c6853db6ac85505e820d9458ac76364c1998972f4"}, - {file = "pyzmq-25.0.2.tar.gz", hash = "sha256:6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149"}, -] -requests = [ - {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, - {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, -] -rich = [ - {file = "rich-13.3.3-py3-none-any.whl", hash = "sha256:540c7d6d26a1178e8e8b37e9ba44573a3cd1464ff6348b99ee7061b95d1c6333"}, - {file = "rich-13.3.3.tar.gz", hash = "sha256:dc84400a9d842b3a9c5ff74addd8eb798d155f36c1c91303888e0a66850d2a15"}, -] -ruff = [ - {file = "ruff-0.0.259-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:f3938dc45e2a3f818e9cbd53007265c22246fbfded8837b2c563bf0ebde1a226"}, - {file = "ruff-0.0.259-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:22e1e35bf5f12072cd644d22afd9203641ccf258bc14ff91aa1c43dc14f6047d"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2fb20e89e85d147c85caa807707a1488bccc1f3854dc3d53533e89b52a0c5ff"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:49e903bcda19f6bb0725a962c058eb5d61f40d84ef52ed53b61939b69402ab4e"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71f0ef1985e9a6696fa97da8459917fa34bdaa2c16bd33bd5edead585b7d44f7"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7cfef26619cba184d59aa7fa17b48af5891d51fc0b755a9bc533478a10d4d066"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79b02fa17ec1fd8d306ae302cb47fb614b71e1f539997858243769bcbe78c6d9"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:428507fb321b386dda70d66cd1a8aa0abf51d7c197983d83bb9e4fa5ee60300b"}, - {file = "ruff-0.0.259-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5fbaea9167f1852757f02133e5daacdb8c75b3431343205395da5b10499927a"}, - {file = "ruff-0.0.259-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:40ae87f2638484b7e8a7567b04a7af719f1c484c5bf132038b702bb32e1f6577"}, - {file = "ruff-0.0.259-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:29e2b77b7d5da6a7dd5cf9b738b511355c5734ece56f78e500d4b5bffd58c1a0"}, - {file = "ruff-0.0.259-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b3c1beacf6037e7f0781d4699d9a2dd4ba2462f475be5b1f45cf84c4ba3c69d"}, - {file = "ruff-0.0.259-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:daaea322e7e85f4c13d82be9536309e1c4b8b9851bb0cbc7eeb15d490fd46bf9"}, - {file = "ruff-0.0.259-py3-none-win32.whl", hash = "sha256:38704f151323aa5858370a2f792e122cc25e5d1aabe7d42ceeab83da18f0b456"}, - {file = "ruff-0.0.259-py3-none-win_amd64.whl", hash = "sha256:aa9449b898287e621942cc71b9327eceb8f0c357e4065fecefb707ef2d978df8"}, - {file = "ruff-0.0.259-py3-none-win_arm64.whl", hash = "sha256:e4f39e18702de69faaaee3969934b92d7467285627f99a5b6ecd55a7d9f5d086"}, - {file = "ruff-0.0.259.tar.gz", hash = "sha256:8b56496063ab3bfdf72339a5fbebb8bd46e5c5fee25ef11a9f03b208fa0562ec"}, -] -scikit-learn = [ - {file = "scikit-learn-1.2.2.tar.gz", hash = "sha256:8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7"}, - {file = "scikit_learn-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99cc01184e347de485bf253d19fcb3b1a3fb0ee4cea5ee3c43ec0cc429b6d29f"}, - {file = "scikit_learn-1.2.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e6e574db9914afcb4e11ade84fab084536a895ca60aadea3041e85b8ac963edb"}, - {file = "scikit_learn-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fe83b676f407f00afa388dd1fdd49e5c6612e551ed84f3b1b182858f09e987d"}, - {file = "scikit_learn-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2642baa0ad1e8f8188917423dd73994bf25429f8893ddbe115be3ca3183584"}, - {file = "scikit_learn-1.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ad66c3848c0a1ec13464b2a95d0a484fd5b02ce74268eaa7e0c697b904f31d6c"}, - {file = "scikit_learn-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfeaf8be72117eb61a164ea6fc8afb6dfe08c6f90365bde2dc16456e4bc8e45f"}, - {file = "scikit_learn-1.2.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:fe0aa1a7029ed3e1dcbf4a5bc675aa3b1bc468d9012ecf6c6f081251ca47f590"}, - {file = "scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:065e9673e24e0dc5113e2dd2b4ca30c9d8aa2fa90f4c0597241c93b63130d233"}, - {file = "scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf036ea7ef66115e0d49655f16febfa547886deba20149555a41d28f56fd6d3c"}, - {file = "scikit_learn-1.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:8b0670d4224a3c2d596fd572fb4fa673b2a0ccfb07152688ebd2ea0b8c61025c"}, - {file = "scikit_learn-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9c710ff9f9936ba8a3b74a455ccf0dcf59b230caa1e9ba0223773c490cab1e51"}, - {file = "scikit_learn-1.2.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:2dd3ffd3950e3d6c0c0ef9033a9b9b32d910c61bd06cb8206303fb4514b88a49"}, - {file = "scikit_learn-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44b47a305190c28dd8dd73fc9445f802b6ea716669cfc22ab1eb97b335d238b1"}, - {file = "scikit_learn-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:953236889928d104c2ef14027539f5f2609a47ebf716b8cbe4437e85dce42744"}, - {file = "scikit_learn-1.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:7f69313884e8eb311460cc2f28676d5e400bd929841a2c8eb8742ae78ebf7c20"}, - {file = "scikit_learn-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8156db41e1c39c69aa2d8599ab7577af53e9e5e7a57b0504e116cc73c39138dd"}, - {file = "scikit_learn-1.2.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fe175ee1dab589d2e1033657c5b6bec92a8a3b69103e3dd361b58014729975c3"}, - {file = "scikit_learn-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d5312d9674bed14f73773d2acf15a3272639b981e60b72c9b190a0cffed5bad"}, - {file = "scikit_learn-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea061bf0283bf9a9f36ea3c5d3231ba2176221bbd430abd2603b1c3b2ed85c89"}, - {file = "scikit_learn-1.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:6477eed40dbce190f9f9e9d0d37e020815825b300121307942ec2110302b66a3"}, -] -scipy = [ - {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, - {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, - {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, - {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, - {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, - {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, - {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, -] -seaborn = [ - {file = "seaborn-0.12.2-py3-none-any.whl", hash = "sha256:ebf15355a4dba46037dfd65b7350f014ceb1f13c05e814eda2c9f5fd731afc08"}, - {file = "seaborn-0.12.2.tar.gz", hash = "sha256:374645f36509d0dcab895cba5b47daf0586f77bfe3b36c97c607db7da5be0139"}, -] -setuptools = [ - {file = "setuptools-67.6.0-py3-none-any.whl", hash = "sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2"}, - {file = "setuptools-67.6.0.tar.gz", hash = "sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077"}, -] -setuptools-scm = [ - {file = "setuptools_scm-7.1.0-py3-none-any.whl", hash = "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e"}, - {file = "setuptools_scm-7.1.0.tar.gz", hash = "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27"}, -] -simple-pytree = [ - {file = "simple_pytree-0.1.7-py3-none-any.whl", hash = "sha256:d84834955b153eeb22a944bdfeff7ce1a261e31ef347f0b1e07bb0eedbb3f0ea"}, - {file = "simple_pytree-0.1.7.tar.gz", hash = "sha256:037c5c492de191038c6625fb223da572ec321e829150f48c452e100d69bbffba"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -soupsieve = [ - {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"}, - {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, -] -sphinx = [ - {file = "Sphinx-6.1.3.tar.gz", hash = "sha256:0dac3b698538ffef41716cf97ba26c1c7788dba73ce6f150c1ff5b4720786dd2"}, - {file = "sphinx-6.1.3-py3-none-any.whl", hash = "sha256:807d1cb3d6be87eb78a381c3e70ebd8d346b9a25f3753e9947e866b2786865fc"}, -] -sphinx-book-theme = [ - {file = "sphinx_book_theme-1.0.0-py3-none-any.whl", hash = "sha256:f6baba7888d5a63328a210e9960a7a6e951e9632d74edb6fce48c9d5d8c28768"}, - {file = "sphinx_book_theme-1.0.0.tar.gz", hash = "sha256:7c76ea51347e55d801504bfb1b2433cba49e7212a25fbebd0ce44b3c098ea946"}, -] -sphinx-copybutton = [ - {file = "sphinx-copybutton-0.5.1.tar.gz", hash = "sha256:366251e28a6f6041514bfb5439425210418d6c750e98d3a695b73e56866a677a"}, - {file = "sphinx_copybutton-0.5.1-py3-none-any.whl", hash = "sha256:0842851b5955087a7ec7fc870b622cb168618ad408dee42692e9a5c97d071da8"}, -] -sphinx-tabs = [ - {file = "sphinx-tabs-3.4.1.tar.gz", hash = "sha256:d2a09f9e8316e400d57503f6df1c78005fdde220e5af589cc79d493159e1b832"}, - {file = "sphinx_tabs-3.4.1-py3-none-any.whl", hash = "sha256:7cea8942aeccc5d01a995789c01804b787334b55927f29b36ba16ed1e7cb27c6"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, -] -sphinxcontrib-bibtex = [ - {file = "sphinxcontrib-bibtex-2.5.0.tar.gz", hash = "sha256:71b42e5db0e2e284f243875326bf9936aa9a763282277d75048826fef5b00eaa"}, - {file = "sphinxcontrib_bibtex-2.5.0-py3-none-any.whl", hash = "sha256:748f726eaca6efff7731012103417ef130ecdcc09501b4d0c54283bf5f059f76"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -sphinxext-opengraph = [ - {file = "sphinxext-opengraph-0.8.1.tar.gz", hash = "sha256:4e698b907ef9582cd0106bd50807106677fdab4dc5c31040be17c9afb6e17880"}, - {file = "sphinxext_opengraph-0.8.1-py3-none-any.whl", hash = "sha256:64fe993d4974c65202d1c8f1c986abb559154a814a6378f9d3aaf8c7c9bd62bc"}, -] -stack-data = [ - {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, - {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, -] -tensorflow-probability = [ - {file = "tensorflow_probability-0.19.0-py2.py3-none-any.whl", hash = "sha256:ee70967fbd52b09e9c5ec148a9437c4cf3f9e9d689cdca400a1bc921f21cdcac"}, -] -tensorstore = [ - {file = "tensorstore-0.1.35-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:4e1b4210b777c4a585a183bdd435bfa8aa5628c46075cb64adcd9b4bdd124e35"}, - {file = "tensorstore-0.1.35-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285cfc4816bb0cc305cddc11f25f81a14bd84af0c8bbd39e42c81413c0bf242e"}, - {file = "tensorstore-0.1.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a8578518362daee85e39162bf870faf5545868cd53fe99ede0eda1fad288f6"}, - {file = "tensorstore-0.1.35-cp310-cp310-win_amd64.whl", hash = "sha256:a0318ea4afd4f2c00ce2dd4b540acb31c45a260bda94ae7e4340a1a4d28c6848"}, - {file = "tensorstore-0.1.35-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:7173f451c1b970230f57b0cdefdd692940ee457d4982a696d00aba163a7fee9a"}, - {file = "tensorstore-0.1.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2fc9d8e5aaa54c538434592eaf88f7dfa6773fb35a960cc4cbe20bef55092d7"}, - {file = "tensorstore-0.1.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f34fc72a9ceff1c1666b6c85cc86858adbd10ff1c3c6b98c7788bbea9161a6a6"}, - {file = "tensorstore-0.1.35-cp311-cp311-win_amd64.whl", hash = "sha256:216bf4c00ec4aabf699d2a54ee9311f2fb19a2a3a904d7abb2194572af2f8384"}, - {file = "tensorstore-0.1.35-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:932f96d35ebdf0e4650bd9cd089319e9c5723d2aaf3f65123a821fc3b04ca4ac"}, - {file = "tensorstore-0.1.35-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9d0ea7888a88e5d892894ddf14f76d37665d0adbc2d861c559d0d6d5eaac20d"}, - {file = "tensorstore-0.1.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd1406fd325517331887b0b2533e27e17e549196418eb087730bafa6fffaa236"}, - {file = "tensorstore-0.1.35-cp38-cp38-win_amd64.whl", hash = "sha256:99ad4e577249c2dfb07a501d78a31e29d6b9e53752384d58782ad53e6014ac41"}, - {file = "tensorstore-0.1.35-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:9acf9e9a7b3117881ec11f26930d0fee89cce6bb3d81056c15317f7cf2c0c1e1"}, - {file = "tensorstore-0.1.35-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d742468c6aec6a1dcf3ec164694c9827eb498b2c701b8020fb4a56446f9bbc1a"}, - {file = "tensorstore-0.1.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8011a556b4cbbc547e9365cf833ce7a5fb9fdbaa3f86a92665b78a78b78131"}, - {file = "tensorstore-0.1.35-cp39-cp39-win_amd64.whl", hash = "sha256:04c383af4a17e238fffdda7abc06b66c8583554d523cd721f2011bbb7a715327"}, - {file = "tensorstore-0.1.35.tar.gz", hash = "sha256:93db16e2f448cad716628640d3b73b87d9b259ae8ba1741a82108aef14e427c6"}, -] -threadpoolctl = [ - {file = "threadpoolctl-3.1.0-py3-none-any.whl", hash = "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b"}, - {file = "threadpoolctl-3.1.0.tar.gz", hash = "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380"}, -] -tinycss2 = [ - {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, - {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -tomlkit = [ - {file = "tomlkit-0.11.7-py3-none-any.whl", hash = "sha256:5325463a7da2ef0c6bbfefb62a3dc883aebe679984709aee32a317907d0a8d3c"}, - {file = "tomlkit-0.11.7.tar.gz", hash = "sha256:f392ef70ad87a672f02519f99967d28a4d3047133e2d1df936511465fbb3791d"}, -] -toolz = [ - {file = "toolz-0.12.0-py3-none-any.whl", hash = "sha256:2059bd4148deb1884bb0eb770a3cde70e7f954cfbbdc2285f1f2de01fd21eb6f"}, - {file = "toolz-0.12.0.tar.gz", hash = "sha256:88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"}, -] -tornado = [ - {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, - {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, - {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, - {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, - {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, -] -tqdm = [ - {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, - {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, -] -traitlets = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, -] -typeguard = [ - {file = "typeguard-3.0.2-py3-none-any.whl", hash = "sha256:bbe993854385284ab42fd5bd3bee6f6556577ce8b50696d6cb956d704f286c8e"}, - {file = "typeguard-3.0.2.tar.gz", hash = "sha256:fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a"}, -] -typing-extensions = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, -] -uc-micro-py = [ - {file = "uc-micro-py-1.0.1.tar.gz", hash = "sha256:b7cdf4ea79433043ddfe2c82210208f26f7962c0cfbe3bacb05ee879a7fdb596"}, - {file = "uc_micro_py-1.0.1-py3-none-any.whl", hash = "sha256:316cfb8b6862a0f1d03540f0ae6e7b033ff1fa0ddbe60c12cbe0d4cec846a69f"}, -] -urllib3 = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, -] -virtualenv = [ - {file = "virtualenv-20.21.0-py3-none-any.whl", hash = "sha256:31712f8f2a17bd06234fa97fdf19609e789dd4e3e4bf108c3da71d710651adbc"}, - {file = "virtualenv-20.21.0.tar.gz", hash = "sha256:f50e3e60f990a0757c9b68333c9fdaa72d7188caa417f96af9e52407831a3b68"}, -] -watermark = [ - {file = "watermark-2.3.1-py2.py3-none-any.whl", hash = "sha256:8e2681e512660e50d2aa460fd7d40d8ed2862735ae5087fc0ec7752fb10ee29c"}, - {file = "watermark-2.3.1.tar.gz", hash = "sha256:0a69eb017f4f96e909739f25ce1a3bd0729c65d8cf4294ea07d609322360019a"}, -] -wcwidth = [ - {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, - {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, -] -webencodings = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] -widgetsnbextension = [ - {file = "widgetsnbextension-4.0.6-py3-none-any.whl", hash = "sha256:7df2bffa274b0b416c1fa0789e321451858a9e276e1220b40a16cc994192e2b7"}, - {file = "widgetsnbextension-4.0.6.tar.gz", hash = "sha256:1a07d06c881a7c16ca7ab4541b476edbe2e404f5c5f0cf524ffa2406a8bd7c80"}, -] -wrapt = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, -] -zipp = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, -] +content-hash = "186feee0637ce1cbcf47445174feb5f173a43fadfd1194305c1a595d5c6cad79" diff --git a/pyproject.toml b/pyproject.toml index 943d1c78..4c67c2e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ tqdm = "^4.65.0" simple-pytree = "^0.1.7" tensorflow-probability = "^0.19.0" orbax-checkpoint = "^0.2.0" +beartype = "^0.13.1" [tool.poetry.group.test.dependencies] pytest = "^7.2.2" From 97d6fdd99710334b4dda4078d4e91bb26a59d87c Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:33:29 +0300 Subject: [PATCH 29/87] from beartype.typing import ... --- gpjax/base/module.py | 2 +- gpjax/base/param.py | 2 +- gpjax/dataset.py | 2 +- gpjax/fit.py | 2 +- gpjax/progress_bar.py | 2 +- gpjax/scan.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index b661b2e0..3d055ed3 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -20,7 +20,7 @@ import dataclasses import os from copy import copy, deepcopy -from typing import Any, Callable, Dict, Iterable, List, Tuple +from beartype.typing import Any, Callable, Dict, Iterable, List, Tuple, TypeVar import jax import jax.tree_util as jtu diff --git a/gpjax/base/param.py b/gpjax/base/param.py index fecf3bf0..2aa21b43 100644 --- a/gpjax/base/param.py +++ b/gpjax/base/param.py @@ -18,7 +18,7 @@ __all__ = ["param_field"] import dataclasses -from typing import Any, Mapping, Optional +from beartype.typing import Any, Mapping, Optional import tensorflow_probability.substrates.jax.bijectors as tfb diff --git a/gpjax/dataset.py b/gpjax/dataset.py index 20427f80..b5bcf732 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -15,7 +15,7 @@ from __future__ import annotations from dataclasses import dataclass -from typing import Optional +from beartype.typing import Optional import jax.numpy as jnp from jaxtyping import Array, Float diff --git a/gpjax/fit.py b/gpjax/fit.py index 7cd2de75..b9da598c 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Any, Optional, Tuple +from beartype.typing import Any, Optional, Tuple import jax import jax.random as jr diff --git a/gpjax/progress_bar.py b/gpjax/progress_bar.py index 5a10ef5e..eec6ad78 100644 --- a/gpjax/progress_bar.py +++ b/gpjax/progress_bar.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Any, Callable, Union +from beartype.typing import Any, Callable, Union from jax import lax from jax.experimental import host_callback diff --git a/gpjax/scan.py b/gpjax/scan.py index 9eeb7c10..c860c0cb 100644 --- a/gpjax/scan.py +++ b/gpjax/scan.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from typing import Any, Callable, List, Optional, Tuple, TypeVar +from beartype.typing import Any, Callable, List, Optional, Tuple, TypeVar import jax import jax.numpy as jnp From cd7c2eed92c98b8e398e09a2a330bfe66eb50b1e Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:33:55 +0300 Subject: [PATCH 30/87] try to fix Self in gpjax/base/module --- gpjax/base/module.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index 3d055ed3..9bac0871 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -31,7 +31,9 @@ PyTreeCheckpointer, PyTreeCheckpointHandler, RestoreArgs, SaveArgs) from simple_pytree import Pytree, static_field -from typing_extensions import Self + + +Self = TypeVar('T') class Module(Pytree): @@ -49,7 +51,7 @@ def __init_subclass__(cls, mutable: bool = False): ): cls._pytree__meta[field] = {**value.metadata} - def replace(self, **kwargs: Any) -> Self: + def replace(self: Self, **kwargs: Any) -> Self: """ Replace the values of the fields of the object. @@ -68,7 +70,7 @@ def replace(self, **kwargs: Any) -> Self: pytree.__dict__.update(kwargs) return pytree - def replace_meta(self, **kwargs: Any) -> Self: + def replace_meta(self: Self, **kwargs: Any) -> Self: """ Replace the metadata of the fields. @@ -87,7 +89,7 @@ def replace_meta(self, **kwargs: Any) -> Self: pytree.__dict__.update(_pytree__meta={**pytree._pytree__meta, **kwargs}) return pytree - def update_meta(self, **kwargs: Any) -> Self: + def update_meta(self: Self, **kwargs: Any) -> Self: """ Update the metadata of the fields. The metadata must already exist. @@ -112,15 +114,15 @@ def update_meta(self, **kwargs: Any) -> Self: pytree.__dict__.update(_pytree__meta=new) return pytree - def replace_trainable(self: Module, **kwargs: Dict[str, bool]) -> Self: + def replace_trainable(self: Self, **kwargs: Dict[str, bool]) -> Self: """Replace the trainability status of local nodes of the Module.""" return self.update_meta(**{k: {"trainable": v} for k, v in kwargs.items()}) - def replace_bijector(self: Module, **kwargs: Dict[str, tfb.Bijector]) -> Self: + def replace_bijector(self: Self, **kwargs: Dict[str, tfb.Bijector]) -> Self: """Replace the bijectors of local nodes of the Module.""" return self.update_meta(**{k: {"bijector": v} for k, v in kwargs.items()}) - def constrain(self) -> Self: + def constrain(self: Self) -> Self: """Transform model parameters to the constrained space according to their defined bijectors. Returns: @@ -137,7 +139,7 @@ def _apply_constrain(meta_leaf): return meta_map(_apply_constrain, self) - def unconstrain(self) -> Self: + def unconstrain(self: Self) -> Self: """Transform model parameters to the unconstrained space according to their defined bijectors. Returns: @@ -154,7 +156,7 @@ def _apply_unconstrain(meta_leaf): return meta_map(_apply_unconstrain, self) - def stop_gradient(self) -> Self: + def stop_gradient(self: Self) -> Self: """Stop gradients flowing through the Module. Returns: From 8a62aae0abc6f1396d9d3f86041e5c6f054448e8 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:34:12 +0300 Subject: [PATCH 31/87] fix _check_shape --- gpjax/dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index b5bcf732..bd230cc6 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -84,7 +84,7 @@ def out_dim(self) -> int: return self.y.shape[1] -def _check_shape(X: Float[Array, "N D"], y: Float[Array, "N Q"]) -> None: +def _check_shape(X: Optional[Float[Array, "N D"]], y: Optional[Float[Array, "N Q"]]) -> None: """Checks that the shapes of X and y are compatible.""" if X is not None and y is not None: if X.shape[0] != y.shape[0]: From 9359b05ab40b6ca5f0147bdb5361b2a530a8600c Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:34:30 +0300 Subject: [PATCH 32/87] gpjax.objectives: always import from gps and variational_families --- gpjax/objectives.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 309000bd..82860f3d 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -1,10 +1,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from .gps import ConjugatePosterior, NonConjugatePosterior - from .variational_families import AbstractVariationalFamily +from .gps import ConjugatePosterior, NonConjugatePosterior +from .variational_families import AbstractVariationalFamily from abc import abstractmethod from dataclasses import dataclass From c687cfeeb72dbd1b2b6a4af1e6c5d5b1875dad2a Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:38:21 +0300 Subject: [PATCH 33/87] Revert "gpjax.objectives: always import from gps and variational_families" This reverts commit 9359b05ab40b6ca5f0147bdb5361b2a530a8600c. --- gpjax/objectives.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 82860f3d..309000bd 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -1,7 +1,10 @@ from __future__ import annotations -from .gps import ConjugatePosterior, NonConjugatePosterior -from .variational_families import AbstractVariationalFamily +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .gps import ConjugatePosterior, NonConjugatePosterior + from .variational_families import AbstractVariationalFamily from abc import abstractmethod from dataclasses import dataclass From 96d3d1e45dff25cec4a317877d3145f095d01894 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:39:58 +0300 Subject: [PATCH 34/87] fix gpjax.objectives imported types --- gpjax/objectives.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 309000bd..4aa11f32 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -1,11 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from .gps import ConjugatePosterior, NonConjugatePosterior - from .variational_families import AbstractVariationalFamily - from abc import abstractmethod from dataclasses import dataclass @@ -48,7 +42,7 @@ def step(self, *args, **kwargs) -> Float[Array, "1"]: class ConjugateMLL(AbstractObjective): def step( - self, posterior: ConjugatePosterior, train_data: Dataset + self, posterior: "gpjax.gps.ConjugatePosterior", train_data: Dataset ) -> Float[Array, "1"]: """Compute the marginal log-likelihood function of the Gaussian process. The returned function can then be used for gradient based optimisation @@ -131,7 +125,7 @@ def step( class NonConjugateMLL(AbstractObjective): def step( - self, posterior: NonConjugatePosterior, data: Dataset + self, posterior: "gpjax.gps.NonConjugatePosterior", data: Dataset ) -> Float[Array, "1"]: """ Compute the marginal log-likelihood function of the Gaussian process. @@ -190,7 +184,7 @@ def step( class ELBO(AbstractObjective): def step( - self, variational_family: AbstractVariationalFamily, train_data: Dataset + self, variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset ) -> Float[Array, "1"]: """Compute the evidence lower bound under this model. In short, this requires evaluating the expectation of the model's log-likelihood under the variational @@ -233,7 +227,7 @@ def step( def variational_expectation( - variational_family: AbstractVariationalFamily, + variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset, ) -> Float[Array, "N 1"]: """Compute the expectation of our model's log-likelihood under our variational @@ -279,7 +273,7 @@ class CollapsedELBO(AbstractObjective): """ def step( - self, variational_family: AbstractVariationalFamily, train_data: Dataset + self, variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset ) -> Float[Array, "1"]: """Compute the evidence lower bound under this model. In short, this requires evaluating the expectation of the model's log-likelihood under the variational From fc186520cb723b08c9028b4962d12c4c9dcae6d7 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:40:18 +0300 Subject: [PATCH 35/87] <...> | None not supported by beartype; replaced by Optional[<...>] --- gpjax/base/module.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index 9bac0871..cf704918 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -20,7 +20,7 @@ import dataclasses import os from copy import copy, deepcopy -from beartype.typing import Any, Callable, Dict, Iterable, List, Tuple, TypeVar +from beartype.typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, TypeVar import jax import jax.tree_util as jtu @@ -199,7 +199,7 @@ def _toplevel_meta(pytree: Any) -> List[Dict[str, Any]]: def meta_leaves( pytree: Module, *, - is_leaf: Callable[[Any], bool] | None = None, + is_leaf: Optional[Callable[[Any], bool]] = None, ) -> List[Tuple[Dict[str, Any], Any]]: """ Returns the meta of the leaves of the pytree. @@ -215,7 +215,7 @@ def meta_leaves( def _unpack_metadata( meta_leaf: Any, pytree: Module, - is_leaf: Callable[[Any], bool] | None, + is_leaf: Optional[Callable[[Any], bool]], ): """Recursively unpack leaf metadata.""" if is_leaf and is_leaf(pytree): @@ -237,7 +237,7 @@ def _unpack_metadata( def meta_flatten( - pytree: Module, *, is_leaf: Callable[[Any], bool] | None = None + pytree: Module, *, is_leaf: Optional[Callable[[Any], bool]] = None ) -> Module: """ Returns the meta of the Module. @@ -258,7 +258,7 @@ def meta_map( f: Callable[[Any, Dict[str, Any]], Any], pytree: Module, *rest: Any, - is_leaf: Callable[[Any], bool] | None = None, + is_leaf: Optional[Callable[[Any], bool]] = None, ) -> Module: """Apply a function to a Module where the first argument are the pytree leaves, and the second argument are the Module metadata leaves. Args: @@ -275,7 +275,7 @@ def meta_map( return treedef.unflatten(f(*xs) for xs in zip(*all_leaves)) -def meta(pytree: Module, *, is_leaf: Callable[[Any], bool] | None = None) -> Module: +def meta(pytree: Module, *, is_leaf: Optional[Callable[[Any], bool]] = None) -> Module: """Returns the metadata of the Module as a pytree. Args: From 4cbe562c8077e41feee0db748aa1c8b4da9dc0d9 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 11:56:18 +0300 Subject: [PATCH 36/87] gpjax.datasets: cannot specify strict array shape AND rely on _check_shape --- gpjax/dataset.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index bd230cc6..7511828c 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -15,7 +15,7 @@ from __future__ import annotations from dataclasses import dataclass -from beartype.typing import Optional +from beartype.typing import Optional, Union import jax.numpy as jnp from jaxtyping import Array, Float @@ -31,8 +31,8 @@ class Dataset(Pytree): y (Optional[Float[Array, "N Q"]]): Output data. """ - X: Optional[Float[Array, "N D"]] = None - y: Optional[Float[Array, "N Q"]] = None + X: Optional[Union[Float[Array, "N D"], Float[Array, "..."]]] = None + y: Optional[Union[Float[Array, "N Q"], Float[Array, "..."]]] = None def __post_init__(self) -> None: """Checks that the shapes of X and y are compatible.""" @@ -84,7 +84,7 @@ def out_dim(self) -> int: return self.y.shape[1] -def _check_shape(X: Optional[Float[Array, "N D"]], y: Optional[Float[Array, "N Q"]]) -> None: +def _check_shape(X: Optional[Float[Array, "..."]], y: Optional[Float[Array, "..."]]) -> None: """Checks that the shapes of X and y are compatible.""" if X is not None and y is not None: if X.shape[0] != y.shape[0]: From 16006ace2e289e6d0955d8369adb4cfe7b229947 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 12:08:39 +0300 Subject: [PATCH 37/87] our tfd.Distribution subclassing requires the fix introduced in jaxtyping 0.2.15 --- poetry.lock | 6 +++--- pyproject.toml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 49cb5376..cb4d039f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1314,14 +1314,14 @@ scipy = ">=1.0.0" [[package]] name = "jaxtyping" -version = "0.2.14" +version = "0.2.15" description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." category = "main" optional = false python-versions = "~=3.8" files = [ - {file = "jaxtyping-0.2.14-py3-none-any.whl", hash = "sha256:91de0ef79a7ee497c4b5c08f096edbcfc7627bec71e865caaf6748e8175e8627"}, - {file = "jaxtyping-0.2.14.tar.gz", hash = "sha256:5b78abbba18e0ca5b4c0870c965e204e0cdfadc1d385c24a0e1fcc15d6b3680d"}, + {file = "jaxtyping-0.2.15-py3-none-any.whl", hash = "sha256:57f434439df79ea141c7e6d3bbbfd2576cf70bf3f7c9aa10d1f833590f26fd94"}, + {file = "jaxtyping-0.2.15.tar.gz", hash = "sha256:19f56208d495ee5c7d041012d260e088998e4385d8156a2ea084b90819871c64"}, ] [package.dependencies] diff --git a/pyproject.toml b/pyproject.toml index 4c67c2e2..663ff59d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ python = ">=3.8,<3.12" jax = ">=0.4.1" jaxlib = "^0.4.6" optax = "^0.1.4" -jaxtyping = "^0.2.14" +jaxtyping = "^0.2.15" tqdm = "^4.65.0" simple-pytree = "^0.1.7" tensorflow-probability = "^0.19.0" @@ -112,4 +112,4 @@ source = ["src"] output = "reports/coverage.xml" [tool.poetry-dynamic-versioning] -enable = true \ No newline at end of file +enable = true From c95badbce14c0545fb5a6f3a7277107ad285639b Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 12:38:50 +0300 Subject: [PATCH 38/87] need to import base first! --- gpjax/kernels/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gpjax/kernels/__init__.py b/gpjax/kernels/__init__.py index 3cbfeba7..c19bd4ad 100644 --- a/gpjax/kernels/__init__.py +++ b/gpjax/kernels/__init__.py @@ -14,8 +14,9 @@ # ============================================================================== """JaxKern.""" -from .approximations import RFF from .base import AbstractKernel, ProductKernel, SumKernel + +from .approximations import RFF from .computations import (BasisFunctionComputation, ConstantDiagonalKernelComputation, DenseKernelComputation, DiagonalKernelComputation, From 3c8969de157d5a5ac0807dd0238edcbbff7003c7 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 12:39:05 +0300 Subject: [PATCH 39/87] bugfix --- gpjax/kernels/approximations/rff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/kernels/approximations/rff.py b/gpjax/kernels/approximations/rff.py index be959a09..40befac4 100644 --- a/gpjax/kernels/approximations/rff.py +++ b/gpjax/kernels/approximations/rff.py @@ -32,7 +32,7 @@ class RFF(AbstractKernel): """ base_kernel: AbstractKernel = None num_basis_fns: int = static_field(50) - frequencies: Float[Array, "M 1"] = param_field(None, bijector=tfb.Identity) + frequencies: Float[Array, "M 1"] = param_field(None, bijector=tfb.Identity()) key: KeyArray = static_field(PRNGKey(123)) def __post_init__(self) -> None: From 243e22f8b415af95259c6afc495f32bd3eee38f4 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 17 Apr 2023 12:39:26 +0300 Subject: [PATCH 40/87] AbstractKernel: string for forward references --- gpjax/kernels/base.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index d11dd392..ed4ccd8e 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -78,8 +78,8 @@ def __call__( raise NotImplementedError def __add__( - self, other: Union[AbstractKernel, ScalarFloat] - ) -> AbstractKernel: + self, other: Union["AbstractKernel", ScalarFloat] + ) -> "AbstractKernel": """Add two kernels together. Args: other (AbstractKernel): The kernel to be added to the current kernel. @@ -94,8 +94,8 @@ def __add__( return SumKernel(kernels=[self, Constant(other)]) def __radd__( - self, other: Union[AbstractKernel, ScalarFloat] - ) -> AbstractKernel: + self, other: Union["AbstractKernel", ScalarFloat] + ) -> "AbstractKernel": """Add two kernels together. Args: other (AbstractKernel): The kernel to be added to the current kernel. @@ -106,8 +106,8 @@ def __radd__( return self.__add__(other) def __mul__( - self, other: Union[AbstractKernel, ScalarFloat] - ) -> AbstractKernel: + self, other: Union["AbstractKernel", ScalarFloat] + ) -> "AbstractKernel": """Multiply two kernels together. Args: From 0c3ae8ac33e7938a2f4d5ba0b61aa05ed6b4fd15 Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 19 Apr 2023 16:26:43 +0300 Subject: [PATCH 41/87] remove from __future__ import annotations --- gpjax/base/module.py | 1 - gpjax/base/param.py | 1 - gpjax/dataset.py | 1 - gpjax/kernels/base.py | 1 - gpjax/linops/constant_diagonal_linear_operator.py | 1 - gpjax/linops/dense_linear_operator.py | 1 - gpjax/linops/diagonal_linear_operator.py | 1 - gpjax/linops/identity_linear_operator.py | 1 - gpjax/linops/linear_operator.py | 1 - gpjax/linops/triangular_linear_operator.py | 1 - gpjax/linops/utils.py | 1 - gpjax/linops/zero_linear_operator.py | 1 - gpjax/mean_functions.py | 1 - gpjax/objectives.py | 1 - 14 files changed, 14 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index cf704918..1d8df8fa 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations __all__ = ["Module", "meta_leaves", "meta_flatten", "meta_map", "meta"] diff --git a/gpjax/base/param.py b/gpjax/base/param.py index 2aa21b43..0354938b 100644 --- a/gpjax/base/param.py +++ b/gpjax/base/param.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations __all__ = ["param_field"] diff --git a/gpjax/dataset.py b/gpjax/dataset.py index 7511828c..25a9212b 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from __future__ import annotations from dataclasses import dataclass from beartype.typing import Optional, Union diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index ed4ccd8e..25aa9b33 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations import abc from beartype.typing import Callable, Dict, List, Optional, Sequence, Type, Union diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index fd970fcb..9f0bdcec 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from beartype.typing import Any, Union from dataclasses import dataclass diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index 43c41ec3..1c9cdbdd 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from beartype.typing import Union diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 9a1f583e..1f1445ed 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from dataclasses import dataclass from beartype.typing import Any, Union diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index 7bf59933..28595ea2 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from beartype.typing import Any from dataclasses import dataclass diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index cf2ae192..9bb41929 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations import abc from dataclasses import dataclass diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index d3278228..36603b56 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations import jax.numpy as jnp import jax.scipy as jsp diff --git a/gpjax/linops/utils.py b/gpjax/linops/utils.py index ab779acf..37b9e051 100644 --- a/gpjax/linops/utils.py +++ b/gpjax/linops/utils.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from beartype.typing import Union, Tuple, Type diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 23ded017..3c6a8711 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations from beartype.typing import Any, Tuple, Union from dataclasses import dataclass diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index 46aee0be..92f7a8e0 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -13,7 +13,6 @@ # limitations under the License. # ============================================================================== -from __future__ import annotations import abc import dataclasses diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 4aa11f32..9069c960 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -1,4 +1,3 @@ -from __future__ import annotations from abc import abstractmethod from dataclasses import dataclass From cd6cf66403512b469f71d72e0ed6b6847f0a9cf3 Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 19 Apr 2023 16:32:52 +0300 Subject: [PATCH 42/87] fix type annotations to make up for changes in 0c3ae8ac33e7938a2f4d5ba0b61aa05ed6b4fd15 --- gpjax/dataset.py | 2 +- gpjax/kernels/base.py | 1 + gpjax/linops/linear_operator.py | 1 + gpjax/linops/triangular_linear_operator.py | 6 +++--- gpjax/linops/zero_linear_operator.py | 10 +++++----- gpjax/mean_functions.py | 16 ++++++++-------- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index 25a9212b..d9ddef2a 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -53,7 +53,7 @@ def is_unsupervised(self) -> bool: """Returns `True` if the dataset is unsupervised.""" return self.X is None and self.y is not None - def __add__(self, other: Dataset) -> Dataset: + def __add__(self, other: "Dataset") -> "Dataset": """Combine two datasets. Right hand dataset is stacked beneath the left.""" X = None diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 25aa9b33..4b097596 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -25,6 +25,7 @@ from gpjax.utils import KeyArray from jaxtyping import Array, Float from simple_pytree import static_field +import tensorflow_probability.substrates.jax.distributions as tfd from gpjax.utils import ScalarFloat from ..base import Module, param_field diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 9bb41929..9fb5b225 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -21,6 +21,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float from simple_pytree import Pytree, static_field +from gpjax.utils import ScalarFloat # Generic type. T = TypeVar("T") diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index 36603b56..0e6d1873 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -28,7 +28,7 @@ class LowerTriangularLinearOperator(DenseLinearOperator): """ @property - def T(self) -> UpperTriangularLinearOperator: + def T(self) -> "UpperTriangularLinearOperator": return UpperTriangularLinearOperator(matrix=self.matrix.T) def to_root(self) -> LinearOperator: @@ -52,7 +52,7 @@ def from_root(cls, root: LinearOperator) -> None: raise ValueError("LowerTriangularLinearOperator does not have a root.") @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> LowerTriangularLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "LowerTriangularLinearOperator": return LowerTriangularLinearOperator(matrix=dense) @@ -86,7 +86,7 @@ def from_root(cls, root: LinearOperator) -> None: raise ValueError("LowerTriangularLinearOperator does not have a root.") @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> UpperTriangularLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "UpperTriangularLinearOperator": return UpperTriangularLinearOperator(matrix=dense) diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 3c6a8711..9319f9da 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -85,7 +85,7 @@ def _add_diagonal(self, other: DiagonalLinearOperator) -> DiagonalLinearOperator check_shapes_match(self.shape, other.shape) return other - def __mul__(self, other: ScalarFloat) -> ZeroLinearOperator: + def __mul__(self, other: ScalarFloat) -> "ZeroLinearOperator": """Multiply covariance operator by scalar. Args: @@ -99,7 +99,7 @@ def __mul__(self, other: ScalarFloat) -> ZeroLinearOperator: def __matmul__( self, other: Union[LinearOperator, Float[Array, "N M"]] - ) -> ZeroLinearOperator: + ) -> "ZeroLinearOperator": """Matrix multiplication. Args: @@ -119,7 +119,7 @@ def to_dense(self) -> Float[Array, "N N"]: """ return jnp.zeros(self.shape) - def to_root(self) -> ZeroLinearOperator: + def to_root(self) -> "ZeroLinearOperator": """ Root of the covariance operator. @@ -153,7 +153,7 @@ def solve(self, rhs: Float[Array, "... M"]) -> None: raise RuntimeError("ZeroLinearOperator is not invertible.") @classmethod - def from_root(cls, root: ZeroLinearOperator) -> ZeroLinearOperator: + def from_root(cls, root: "ZeroLinearOperator") -> "ZeroLinearOperator": """Construct covariance operator from the root. Args: @@ -165,7 +165,7 @@ def from_root(cls, root: ZeroLinearOperator) -> ZeroLinearOperator: return root @classmethod - def from_dense(cls, dense: Float[Array, "N N"]) -> ZeroLinearOperator: + def from_dense(cls, dense: Float[Array, "N N"]) -> "ZeroLinearOperator": """Construct covariance operator from the dense matrix. Args: diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index 92f7a8e0..c2fc860e 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -43,8 +43,8 @@ def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: raise NotImplementedError def __add__( - self, other: Union[AbstractMeanFunction, Float[Array, "1"]] - ) -> AbstractMeanFunction: + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + ) -> "AbstractMeanFunction": """Add two mean functions. Args: @@ -60,8 +60,8 @@ def __add__( return SumMeanFunction([self, Constant(other)]) def __radd__( - self, other: Union[AbstractMeanFunction, Float[Array, "1"]] - ) -> AbstractMeanFunction: + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + ) -> "AbstractMeanFunction": """Add two mean functions. Args: @@ -73,8 +73,8 @@ def __radd__( return self.__add__(other) def __mul__( - self, other: Union[AbstractMeanFunction, Float[Array, "1"]] - ) -> AbstractMeanFunction: + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + ) -> "AbstractMeanFunction": """Multiply two mean functions. Args: @@ -89,8 +89,8 @@ def __mul__( return ProductMeanFunction([self, Constant(other)]) def __rmul__( - self, other: Union[AbstractMeanFunction, Float[Array, "1"]] - ) -> AbstractMeanFunction: + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + ) -> "AbstractMeanFunction": """Multiply two mean functions. Args: From c31885e8a786cc974cc1ef7db6995dcc4427a888 Mon Sep 17 00:00:00 2001 From: ST John Date: Fri, 21 Apr 2023 09:22:26 +0300 Subject: [PATCH 43/87] pytree map functions may take a non-Module argument --- gpjax/base/module.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index 1d8df8fa..c5c2b204 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -19,7 +19,7 @@ import dataclasses import os from copy import copy, deepcopy -from beartype.typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, TypeVar +from beartype.typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, TypeVar, Union import jax import jax.tree_util as jtu @@ -213,7 +213,7 @@ def meta_leaves( def _unpack_metadata( meta_leaf: Any, - pytree: Module, + pytree: Union[Module, Any], is_leaf: Optional[Callable[[Any], bool]], ): """Recursively unpack leaf metadata.""" @@ -236,8 +236,8 @@ def _unpack_metadata( def meta_flatten( - pytree: Module, *, is_leaf: Optional[Callable[[Any], bool]] = None -) -> Module: + pytree: Union[Module, Any], *, is_leaf: Optional[Callable[[Any], bool]] = None +) -> Union[Module, Any]: """ Returns the meta of the Module. @@ -255,10 +255,10 @@ def meta_flatten( def meta_map( f: Callable[[Any, Dict[str, Any]], Any], - pytree: Module, + pytree: Union[Module, Any], *rest: Any, is_leaf: Optional[Callable[[Any], bool]] = None, -) -> Module: +) -> Union[Module, Any]: """Apply a function to a Module where the first argument are the pytree leaves, and the second argument are the Module metadata leaves. Args: f (Callable[[Any, Dict[str, Any]], Any]): The function to apply to the pytree. From 7083d087e346c5cfd91c9c5eba685d20448f95c0 Mon Sep 17 00:00:00 2001 From: ST John Date: Fri, 21 Apr 2023 11:47:46 +0300 Subject: [PATCH 44/87] ScalarFloat --- gpjax/gaussian_distribution.py | 15 ++++++++------- gpjax/kernels/base.py | 13 +++++++------ gpjax/kernels/non_euclidean/graph.py | 5 +++-- gpjax/kernels/nonstationary/polynomial.py | 5 +++-- gpjax/kernels/stationary/matern12.py | 5 +++-- gpjax/kernels/stationary/matern32.py | 5 +++-- gpjax/kernels/stationary/matern52.py | 5 +++-- gpjax/kernels/stationary/periodic.py | 5 +++-- gpjax/kernels/stationary/powered_exponential.py | 5 +++-- gpjax/kernels/stationary/rational_quadratic.py | 5 +++-- gpjax/kernels/stationary/rbf.py | 5 +++-- gpjax/kernels/stationary/utils.py | 9 +++++---- gpjax/kernels/stationary/white.py | 5 +++-- .../linops/constant_diagonal_linear_operator.py | 4 ++-- gpjax/linops/diagonal_linear_operator.py | 4 ++-- gpjax/linops/identity_linear_operator.py | 5 +++-- gpjax/linops/linear_operator.py | 8 ++++---- gpjax/linops/zero_linear_operator.py | 4 ++-- gpjax/variational_families.py | 17 +++++++++-------- 19 files changed, 72 insertions(+), 57 deletions(-) diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 1150dcce..c6475bc9 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -19,6 +19,7 @@ import jax.numpy as jnp import jax.random as jr from gpjax.utils import KeyArray +from gpjax.utils import ScalarFloat from jax import vmap from jaxtyping import Array, Float import tensorflow_probability.substrates.jax as tfp @@ -133,20 +134,20 @@ def event_shape(self) -> Tuple: """Returns the event shape.""" return self.loc.shape[-1:] - def entropy(self) -> Float[Array, ""]: + def entropy(self) -> ScalarFloat: """Calculates the entropy of the distribution.""" return 0.5 * ( self.event_shape[0] * (1.0 + jnp.log(2.0 * jnp.pi)) + self.scale.log_det() ) - def log_prob(self, y: Float[Array, "N"]) -> Float[Array, ""]: + def log_prob(self, y: Float[Array, "N"]) -> ScalarFloat: """Calculates the log pdf of the multivariate Gaussian. Args: y (Float[Array, "N"]): The value to calculate the log probability of. Returns: - Float[Array, ""]: The log probability of the value. + ScalarFloat: The log probability of the value. """ mu = self.loc sigma = self.scale @@ -184,7 +185,7 @@ def sample(self, seed: KeyArray, sample_shape: Tuple[int, int]): # pylint: disa """See `Distribution.sample`.""" return self._sample_n(seed, sample_shape[0]) # TODO this looks weird, why ignore the second entry? - def kl_divergence(self, other: "GaussianDistribution") -> Float[Array, ""]: + def kl_divergence(self, other: "GaussianDistribution") -> ScalarFloat: return _kl_divergence(self, other) @@ -201,14 +202,14 @@ def _check_and_return_dimension( return q.event_shape[-1] -def _frobenius_norm_squared(matrix: Float[Array, "N N"]) -> Float[Array, ""]: +def _frobenius_norm_squared(matrix: Float[Array, "N N"]) -> ScalarFloat: """Calculates the squared Frobenius norm of a matrix.""" return jnp.sum(jnp.square(matrix)) def _kl_divergence( q: GaussianDistribution, p: GaussianDistribution -) -> Float[Array, ""]: +) -> ScalarFloat: """Computes the KL divergence, KL[q||p], between two multivariate Gaussian distributions q(x) = N(x; μq, Σq) and p(x) = N(x; μp, Σp). @@ -217,7 +218,7 @@ def _kl_divergence( p (GaussianDistribution): A multivariate Gaussian distribution. Returns: - Float[Array, ""]: The KL divergence between q and p. + ScalarFloat: The KL divergence between q and p. """ n_dim = _check_and_return_dimension(q, p) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 4b097596..eca11613 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -23,6 +23,7 @@ import jax.random import jax from gpjax.utils import KeyArray +from gpjax.utils import ScalarFloat from jaxtyping import Array, Float from simple_pytree import static_field import tensorflow_probability.substrates.jax.distributions as tfd @@ -65,7 +66,7 @@ def __call__( self, x: Float[Array, "D"], y: Float[Array, "D"], - ) -> Float[Array, ""]: + ) -> ScalarFloat: """Evaluate the kernel on a pair of inputs. Args: @@ -73,7 +74,7 @@ def __call__( y (Float[Array, "D"]): The right hand input of the kernel function. Returns: - Float[Array, ""]: The evaluated kernel function at the supplied inputs. + ScalarFloat: The evaluated kernel function at the supplied inputs. """ raise NotImplementedError @@ -135,7 +136,7 @@ class Constant(AbstractKernel): constant: Float[Array, "1"] = param_field(jnp.array(0.0)) - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs. Args: @@ -143,7 +144,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " y (Float[Array, "D"]): The right hand input of the kernel function. Returns: - Float[Array, ""]: The evaluated kernel function at the supplied inputs. + ScalarFloat: The evaluated kernel function at the supplied inputs. """ return self.constant.squeeze() @@ -174,7 +175,7 @@ def __call__( self, x: Float[Array, "D"], y: Float[Array, "D"], - ) -> Float[Array, ""]: + ) -> ScalarFloat: """Evaluate the kernel on a pair of inputs. Args: @@ -182,7 +183,7 @@ def __call__( y (Float[Array, "D"]): The right hand input of the kernel function. Returns: - Float[Array, ""]: The evaluated kernel function at the supplied inputs. + ScalarFloat: The evaluated kernel function at the supplied inputs. """ return self.operator(jnp.stack([k(x, y) for k in self.kernels])) diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index 70e0dbfa..c60f014c 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -20,6 +20,7 @@ import tensorflow_probability.substrates.jax as tfp from jaxtyping import Array, Float, Int from simple_pytree import static_field +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -69,7 +70,7 @@ def __call__( x: Float[Array, "D"], y: Float[Array, "D"], **kwargs, - ) -> Float[Array, ""]: + ) -> ScalarFloat: """Evaluate the graph kernel on a pair of vertices :math:`v_i, v_j`. Args: @@ -77,7 +78,7 @@ def __call__( y (Float[Array, "D"]): Index of the jth vertex. Returns: - Float[Array, ""]: The value of :math:`k(v_i, v_j)`. + ScalarFloat: The value of :math:`k(v_i, v_j)`. """ S = kwargs["S"] Kxx = (jax_gather_nd(self.eigenvectors, x) * S.squeeze()) @ jnp.transpose( diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 6099465e..29bffab7 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb from jaxtyping import Array, Float from simple_pytree import static_field +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -35,7 +36,7 @@ class Polynomial(AbstractKernel): def __post_init__(self): self.name = f"Polynomial (degree {self.degree})" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with shift parameter :math:`\\alpha` and variance :math:`\\sigma^2` through @@ -49,7 +50,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " call Returns: - Float[Array, ""]: The value of :math:`k(x, y)`. + ScalarFloat: The value of :math:`k(x, y)`. """ x = self.slice_input(x) y = self.slice_input(y) diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index 925dc600..8fa24bd1 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -35,7 +36,7 @@ class Matern12(AbstractKernel): variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) name: str = "Matérn12" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -46,7 +47,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " x (Float[Array, "D"]): The left hand argument of the kernel function's call. y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, ""]: The value of :math:`k(x, y)` + ScalarFloat: The value of :math:`k(x, y)` """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index 7359404f..740d21bf 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -39,7 +40,7 @@ def __call__( self, x: Float[Array, "D"], y: Float[Array, "D"], - ) -> Float[Array, ""]: + ) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -51,7 +52,7 @@ def __call__( y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, ""]: The value of :math:`k(x, y)`. + ScalarFloat: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index 428e5153..bd579b24 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -35,7 +36,7 @@ class Matern52(AbstractKernel): variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) name: str = "Matérn52" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -47,7 +48,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, ""]: The value of :math:`k(x, y)`. + ScalarFloat: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index 8db18444..c163c109 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -38,7 +39,7 @@ class Periodic(AbstractKernel): period: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) name: str = "Periodic" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with length-scale parameter :math:`\\ell` and variance :math:`\\sigma` TODO: update docstring @@ -50,7 +51,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " x (Float[Array, "D"]): The left hand argument of the kernel function's call. y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, ""]: The value of :math:`k(x, y)` + ScalarFloat: The value of :math:`k(x, y)` """ x = self.slice_input(x) y = self.slice_input(y) diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 4445736a..9671617a 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -40,7 +41,7 @@ class PoweredExponential(AbstractKernel): power: Float[Array, "1"] = param_field(jnp.array([1.0])) name: str = "Powered Exponential" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with length-scale parameter :math:`\\ell`, :math:`\\sigma` and power :math:`\\kappa`. .. math:: @@ -51,7 +52,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, ""]: The value of :math:`k(x, y)` + ScalarFloat: The value of :math:`k(x, y)` """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index ebdaf276..e3c34eda 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -34,7 +35,7 @@ class RationalQuadratic(AbstractKernel): alpha: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) name: str = "Rational Quadratic" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with length-scale parameter :math:`\\ell` and variance :math:`\\sigma` .. math:: @@ -44,7 +45,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " x (Float[Array, "D"]): The left hand argument of the kernel function's call. y (Float[Array, "D"]): The right hand argument of the kernel function's call Returns: - Float[Array, ""]: The value of :math:`k(x, y)` + ScalarFloat: The value of :math:`k(x, y)` """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index 5b39d053..f1e98d8b 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -35,7 +36,7 @@ class RBF(AbstractKernel): variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) name: str = "RBF" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with lengthscale parameter :math:`\\ell` and variance :math:`\\sigma^2` @@ -48,7 +49,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, ""]: The value of :math:`k(x, y)`. + ScalarFloat: The value of :math:`k(x, y)`. """ x = self.slice_input(x) / self.lengthscale y = self.slice_input(y) / self.lengthscale diff --git a/gpjax/kernels/stationary/utils.py b/gpjax/kernels/stationary/utils.py index 4518ce21..a5306425 100644 --- a/gpjax/kernels/stationary/utils.py +++ b/gpjax/kernels/stationary/utils.py @@ -16,6 +16,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax as tfp from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat tfd = tfp.distributions @@ -33,7 +34,7 @@ def build_student_t_distribution(nu: int) -> tfd.Distribution: return dist -def squared_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: +def squared_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Compute the squared distance between a pair of inputs. Args: @@ -41,13 +42,13 @@ def squared_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, y (Float[Array, "D"]): Second input. Returns: - Float[Array, ""]: The squared distance between the inputs. + ScalarFloat: The squared distance between the inputs. """ return jnp.sum((x - y) ** 2) -def euclidean_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: +def euclidean_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Compute the euclidean distance between a pair of inputs. Args: @@ -55,7 +56,7 @@ def euclidean_distance(x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Arra y (Float[Array, "D"]): Second input. Returns: - Float[Array, ""]: The euclidean distance between the inputs. + ScalarFloat: The euclidean distance between the inputs. """ return jnp.sqrt(jnp.maximum(squared_distance(x, y), 1e-36)) diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index a3e2dada..7630fb39 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -20,6 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float from simple_pytree import static_field +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -35,7 +36,7 @@ class White(AbstractKernel): ) name: str = "White" - def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, ""]: + def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs :math:`(x, y)` with variance :math:`\\sigma` .. math:: @@ -46,7 +47,7 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> Float[Array, " y (Float[Array, "D"]): The right hand argument of the kernel function's call. Returns: - Float[Array, ""]: The value of :math:`k(x, y)`. + ScalarFloat: The value of :math:`k(x, y)`. """ K = jnp.all(jnp.equal(x, y)) * self.variance return K.squeeze() diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 9f0bdcec..7fd4f698 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -128,11 +128,11 @@ def to_root(self) -> "ConstantDiagonalLinearOperator": value=jnp.sqrt(self.value), size=self.size ) - def log_det(self) -> Float[Array, ""]: + def log_det(self) -> ScalarFloat: """Log determinant. Returns: - Float[Array, ""]: Log determinant of the covariance matrix. + ScalarFloat: Log determinant of the covariance matrix. """ return 2.0 * self.size * jnp.log(self.value.squeeze()) diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 1f1445ed..ada55eff 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -150,11 +150,11 @@ def to_root(self) -> "DiagonalLinearOperator": """ return DiagonalLinearOperator(diag=jnp.sqrt(self.diagonal())) - def log_det(self) -> Float[Array, ""]: + def log_det(self) -> ScalarFloat: """Log determinant. Returns: - Float[Array, ""]: Log determinant of the covariance matrix. + ScalarFloat: Log determinant of the covariance matrix. """ return jnp.sum(jnp.log(self.diagonal())) diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index 28595ea2..6f5f9be7 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -19,6 +19,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from gpjax.linops.constant_diagonal_linear_operator import \ ConstantDiagonalLinearOperator @@ -72,11 +73,11 @@ def to_root(self) -> "IdentityLinearOperator": """ return self - def log_det(self) -> Float[Array, ""]: + def log_det(self) -> ScalarFloat: """Log determinant. Returns: - Float[Array, ""]: Log determinant of the covariance matrix. + ScalarFloat: Log determinant of the covariance matrix. """ return jnp.array(0.0) diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 9fb5b225..065c4571 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -123,19 +123,19 @@ def diagonal(self) -> Float[Array, "N"]: raise NotImplementedError - def trace(self) -> Float[Array, ""]: + def trace(self) -> ScalarFloat: """Trace of the linear matrix. Returns: - Float[Array, ""]: Trace of the linear matrix. + ScalarFloat: Trace of the linear matrix. """ return jnp.sum(self.diagonal()) - def log_det(self) -> Float[Array, ""]: + def log_det(self) -> ScalarFloat: """Log determinant of the linear matrix. Default implementation uses dense Cholesky decomposition. Returns: - Float[Array, ""]: Log determinant of the linear matrix. + ScalarFloat: Log determinant of the linear matrix. """ root = self.to_root() diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 9319f9da..19b39431 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -128,11 +128,11 @@ def to_root(self) -> "ZeroLinearOperator": """ return self - def log_det(self) -> Float[Array, ""]: + def log_det(self) -> ScalarFloat: """Log determinant. Returns: - Float[Array, ""]: Log determinant of the covariance matrix. + ScalarFloat: Log determinant of the covariance matrix. """ return jnp.log(jnp.array(0.0)) diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 02d4b2a4..25aff349 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -30,6 +30,7 @@ from .likelihoods import Gaussian from .linops import (DenseLinearOperator, LowerTriangularLinearOperator, identity) +from gpjax.utils import ScalarFloat @dataclass @@ -107,7 +108,7 @@ def __post_init__(self) -> None: if self.variational_root_covariance is None: self.variational_root_covariance = jnp.eye(self.num_inducing) - def prior_kl(self) -> Float[Array, ""]: + def prior_kl(self) -> ScalarFloat: """ Compute the KL-divergence between our variational approximation and the Gaussian process prior. @@ -117,7 +118,7 @@ def prior_kl(self) -> Float[Array, ""]: inputs. Returns: - Float[Array, ""]: The KL-divergence between our variational + ScalarFloat: The KL-divergence between our variational approximation and the GP prior. """ @@ -217,14 +218,14 @@ class WhitenedVariationalGaussian(VariationalGaussian): over μ and sqrt with S = sqrt sqrtᵀ. """ - def prior_kl(self) -> Float[Array, ""]: + def prior_kl(self) -> ScalarFloat: """Compute the KL-divergence between our variational approximation and the Gaussian process prior. For this variational family, we have KL[q(f(·))||p(·)] = KL[q(u)||p(u)] = KL[N(μ, S)||N(0, I)]. Returns: - Float[Array, ""]: The KL-divergence between our variational + ScalarFloat: The KL-divergence between our variational approximation and the GP prior. """ @@ -317,7 +318,7 @@ def __post_init__(self): if self.natural_matrix is None: self.natural_matrix = -0.5 * jnp.eye(self.num_inducing) - def prior_kl(self) -> Float[Array, ""]: + def prior_kl(self) -> ScalarFloat: """Compute the KL-divergence between our current variational approximation and the Gaussian process prior. For this variational family, we have KL[q(f(·))||p(·)] = KL[q(u)||p(u)] = KL[N(μ, S)||N(mz, Kzz)], @@ -325,7 +326,7 @@ def prior_kl(self) -> Float[Array, ""]: with μ and S computed from the natural parameterisation θ = (S⁻¹μ, -S⁻¹/2). Returns: - Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. + ScalarFloat: The KL-divergence between our variational approximation and the GP prior. """ # Unpack variational parameters @@ -464,7 +465,7 @@ def __post_init__(self): if self.expectation_matrix is None: self.expectation_matrix = jnp.eye(self.num_inducing) - def prior_kl(self) -> Float[Array, ""]: + def prior_kl(self) -> ScalarFloat: """Compute the KL-divergence between our current variational approximation and the Gaussian process prior. For this variational family, we have KL[q(f(·))||p(·)] = KL[q(u)||p(u)] = KL[N(μ, S)||N(mz, Kzz)], @@ -472,7 +473,7 @@ def prior_kl(self) -> Float[Array, ""]: with μ and S computed from the expectation parameterisation η = (μ, S + uuᵀ). Returns: - Float[Array, ""]: The KL-divergence between our variational approximation and the GP prior. + ScalarFloat: The KL-divergence between our variational approximation and the GP prior. """ # Unpack variational parameters From 692d337418f571647ef3e836956b2fd57b166673 Mon Sep 17 00:00:00 2001 From: ST John Date: Fri, 21 Apr 2023 11:48:04 +0300 Subject: [PATCH 45/87] VecNOrMatNM --- gpjax/linops/dense_linear_operator.py | 4 ++-- gpjax/linops/diagonal_linear_operator.py | 6 +++--- gpjax/utils.py | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index 1c9cdbdd..e721c53a 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -23,7 +23,7 @@ from gpjax.linops.linear_operator import LinearOperator from gpjax.linops.utils import to_linear_operator -from gpjax.utils import ScalarFloat +from gpjax.utils import ScalarFloat, VecNOrMatNM def _check_matrix(matrix: Array) -> None: @@ -127,7 +127,7 @@ def diagonal(self) -> Float[Array, "N"]: """ return jnp.diag(self.matrix) - def __matmul__(self, other: Float[Array, "N M"]) -> Float[Array, "N M"]: + def __matmul__(self, other: VecNOrMatNM) -> VecNOrMatNM: """Matrix multiplication. Args: diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index ada55eff..14e48a72 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -23,7 +23,7 @@ from .dense_linear_operator import DenseLinearOperator from .linear_operator import LinearOperator from .utils import to_linear_operator -from gpjax.utils import ScalarFloat +from gpjax.utils import ScalarFloat, VecNOrMatNM def _check_diag(diag: Any) -> None: @@ -126,7 +126,7 @@ def to_dense(self) -> Float[Array, "N N"]: """ return jnp.diag(self.diagonal()) - def __matmul__(self, other: Float[Array, "N M"]) -> Float[Array, "N M"]: + def __matmul__(self, other: VecNOrMatNM) -> VecNOrMatNM: """Matrix multiplication. Args: @@ -166,7 +166,7 @@ def inverse(self) -> "DiagonalLinearOperator": """ return DiagonalLinearOperator(diag=1.0 / self.diagonal()) - def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: + def solve(self, rhs: VecNOrMatNM) -> VecNOrMatNM: """Solve linear system. Args: diff --git a/gpjax/utils.py b/gpjax/utils.py index 3fc38dfb..64f12b4b 100644 --- a/gpjax/utils.py +++ b/gpjax/utils.py @@ -24,6 +24,8 @@ ScalarInt = Union[int, Int[Array, ""]] ScalarFloat = Union[float, Float[Array, ""]] +VecNOrMatNM = Union[Float[Array, "N"], Float[Array, "N M"]] + __all__ = [ "KeyArray", "ScalarBool", From 1b4ae5245aadc3dac1707f25ab2b3c0c278a22cb Mon Sep 17 00:00:00 2001 From: ST John Date: Fri, 21 Apr 2023 11:48:21 +0300 Subject: [PATCH 46/87] remove unnecessary / buggy methods --- gpjax/linops/triangular_linear_operator.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index 0e6d1873..4961dcd6 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -41,12 +41,6 @@ def inverse(self) -> DenseLinearOperator: def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: return jsp.linalg.solve_triangular(self.to_dense(), rhs, lower=True) - def __matmul__(self, other): - return super().__matmul__(other) - - def __add__(self, other): - return super().__matmul__(other) - @classmethod def from_root(cls, root: LinearOperator) -> None: raise ValueError("LowerTriangularLinearOperator does not have a root.") @@ -72,12 +66,6 @@ def inverse(self) -> DenseLinearOperator: matrix = self.solve(jnp.eye(self.size)) return DenseLinearOperator(matrix) - def __matmul__(self, other): - return super().__matmul__(other) - - def __add__(self, other): - return super().__matmul__(other) - def solve(self, rhs: Float[Array, "... M"]) -> Float[Array, "... M"]: return jsp.linalg.solve_triangular(self.to_dense(), rhs, lower=False) From 7286cd01a393f6a8867eaf0b2cbcf4bd3c9c31e0 Mon Sep 17 00:00:00 2001 From: ST John Date: Fri, 21 Apr 2023 13:57:31 +0300 Subject: [PATCH 47/87] more ScalarFloat --- gpjax/kernels/nonstationary/linear.py | 5 +++-- gpjax/kernels/stationary/matern12.py | 7 ++++--- gpjax/kernels/stationary/matern32.py | 7 ++++--- gpjax/kernels/stationary/matern52.py | 7 ++++--- gpjax/kernels/stationary/rbf.py | 7 ++++--- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index cece303b..c6c0938f 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -18,6 +18,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb from jaxtyping import Array, Float +from gpjax.utils import ScalarFloat from ...base import param_field from ..base import AbstractKernel @@ -27,14 +28,14 @@ class Linear(AbstractKernel): """The linear kernel.""" - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Linear" def __call__( self, x: Float[Array, "D"], y: Float[Array, "D"], - ) -> Float[Array, "1"]: + ) -> ScalarFloat: """Evaluate the linear kernel on a pair of inputs :math:`(x, y)` with variance parameter :math:`\\sigma` .. math:: diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index 8fa24bd1..dc0b9d54 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from beartype.typing import Union from gpjax.utils import ScalarFloat from ...base import param_field @@ -30,10 +31,10 @@ class Matern12(AbstractKernel): """The Matérn kernel with smoothness parameter fixed at 0.5.""" - lengthscale: Float[Array, "D"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( + jnp.array(1.0), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Matérn12" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index 740d21bf..d4374cea 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from beartype.typing import Union from gpjax.utils import ScalarFloat from ...base import param_field @@ -30,10 +31,10 @@ class Matern32(AbstractKernel): """The Matérn kernel with smoothness parameter fixed at 1.5.""" - lengthscale: Float[Array, "D"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( + jnp.array(1.0), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Matérn32" def __call__( diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index bd579b24..e8967fd7 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -19,6 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float +from beartype.typing import Union from gpjax.utils import ScalarFloat from ...base import param_field @@ -30,10 +31,10 @@ class Matern52(AbstractKernel): """The Matérn kernel with smoothness parameter fixed at 2.5.""" - lengthscale: Float[Array, "D"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( + jnp.array(1.0), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Matérn52" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index f1e98d8b..6fb06e9b 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -15,6 +15,7 @@ from dataclasses import dataclass +from beartype.typing import Union import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd @@ -30,10 +31,10 @@ class RBF(AbstractKernel): """The Radial Basis Function (RBF) kernel.""" - lengthscale: Float[Array, "D"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( + jnp.array(1.0), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "RBF" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: From 6e55323f0f16e71b28aa1d32b94f2986e9d6e461 Mon Sep 17 00:00:00 2001 From: ST John Date: Sat, 22 Apr 2023 00:19:25 +0300 Subject: [PATCH 48/87] ScalarFloat --- gpjax/fit.py | 3 ++- gpjax/objectives.py | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gpjax/fit.py b/gpjax/fit.py index b9da598c..9586be86 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -24,6 +24,7 @@ from jaxlib.xla_extension import PjitFunction from warnings import warn +from gpjax.utils import ScalarFloat from .base import Module from .dataset import Dataset from .objectives import AbstractObjective @@ -117,7 +118,7 @@ def fit( _check_verbose(verbose) # Unconstrained space loss function with stop-gradient rule for non-trainable params. - def loss(model: Module, batch: Dataset) -> Float[Array, "1"]: + def loss(model: Module, batch: Dataset) -> ScalarFloat: model = model.stop_gradient() return objective(model.constrain(), batch) diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 9069c960..22a35e19 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -10,6 +10,7 @@ from simple_pytree import static_field import tensorflow_probability.substrates.jax as tfp +from gpjax.utils import ScalarFloat from .base import Module from .dataset import Dataset from .gaussian_distribution import GaussianDistribution @@ -30,11 +31,11 @@ def __post_init__(self) -> None: def __hash__(self): return hash(tuple(jtu.tree_leaves(self))) # Probably put this on the Module! - def __call__(self, *args, **kwargs) -> Float[Array, "1"]: + def __call__(self, *args, **kwargs) -> ScalarFloat: return self.step(*args, **kwargs) @abstractmethod - def step(self, *args, **kwargs) -> Float[Array, "1"]: + def step(self, *args, **kwargs) -> ScalarFloat: raise NotImplementedError @@ -42,7 +43,7 @@ def step(self, *args, **kwargs) -> Float[Array, "1"]: class ConjugateMLL(AbstractObjective): def step( self, posterior: "gpjax.gps.ConjugatePosterior", train_data: Dataset - ) -> Float[Array, "1"]: + ) -> ScalarFloat: """Compute the marginal log-likelihood function of the Gaussian process. The returned function can then be used for gradient based optimisation of the model's parameters or for model comparison. The implementation @@ -100,7 +101,7 @@ def step( Defaults to False. Returns: - Callable[[Parameters], Float[Array, "1"]]: A functional representation + Callable[[Parameters], ScalarFloat]: A functional representation of the marginal log-likelihood that can be evaluated at a given parameter set. """ @@ -125,7 +126,7 @@ def step( class NonConjugateMLL(AbstractObjective): def step( self, posterior: "gpjax.gps.NonConjugatePosterior", data: Dataset - ) -> Float[Array, "1"]: + ) -> ScalarFloat: """ Compute the marginal log-likelihood function of the Gaussian process. The returned function can then be used for gradient based optimisation @@ -151,7 +152,7 @@ def step( to maximisation of the marginal log-likelihood. Defaults to False. Returns: - Callable[[Parameters], Float[Array, "1"]]: A functional representation + Callable[[Parameters], ScalarFloat]: A functional representation of the marginal log-likelihood that can be evaluated at a given parameter set. """ @@ -184,7 +185,7 @@ def step( class ELBO(AbstractObjective): def step( self, variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset - ) -> Float[Array, "1"]: + ) -> ScalarFloat: """Compute the evidence lower bound under this model. In short, this requires evaluating the expectation of the model's log-likelihood under the variational approximation. To this, we sum the KL divergence from the variational posterior @@ -273,7 +274,7 @@ class CollapsedELBO(AbstractObjective): def step( self, variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset - ) -> Float[Array, "1"]: + ) -> ScalarFloat: """Compute the evidence lower bound under this model. In short, this requires evaluating the expectation of the model's log-likelihood under the variational approximation. To this, we sum the KL divergence from the variational posterior From 8159a2d31f107e222b3f0ea421e0e2dd80fceba8 Mon Sep 17 00:00:00 2001 From: ST John Date: Sat, 22 Apr 2023 00:19:47 +0300 Subject: [PATCH 49/87] type fixes --- gpjax/base/module.py | 2 +- gpjax/scan.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index c5c2b204..9cd81c05 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -177,7 +177,7 @@ def _apply_stop_grad(meta_leaf): return meta_map(_apply_stop_grad, self) -def _toplevel_meta(pytree: Any) -> List[Dict[str, Any]]: +def _toplevel_meta(pytree: Any) -> List[Optional[Dict[str, Any]]]: """Unpacks a list of meta corresponding to the top-level nodes of the pytree. Args: diff --git a/gpjax/scan.py b/gpjax/scan.py index c860c0cb..01487df3 100644 --- a/gpjax/scan.py +++ b/gpjax/scan.py @@ -19,15 +19,17 @@ import jax.numpy as jnp import jax.tree_util as jtu from jax import lax +from jaxtyping import Shaped, Array from jax.experimental import host_callback as hcb from tqdm.auto import trange +from gpjax.utils import ScalarInt, ScalarBool Carry = TypeVar("Carry") X = TypeVar("X") Y = TypeVar("Y") -def _callback(cond: bool, func: Callable, *args: Any) -> None: +def _callback(cond: ScalarBool, func: Callable, *args: Any) -> None: """Callback a function for a given argument if a condition is true. Args: @@ -59,7 +61,7 @@ def vscan( unroll: Optional[int] = 1, log_rate: Optional[int] = 10, log_value: Optional[bool] = True, -) -> Tuple[Carry, List[Y]]: +) -> Tuple[Carry, Shaped[Array, "..."]]: # return type should be Tuple[Carry, Y[Array]]... """Scan with verbose output. This is based on code from the excellent blog post: @@ -112,7 +114,7 @@ def _close_tqdm(args: Any, transform: Any) -> None: """Close the tqdm progress bar.""" _progress_bar.close() - def _body_fun(carry: Carry, iter_num_and_x: Tuple[int, X]) -> Tuple[Carry, Y]: + def _body_fun(carry: Carry, iter_num_and_x: Tuple[ScalarInt, X]) -> Tuple[Carry, Y]: # Unpack iter_num and x. iter_num, x = iter_num_and_x From 62c7a699d4fd034d48c581554b69de4834aecde9 Mon Sep 17 00:00:00 2001 From: ST John Date: Sat, 22 Apr 2023 00:22:16 +0300 Subject: [PATCH 50/87] fix shape type --- gpjax/gaussian_distribution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index c6475bc9..c09ceaf6 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -181,7 +181,7 @@ def _sample_n(self, key: KeyArray, n: int) -> Float[Array, "n N"]: return vmap(affine_transformation)(Z) - def sample(self, seed: KeyArray, sample_shape: Tuple[int, int]): # pylint: disable=useless-super-delegation + def sample(self, seed: KeyArray, sample_shape: Tuple[int, ...]): # pylint: disable=useless-super-delegation """See `Distribution.sample`.""" return self._sample_n(seed, sample_shape[0]) # TODO this looks weird, why ignore the second entry? From 3a8814a42cc6f306bde0c0f2bcae3aa1e7f7eb6e Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 11:47:51 +0300 Subject: [PATCH 51/87] fix one KeyArray --- gpjax/fit.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gpjax/fit.py b/gpjax/fit.py index 9586be86..eecd8aa8 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -19,12 +19,11 @@ import jax.random as jr import optax as ox from jax._src.random import _check_prng_key -from jax.random import KeyArray from jaxtyping import Array, Float from jaxlib.xla_extension import PjitFunction from warnings import warn -from gpjax.utils import ScalarFloat +from gpjax.utils import ScalarFloat, KeyArray from .base import Module from .dataset import Dataset from .objectives import AbstractObjective From 25ed38fc4c51feac8ccb24c540e4e0e9d575af5c Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 11:57:11 +0300 Subject: [PATCH 52/87] more ScalarFloat corrections in kernels --- gpjax/kernels/computations/base.py | 2 +- gpjax/kernels/nonstationary/polynomial.py | 6 +++--- gpjax/kernels/stationary/periodic.py | 7 ++++--- gpjax/kernels/stationary/powered_exponential.py | 7 ++++--- gpjax/kernels/stationary/rational_quadratic.py | 7 ++++--- gpjax/kernels/stationary/white.py | 2 +- 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index 7a3e7259..a84840c5 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -23,7 +23,7 @@ from gpjax.linops import (DenseLinearOperator, DiagonalLinearOperator, LinearOperator) -Kernel = Any +Kernel = Any # TODO: FIX @dataclass diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 29bffab7..8e6be455 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -30,8 +30,8 @@ class Polynomial(AbstractKernel): """The Polynomial kernel with variable degree.""" degree: int = static_field(2) - shift: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + shift: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) def __post_init__(self): self.name = f"Polynomial (degree {self.degree})" @@ -54,5 +54,5 @@ def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """ x = self.slice_input(x) y = self.slice_input(y) - K = jnp.power(self.shift + jnp.dot(x * self.variance, y), self.degree) + K = jnp.power(self.shift + self.variance * jnp.dot(x, y), self.degree) return K.squeeze() diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index c163c109..8e7e0fb8 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -14,6 +14,7 @@ # ============================================================================== from dataclasses import dataclass +from beartype.typing import Union import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb @@ -32,11 +33,11 @@ class Periodic(AbstractKernel): Key reference is MacKay 1998 - "Introduction to Gaussian processes". """ - lengthscale: Float[Array, "D"] = param_field( + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( jnp.array([1.0]), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) - period: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + period: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Periodic" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 9671617a..8a40092d 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -14,6 +14,7 @@ # ============================================================================== from dataclasses import dataclass +from beartype.typing import Union import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb @@ -34,11 +35,11 @@ class PoweredExponential(AbstractKernel): """ - lengthscale: Float[Array, "D"] = param_field( + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( jnp.array([1.0]), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) - power: Float[Array, "1"] = param_field(jnp.array([1.0])) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + power: ScalarFloat = param_field(jnp.array(1.0)) name: str = "Powered Exponential" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index e3c34eda..7ab85f0b 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -18,6 +18,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd +from beartype.typing import Union from jaxtyping import Array, Float from gpjax.utils import ScalarFloat @@ -28,11 +29,11 @@ @dataclass class RationalQuadratic(AbstractKernel): - lengthscale: Float[Array, "D"] = param_field( + lengthscale: Union[ScalarFloat, Float[Array, "D"]] = param_field( jnp.array([1.0]), bijector=tfb.Softplus() ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) - alpha: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + alpha: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) name: str = "Rational Quadratic" def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index 7630fb39..f09fff28 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -30,7 +30,7 @@ @dataclass class White(AbstractKernel): - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) compute_engine: AbstractKernelComputation = static_field( ConstantDiagonalKernelComputation ) From 76dd035b235b404c68b20506c52ef57d9c0c3e82 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 11:58:04 +0300 Subject: [PATCH 53/87] fix test_stationary accordingly for ScalarFloat params --- tests/test_kernels/test_stationary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_kernels/test_stationary.py b/tests/test_kernels/test_stationary.py index e69059b0..5ab5aa93 100644 --- a/tests/test_kernels/test_stationary.py +++ b/tests/test_kernels/test_stationary.py @@ -82,7 +82,7 @@ def test_initialization(self, fields: dict, dim: int) -> None: assert is_dataclass(self.kernel) # Input fields as JAX arrays - fields = {k: jnp.array([v]) for k, v in fields.items()} + fields = {k: jnp.array(v) for k, v in fields.items()} # Test number of dimensions if dim is None: From 2ba27b2f1659eb5775b67c15f09b9c3e5d10738f Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 11:58:58 +0300 Subject: [PATCH 54/87] fix return type --- gpjax/kernels/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index eca11613..89e8f2d2 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -123,7 +123,7 @@ def __mul__( return ProductKernel(kernels=[self, Constant(other)]) @property - def spectral_density(self) -> tfd.Distribution: + def spectral_density(self) -> Optional[tfd.Distribution]: return None From 33a3e7b4167573ac8ca124dfedaa66a1a0d5844a Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 12:33:30 +0300 Subject: [PATCH 55/87] ScalarInt for Polynomial kernel and fix test for Scalar* params --- gpjax/kernels/nonstationary/polynomial.py | 4 ++-- tests/test_kernels/test_nonstationary.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 8e6be455..de23425f 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -19,7 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb from jaxtyping import Array, Float from simple_pytree import static_field -from gpjax.utils import ScalarFloat +from gpjax.utils import ScalarFloat, ScalarInt from ...base import param_field from ..base import AbstractKernel @@ -29,7 +29,7 @@ class Polynomial(AbstractKernel): """The Polynomial kernel with variable degree.""" - degree: int = static_field(2) + degree: ScalarInt = static_field(2) shift: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) diff --git a/tests/test_kernels/test_nonstationary.py b/tests/test_kernels/test_nonstationary.py index fc4de81f..1f133088 100644 --- a/tests/test_kernels/test_nonstationary.py +++ b/tests/test_kernels/test_nonstationary.py @@ -64,7 +64,7 @@ def test_initialization(self, fields: dict, dim: int) -> None: assert is_dataclass(self.kernel) # Input fields as JAX arrays - fields = {k: jnp.array([v]) for k, v in fields.items()} + fields = {k: jnp.array(v) for k, v in fields.items()} # Test number of dimensions if dim is None: From 4dd9ed5a796fd7e9f7f2a41be32601274d6b2171 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 13:38:13 +0300 Subject: [PATCH 56/87] fix mock in test_abstract_variational_family --- tests/test_variational_families.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_variational_families.py b/tests/test_variational_families.py index d06041f9..7cab00e9 100644 --- a/tests/test_variational_families.py +++ b/tests/test_variational_families.py @@ -25,6 +25,7 @@ import jax.tree_util as jtu import gpjax as gpx +from gpjax.gps import AbstractPosterior from gpjax.variational_families import (AbstractVariationalFamily, CollapsedVariationalGaussian, ExpectationVariationalGaussian, @@ -44,12 +45,16 @@ def test_abstract_variational_family(): AbstractVariationalFamily() # Create a dummy variational family class with abstract methods implemented. + class DummyPosterior: + @property + def __class__(self) -> type: return AbstractPosterior + class DummyVariationalFamily(AbstractVariationalFamily): def predict(self, x: Float[Array, "N D"]) -> tfd.Distribution: return tfd.MultivariateNormalDiag(loc=x) # Test that the dummy variational family can be instantiated. - dummy_variational_family = DummyVariationalFamily(posterior=None) + dummy_variational_family = DummyVariationalFamily(posterior=DummyPosterior()) assert isinstance(dummy_variational_family, AbstractVariationalFamily) @@ -239,4 +244,4 @@ def test_collapsed_variational_gaussian( for l1, l2 in zip(jtu.tree_leaves(variational_family), true_leaves): assert l1.shape == l2.shape - assert (l1 == l2).all() \ No newline at end of file + assert (l1 == l2).all() From 54ef19c85b6a5e1364f9f7fdb5d8485ef2c64d03 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 13:56:21 +0300 Subject: [PATCH 57/87] fix link_function and variational_expectations shape annotations --- gpjax/likelihoods.py | 16 ++++++++-------- gpjax/objectives.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index c7051e42..0640b564 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -63,7 +63,7 @@ def predict(self, *args: Any, **kwargs: Any) -> tfd.Distribution: @property @abc.abstractmethod - def link_function(self) -> tfd.Distribution: + def link_function(self, f: Float[Array, "..."]) -> tfd.Distribution: """Return the link function of the likelihood function. Returns: @@ -80,11 +80,11 @@ class Gaussian(AbstractLikelihood): jnp.array([1.0]), bijector=tfb.Softplus() ) - def link_function(self, f: Float[Array, "N 1"]) -> tfd.Normal: + def link_function(self, f: Float[Array, "..."]) -> tfd.Normal: """The link function of the Gaussian likelihood. Args: - f (Float[Array, "N 1"]): Function values. + f (Float[Array, "..."]): Function values. Returns: tfd.Normal: The likelihood function. @@ -116,11 +116,11 @@ def predict( @dataclass class Bernoulli(AbstractLikelihood): - def link_function(self, f: Float[Array, "N 1"]) -> tfd.Distribution: + def link_function(self, f: Float[Array, "..."]) -> tfd.Distribution: """The probit link function of the Bernoulli likelihood. Args: - f (Float[Array, "N 1"]): Function values. + f (Float[Array, "..."]): Function values. Returns: tfd.Distribution: The likelihood function. @@ -143,14 +143,14 @@ def predict(self, dist: tfd.Distribution) -> tfd.Distribution: return self.link_function(mean / jnp.sqrt(1.0 + variance)) -def inv_probit(x: Float[Array, "N 1"]) -> Float[Array, "N 1"]: +def inv_probit(x: Float[Array, "*N"]) -> Float[Array, "*N"]: """Compute the inverse probit function. Args: - x (Float[Array, "N 1"]): A vector of values. + x (Float[Array, "*N"]): A vector of values. Returns: - Float[Array, "N 1"]: The inverse probit of the input vector. + Float[Array, "*N"]: The inverse probit of the input vector. """ jitter = 1e-3 # To ensure output is in interval (0, 1). return 0.5 * (1.0 + jsp.special.erf(x / jnp.sqrt(2.0))) * (1 - 2 * jitter) + jitter diff --git a/gpjax/objectives.py b/gpjax/objectives.py index 22a35e19..ca8aadf4 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -229,7 +229,7 @@ def step( def variational_expectation( variational_family: "gpjax.variational_families.AbstractVariationalFamily", train_data: Dataset, -) -> Float[Array, "N 1"]: +) -> Float[Array, "N"]: """Compute the expectation of our model's log-likelihood under our variational distribution. Batching can be done here to speed up computation. From 3a21676de2194e58c9b72cd9af4ecc3d5eb2ea66 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 13:56:32 +0300 Subject: [PATCH 58/87] minor test fix --- tests/test_objectives.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_objectives.py b/tests/test_objectives.py index 542ac2d0..da666046 100644 --- a/tests/test_objectives.py +++ b/tests/test_objectives.py @@ -23,7 +23,7 @@ def build_data(num_datapoints: int, num_dims: int, key, binary: bool): 0.5 * jnp.sign( jnp.cos( - 3 * x[:, 1].reshape(-1, 1) + 3 * x[:, 0].reshape(-1, 1) + jr.normal(key, shape=(num_datapoints, 1)) * 0.05 ) ) @@ -31,7 +31,7 @@ def build_data(num_datapoints: int, num_dims: int, key, binary: bool): ) else: y = ( - jnp.sin(x[:, 1]).reshape(-1, 1) + jnp.sin(x[:, 0]).reshape(-1, 1) + jr.normal(key=key, shape=(num_datapoints, 1)) * 0.1 ) D = Dataset(X=x, y=y) From 551f055f3be8747808f5c625af0fd3f8f149ce72 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:07:36 +0300 Subject: [PATCH 59/87] fix exception test for beartype --- tests/test_gps.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/test_gps.py b/tests/test_gps.py index cb8cc41d..cb783bb7 100644 --- a/tests/test_gps.py +++ b/tests/test_gps.py @@ -22,6 +22,8 @@ import jax.tree_util as jtu import shutil +import beartype + #from gpjax.dataset import Dataset from gpjax.dataset import Dataset from gpjax.gps import (AbstractPosterior, AbstractPrior, ConjugatePosterior, @@ -229,13 +231,13 @@ def test_prior_sample_approx(num_datapoints, kernel, mean_function): p.sample_approx(-1, key) with pytest.raises(ValueError): p.sample_approx(0, key) - with pytest.raises(ValueError): + with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): p.sample_approx(0.5, key) with pytest.raises(ValueError): p.sample_approx(1, key, -10) with pytest.raises(ValueError): p.sample_approx(1, key, 0) - with pytest.raises(ValueError): + with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): p.sample_approx(1, key, 0.5) sampled_fn = p.sample_approx(1, key, 100) @@ -290,13 +292,13 @@ def test_conjugate_posterior_sample_approx(num_datapoints, kernel, mean_function p.sample_approx(-1, D, key) with pytest.raises(ValueError): p.sample_approx(0, D, key) - with pytest.raises(ValueError): + with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): p.sample_approx(0.5, D, key) with pytest.raises(ValueError): p.sample_approx(1, D, key, -10) with pytest.raises(ValueError): p.sample_approx(1, D, key, 0) - with pytest.raises(ValueError): + with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): p.sample_approx(1, D, key, 0.5) sampled_fn = p.sample_approx(1, D, key, 100) From 6fc3a551d7c917d1479b40e72ff55fed78ab47cb Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:15:37 +0300 Subject: [PATCH 60/87] fix Constant mean function --- gpjax/mean_functions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index c2fc860e..affb3185 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -112,7 +112,7 @@ class Constant(AbstractMeanFunction): constant: Float[Array, "1"] = param_field(jnp.array([0.0])) - def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: + def __call__(self, x: Float[Array, "D"]) -> Float[Array, "1"]: """Evaluate the mean function at the given points. Args: @@ -121,7 +121,7 @@ def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: Returns: Float[Array, "1"]: The evaluated mean function. """ - return jnp.ones((x.shape[0], 1)) * self.constant + return self.constant @dataclasses.dataclass From bf2a48343961b48cce5bb2867751ebadb69fd2f8 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:17:25 +0300 Subject: [PATCH 61/87] base_kernel as kwarg in test_approximations --- tests/test_kernels/test_approximations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_kernels/test_approximations.py b/tests/test_kernels/test_approximations.py index 10164b43..bc2c0b23 100644 --- a/tests/test_kernels/test_approximations.py +++ b/tests/test_kernels/test_approximations.py @@ -130,12 +130,12 @@ def test_exactness(kernel): ) def test_value_error(kernel): with pytest.raises(ValueError): - RFF(kernel(), num_basis_fns=10) + RFF(base_kernel=kernel(), num_basis_fns=10) @pytest.mark.parametrize("kernel", [RBF(), Matern12(), Matern32(), Matern52()]) def stochastic_init(kernel: AbstractKernel): - k1 = RFF(kernel, num_basis_fns=10, key=123) - k2 = RFF(kernel, num_basis_fns=10, key=42) + k1 = RFF(base_kernel=kernel, num_basis_fns=10, key=123) + k2 = RFF(base_kernel=kernel, num_basis_fns=10, key=42) assert (k1.frequencies != k2.frequencies).any() From ac70773f575561b57a959a59524cf022dcd681f4 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:18:10 +0300 Subject: [PATCH 62/87] rename func to test_ so it actually gets collected --- tests/test_kernels/test_approximations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_kernels/test_approximations.py b/tests/test_kernels/test_approximations.py index bc2c0b23..34c896f3 100644 --- a/tests/test_kernels/test_approximations.py +++ b/tests/test_kernels/test_approximations.py @@ -134,7 +134,7 @@ def test_value_error(kernel): @pytest.mark.parametrize("kernel", [RBF(), Matern12(), Matern32(), Matern52()]) -def stochastic_init(kernel: AbstractKernel): +def test_stochastic_init(kernel: AbstractKernel): k1 = RFF(base_kernel=kernel, num_basis_fns=10, key=123) k2 = RFF(base_kernel=kernel, num_basis_fns=10, key=42) From e2b6a88bc560e2b7e6862f2b9235ea1c42ee74d7 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:35:00 +0300 Subject: [PATCH 63/87] mark test_graph_kernel as broken --- tests/test_kernels/test_non_euclidean.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_kernels/test_non_euclidean.py b/tests/test_kernels/test_non_euclidean.py index 133454d2..cab1c9b9 100644 --- a/tests/test_kernels/test_non_euclidean.py +++ b/tests/test_kernels/test_non_euclidean.py @@ -13,6 +13,7 @@ # # limitations under the License. # # ============================================================================== +import pytest import jax.numpy as jnp import jax.random as jr import networkx as nx @@ -25,6 +26,7 @@ config.update("jax_enable_x64", True) +@pytest.mark.skip("Graph kernel is broken") def test_graph_kernel(): # Create a random graph, G, and verice labels, x, n_verticies = 20 From 985d554080e4ab37993b83fa397d2fdb964f59ae Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:35:14 +0300 Subject: [PATCH 64/87] fix LinearOperator DTypeT --- gpjax/linops/linear_operator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 065c4571..71e418ef 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -16,7 +16,7 @@ import abc from dataclasses import dataclass -from beartype.typing import Any, Generic, Iterable, Mapping, Tuple, TypeVar, Union +from beartype.typing import Any, Generic, Iterable, Mapping, Tuple, Type, TypeVar, Union import jax.numpy as jnp from jaxtyping import Array, Float @@ -30,8 +30,9 @@ NestedT = Union[T, Iterable["NestedT"], Mapping[Any, "NestedT"]] # Nested types. +DTypes = Union[Type[jnp.float32], Type[jnp.float64], Type[jnp.int32], Type[jnp.int64]] ShapeT = TypeVar("ShapeT", bound=NestedT[Tuple[int, ...]]) -DTypeT = TypeVar("DTypeT", bound=NestedT[jnp.dtype]) +DTypeT = TypeVar("DTypeT", bound=NestedT[DTypes]) # The Generic type is used for type checking the LinearOperator's shape and datatype. # `static_field` is used to mark nodes of the PyTree that don't change under JAX transformations. From 7ea37d2d3f82b5f505e1b7d1f266d622b07aa80d Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:39:32 +0300 Subject: [PATCH 65/87] Revert "fix Constant mean function" This reverts commit 6fc3a551d7c917d1479b40e72ff55fed78ab47cb. --- gpjax/mean_functions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index affb3185..c2fc860e 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -112,7 +112,7 @@ class Constant(AbstractMeanFunction): constant: Float[Array, "1"] = param_field(jnp.array([0.0])) - def __call__(self, x: Float[Array, "D"]) -> Float[Array, "1"]: + def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: """Evaluate the mean function at the given points. Args: @@ -121,7 +121,7 @@ def __call__(self, x: Float[Array, "D"]) -> Float[Array, "1"]: Returns: Float[Array, "1"]: The evaluated mean function. """ - return self.constant + return jnp.ones((x.shape[0], 1)) * self.constant @dataclasses.dataclass From 760d4707bbd3b2e0f5479564be33c18317620c99 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:44:04 +0300 Subject: [PATCH 66/87] fix test_mean_functions instead --- tests/test_mean_functions.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/test_mean_functions.py b/tests/test_mean_functions.py index 537c68bf..8cb0ce29 100644 --- a/tests/test_mean_functions.py +++ b/tests/test_mean_functions.py @@ -1,4 +1,5 @@ import jax +import jax.numpy as jnp import pytest from jaxtyping import Array, Float @@ -13,28 +14,28 @@ def test_abstract() -> None: # Check a "dummy" mean funcion with defined abstract method, `__call__`, can be instantiated. class DummyMeanFunction(AbstractMeanFunction): def __call__(self, x: Float[Array, "D"]) -> Float[Array, "1"]: - return jax.numpy.array([1.0]) + return jnp.array([1.0]) mf = DummyMeanFunction() assert isinstance(mf, AbstractMeanFunction) - assert (mf(jax.numpy.array([1.0])) == jax.numpy.array([1.0])).all() - assert (mf(jax.numpy.array([2.0, 3.0])) == jax.numpy.array([1.0])).all() + assert (mf(jnp.array([1.0])) == jnp.array([1.0])).all() + assert (mf(jnp.array([2.0, 3.0])) == jnp.array([1.0])).all() @pytest.mark.parametrize( - "constant", [jax.numpy.array([0.0]), jax.numpy.array([1.0]), jax.numpy.array([3.0])] + "constant", [jnp.array([0.0]), jnp.array([1.0]), jnp.array([3.0])] ) def test_constant(constant: Float[Array, "Q"]) -> None: mf = Constant(constant=constant) assert isinstance(mf, AbstractMeanFunction) - assert (mf(jax.numpy.array([1.0])) == constant).all() - assert (mf(jax.numpy.array([2.0, 3.0])) == constant).all() + assert (mf(jnp.array([[1.0]])) == jnp.array([constant])).all() + assert (mf(jnp.array([[2.0, 3.0]])) == jnp.array([constant])).all() assert ( - jax.vmap(mf)(jax.numpy.array([[1.0], [2.0]])) - == jax.numpy.array([constant, constant]) + mf(jnp.array([[1.0], [2.0]])) + == jnp.array([constant, constant]) ).all() assert ( - jax.vmap(mf)(jax.numpy.array([[1.0, 2.0], [3.0, 4.0]])) - == jax.numpy.array([constant, constant]) + mf(jnp.array([[1.0, 2.0], [3.0, 4.0]])) + == jnp.array([constant, constant]) ).all() From fcf6572f0001b3041c6ac9584c30fa866a9fe8c3 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 14:58:24 +0300 Subject: [PATCH 67/87] fix one more bug in RFF test --- tests/test_kernels/test_approximations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_kernels/test_approximations.py b/tests/test_kernels/test_approximations.py index 34c896f3..b768ed12 100644 --- a/tests/test_kernels/test_approximations.py +++ b/tests/test_kernels/test_approximations.py @@ -135,7 +135,7 @@ def test_value_error(kernel): @pytest.mark.parametrize("kernel", [RBF(), Matern12(), Matern32(), Matern52()]) def test_stochastic_init(kernel: AbstractKernel): - k1 = RFF(base_kernel=kernel, num_basis_fns=10, key=123) - k2 = RFF(base_kernel=kernel, num_basis_fns=10, key=42) + k1 = RFF(base_kernel=kernel, num_basis_fns=10, key=jr.PRNGKey(123)) + k2 = RFF(base_kernel=kernel, num_basis_fns=10, key=jr.PRNGKey(42)) assert (k1.frequencies != k2.frequencies).any() From 78397d50255435cdb2dc8d253ed64d5a80206666 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 15:00:02 +0300 Subject: [PATCH 68/87] Self --- gpjax/base/module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index 9cd81c05..7cc82aa7 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -32,7 +32,7 @@ from simple_pytree import Pytree, static_field -Self = TypeVar('T') +Self = TypeVar('Self') class Module(Pytree): From 67f4c945d84e49f0c03aae7f3579c2abcb588989 Mon Sep 17 00:00:00 2001 From: ST John Date: Mon, 24 Apr 2023 15:39:31 +0300 Subject: [PATCH 69/87] relax fit objective type --- gpjax/fit.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gpjax/fit.py b/gpjax/fit.py index eecd8aa8..d16eda99 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== -from beartype.typing import Any, Optional, Tuple +from beartype.typing import Any, Optional, Tuple, Union, Callable import jax import jax.random as jr @@ -33,7 +33,7 @@ def fit( *, model: Module, - objective: AbstractObjective, + objective: Union[AbstractObjective, Callable[[Module, Dataset], ScalarFloat]], train_data: Dataset, optim: ox.GradientTransformation, num_iters: Optional[int] = 100, @@ -69,7 +69,7 @@ def fit( >>> model = LinearModel(weight=1.0, bias=1.0) >>> >>> # (3) Define your loss function: - >>> class MeanSqaureError(gpx.AbstractObjective): + >>> class MeanSquareError(gpx.AbstractObjective): ... def evaluate(self, model: LinearModel, train_data: gpx.Dataset) -> float: ... return jnp.mean((train_data.y - model(train_data.X)) ** 2) ... From 68d637168b4a5044f0e214f887810f2556500dd1 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 09:18:31 +0300 Subject: [PATCH 70/87] rename gpjax.utils -> gpjax.typing --- gpjax/fit.py | 2 +- gpjax/gaussian_distribution.py | 4 ++-- gpjax/gps.py | 2 +- gpjax/kernels/approximations/rff.py | 2 +- gpjax/kernels/base.py | 6 +++--- gpjax/kernels/non_euclidean/graph.py | 2 +- gpjax/kernels/nonstationary/linear.py | 2 +- gpjax/kernels/nonstationary/polynomial.py | 2 +- gpjax/kernels/stationary/matern12.py | 2 +- gpjax/kernels/stationary/matern32.py | 2 +- gpjax/kernels/stationary/matern52.py | 2 +- gpjax/kernels/stationary/periodic.py | 2 +- gpjax/kernels/stationary/powered_exponential.py | 2 +- gpjax/kernels/stationary/rational_quadratic.py | 2 +- gpjax/kernels/stationary/rbf.py | 2 +- gpjax/kernels/stationary/utils.py | 2 +- gpjax/kernels/stationary/white.py | 2 +- gpjax/linops/constant_diagonal_linear_operator.py | 2 +- gpjax/linops/dense_linear_operator.py | 2 +- gpjax/linops/diagonal_linear_operator.py | 2 +- gpjax/linops/identity_linear_operator.py | 2 +- gpjax/linops/linear_operator.py | 2 +- gpjax/linops/zero_linear_operator.py | 2 +- gpjax/objectives.py | 2 +- gpjax/scan.py | 2 +- gpjax/{utils.py => typing.py} | 0 gpjax/variational_families.py | 2 +- 27 files changed, 29 insertions(+), 29 deletions(-) rename gpjax/{utils.py => typing.py} (100%) diff --git a/gpjax/fit.py b/gpjax/fit.py index d16eda99..7a10f7a1 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -23,7 +23,7 @@ from jaxlib.xla_extension import PjitFunction from warnings import warn -from gpjax.utils import ScalarFloat, KeyArray +from gpjax.typing import ScalarFloat, KeyArray from .base import Module from .dataset import Dataset from .objectives import AbstractObjective diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index c09ceaf6..45388695 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -18,8 +18,8 @@ import jax.numpy as jnp import jax.random as jr -from gpjax.utils import KeyArray -from gpjax.utils import ScalarFloat +from gpjax.typing import KeyArray +from gpjax.typing import ScalarFloat from jax import vmap from jaxtyping import Array, Float import tensorflow_probability.substrates.jax as tfp diff --git a/gpjax/gps.py b/gpjax/gps.py index 895f3084..b8314e8d 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -20,7 +20,7 @@ import jax.numpy as jnp from jax.random import PRNGKey, normal from jaxtyping import Array, Float -from gpjax.utils import KeyArray +from gpjax.typing import KeyArray from simple_pytree import static_field diff --git a/gpjax/kernels/approximations/rff.py b/gpjax/kernels/approximations/rff.py index 40befac4..44578b8c 100644 --- a/gpjax/kernels/approximations/rff.py +++ b/gpjax/kernels/approximations/rff.py @@ -8,7 +8,7 @@ from ...base import param_field from ..base import AbstractKernel from ..computations import BasisFunctionComputation -from gpjax.utils import KeyArray +from gpjax.typing import KeyArray @dataclass diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 89e8f2d2..c39b4a03 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -22,13 +22,13 @@ import jax.numpy as jnp import jax.random import jax -from gpjax.utils import KeyArray -from gpjax.utils import ScalarFloat +from gpjax.typing import KeyArray +from gpjax.typing import ScalarFloat from jaxtyping import Array, Float from simple_pytree import static_field import tensorflow_probability.substrates.jax.distributions as tfd -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ..base import Module, param_field from .computations import AbstractKernelComputation, DenseKernelComputation diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index c60f014c..49a4443e 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax as tfp from jaxtyping import Array, Float, Int from simple_pytree import static_field -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index c6c0938f..c9bd1f57 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -18,7 +18,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index de23425f..1d3d2e9c 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -19,7 +19,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb from jaxtyping import Array, Float from simple_pytree import static_field -from gpjax.utils import ScalarFloat, ScalarInt +from gpjax.typing import ScalarFloat, ScalarInt from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index dc0b9d54..f867e8ff 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float from beartype.typing import Union -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index d4374cea..064bc989 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float from beartype.typing import Union -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index e8967fd7..794a55d6 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float from beartype.typing import Union -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index 8e7e0fb8..70b95ee3 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 8a40092d..5a427778 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index 7ab85f0b..c0533d49 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from beartype.typing import Union from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index 6fb06e9b..182ce230 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/kernels/stationary/utils.py b/gpjax/kernels/stationary/utils.py index a5306425..118a5b37 100644 --- a/gpjax/kernels/stationary/utils.py +++ b/gpjax/kernels/stationary/utils.py @@ -16,7 +16,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax as tfp from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat tfd = tfp.distributions diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index f09fff28..bdb83a92 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -20,7 +20,7 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jaxtyping import Array, Float from simple_pytree import static_field -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from ...base import param_field from ..base import AbstractKernel diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 7fd4f698..6bd63053 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -21,7 +21,7 @@ from jaxtyping import Array, Float from simple_pytree import static_field -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from .linear_operator import LinearOperator from .diagonal_linear_operator import DiagonalLinearOperator from .linear_operator import LinearOperator diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index e721c53a..2af2f4a5 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -23,7 +23,7 @@ from gpjax.linops.linear_operator import LinearOperator from gpjax.linops.utils import to_linear_operator -from gpjax.utils import ScalarFloat, VecNOrMatNM +from gpjax.typing import ScalarFloat, VecNOrMatNM def _check_matrix(matrix: Array) -> None: diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 14e48a72..7651ee7c 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -23,7 +23,7 @@ from .dense_linear_operator import DenseLinearOperator from .linear_operator import LinearOperator from .utils import to_linear_operator -from gpjax.utils import ScalarFloat, VecNOrMatNM +from gpjax.typing import ScalarFloat, VecNOrMatNM def _check_diag(diag: Any) -> None: diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index 6f5f9be7..f26bc0a8 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -19,7 +19,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from gpjax.linops.constant_diagonal_linear_operator import \ ConstantDiagonalLinearOperator diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 71e418ef..716ed057 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -21,7 +21,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float from simple_pytree import Pytree, static_field -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat # Generic type. T = TypeVar("T") diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index 19b39431..e98e5e3d 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -20,7 +20,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from .diagonal_linear_operator import DiagonalLinearOperator from .linear_operator import LinearOperator from .utils import check_shapes_match, default_dtype, to_linear_operator diff --git a/gpjax/objectives.py b/gpjax/objectives.py index ca8aadf4..e722aae2 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -10,7 +10,7 @@ from simple_pytree import static_field import tensorflow_probability.substrates.jax as tfp -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat from .base import Module from .dataset import Dataset from .gaussian_distribution import GaussianDistribution diff --git a/gpjax/scan.py b/gpjax/scan.py index 01487df3..ad534013 100644 --- a/gpjax/scan.py +++ b/gpjax/scan.py @@ -22,7 +22,7 @@ from jaxtyping import Shaped, Array from jax.experimental import host_callback as hcb from tqdm.auto import trange -from gpjax.utils import ScalarInt, ScalarBool +from gpjax.typing import ScalarInt, ScalarBool Carry = TypeVar("Carry") X = TypeVar("X") diff --git a/gpjax/utils.py b/gpjax/typing.py similarity index 100% rename from gpjax/utils.py rename to gpjax/typing.py diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 25aff349..96ad0630 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -30,7 +30,7 @@ from .likelihoods import Gaussian from .linops import (DenseLinearOperator, LowerTriangularLinearOperator, identity) -from gpjax.utils import ScalarFloat +from gpjax.typing import ScalarFloat @dataclass From 65a9bfb88c13ae5f938ff93b27f14c7f30b45e12 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 09:20:44 +0300 Subject: [PATCH 71/87] Kernel = Any -> string forward reference --- gpjax/kernels/computations/base.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index a84840c5..82d35c87 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -23,14 +23,12 @@ from gpjax.linops import (DenseLinearOperator, DiagonalLinearOperator, LinearOperator) -Kernel = Any # TODO: FIX - @dataclass class AbstractKernelComputation: """Abstract class for kernel computations.""" - kernel: Kernel + kernel: "gpjax.kernels.base.AbstractKernel" def gram( self, From c439a93199b1ea01776e087f0e09166aeaf1a6f1 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 09:36:54 +0300 Subject: [PATCH 72/87] relax Gaussian.predict type annotation to include GaussianDistribution --- gpjax/likelihoods.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index 0640b564..0294826c 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -15,7 +15,7 @@ import abc from dataclasses import dataclass -from beartype.typing import Any +from beartype.typing import Any, Union import jax.numpy as jnp import jax.scipy as jsp @@ -25,6 +25,7 @@ from .base import Module, param_field from .linops.utils import to_dense +from .gaussian_distribution import GaussianDistribution tfb = tfp.bijectors tfd = tfp.distributions @@ -92,7 +93,7 @@ def link_function(self, f: Float[Array, "..."]) -> tfd.Normal: return tfd.Normal(loc=f, scale=self.obs_noise.astype(f.dtype)) def predict( - self, dist: tfd.MultivariateNormalTriL + self, dist: Union[tfd.MultivariateNormalTriL, GaussianDistribution] ) -> tfd.MultivariateNormalFullCovariance: """ Evaluate the Gaussian likelihood function at a given predictive From edaf2cb6a576e636da1c4c76eef70bc891649af5 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 18:15:47 +0300 Subject: [PATCH 73/87] our own `Array` type that accepts both JAX and Numpy arrays --- gpjax/dataset.py | 4 ++-- gpjax/fit.py | 3 ++- gpjax/gaussian_distribution.py | 3 ++- gpjax/gps.py | 4 ++-- gpjax/kernels/approximations/rff.py | 3 ++- gpjax/kernels/base.py | 3 ++- gpjax/kernels/computations/base.py | 3 ++- gpjax/kernels/computations/basis_functions.py | 3 ++- gpjax/kernels/computations/constant_diagonal.py | 3 ++- gpjax/kernels/computations/dense.py | 3 ++- gpjax/kernels/computations/diagonal.py | 3 ++- gpjax/kernels/computations/eigen.py | 3 ++- gpjax/kernels/non_euclidean/graph.py | 3 ++- gpjax/kernels/non_euclidean/utils.py | 3 ++- gpjax/kernels/nonstationary/linear.py | 3 ++- gpjax/kernels/nonstationary/polynomial.py | 3 ++- gpjax/kernels/stationary/matern12.py | 3 ++- gpjax/kernels/stationary/matern32.py | 3 ++- gpjax/kernels/stationary/matern52.py | 3 ++- gpjax/kernels/stationary/periodic.py | 3 ++- gpjax/kernels/stationary/powered_exponential.py | 3 ++- gpjax/kernels/stationary/rational_quadratic.py | 3 ++- gpjax/kernels/stationary/rbf.py | 3 ++- gpjax/kernels/stationary/utils.py | 3 ++- gpjax/kernels/stationary/white.py | 3 ++- gpjax/likelihoods.py | 3 ++- gpjax/linops/constant_diagonal_linear_operator.py | 3 ++- gpjax/linops/dense_linear_operator.py | 3 ++- gpjax/linops/diagonal_linear_operator.py | 3 ++- gpjax/linops/identity_linear_operator.py | 3 ++- gpjax/linops/linear_operator.py | 3 ++- gpjax/linops/triangular_linear_operator.py | 3 ++- gpjax/linops/utils.py | 3 ++- gpjax/linops/zero_linear_operator.py | 3 ++- gpjax/mean_functions.py | 3 ++- gpjax/objectives.py | 3 ++- gpjax/progress_bar.py | 3 ++- gpjax/quadrature.py | 3 ++- gpjax/typing.py | 8 ++++++-- gpjax/variational_families.py | 3 ++- 40 files changed, 84 insertions(+), 43 deletions(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index d9ddef2a..b0ded984 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -17,9 +17,9 @@ from beartype.typing import Optional, Union import jax.numpy as jnp -from jaxtyping import Array, Float +from jaxtyping import Float from simple_pytree import Pytree - +from gpjax.typing import Array @dataclass class Dataset(Pytree): diff --git a/gpjax/fit.py b/gpjax/fit.py index 7a10f7a1..367466ab 100644 --- a/gpjax/fit.py +++ b/gpjax/fit.py @@ -19,7 +19,8 @@ import jax.random as jr import optax as ox from jax._src.random import _check_prng_key -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from jaxlib.xla_extension import PjitFunction from warnings import warn diff --git a/gpjax/gaussian_distribution.py b/gpjax/gaussian_distribution.py index 45388695..5a9e7556 100644 --- a/gpjax/gaussian_distribution.py +++ b/gpjax/gaussian_distribution.py @@ -21,7 +21,8 @@ from gpjax.typing import KeyArray from gpjax.typing import ScalarFloat from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float import tensorflow_probability.substrates.jax as tfp from .linops import IdentityLinearOperator, LinearOperator diff --git a/gpjax/gps.py b/gpjax/gps.py index b8314e8d..8246d985 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -19,8 +19,8 @@ import jax.numpy as jnp from jax.random import PRNGKey, normal -from jaxtyping import Array, Float -from gpjax.typing import KeyArray +from jaxtyping import Float +from gpjax.typing import KeyArray, Array from simple_pytree import static_field diff --git a/gpjax/kernels/approximations/rff.py b/gpjax/kernels/approximations/rff.py index 44578b8c..a2c88ef4 100644 --- a/gpjax/kernels/approximations/rff.py +++ b/gpjax/kernels/approximations/rff.py @@ -2,7 +2,8 @@ import tensorflow_probability.substrates.jax.bijectors as tfb from jax.random import PRNGKey -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from ...base import param_field diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index c39b4a03..1136daf4 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -24,7 +24,8 @@ import jax from gpjax.typing import KeyArray from gpjax.typing import ScalarFloat -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field import tensorflow_probability.substrates.jax.distributions as tfd diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index 82d35c87..e99b7173 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -18,7 +18,8 @@ from beartype.typing import Any from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.linops import (DenseLinearOperator, DiagonalLinearOperator, LinearOperator) diff --git a/gpjax/kernels/computations/basis_functions.py b/gpjax/kernels/computations/basis_functions.py index 71018a37..8ea4a327 100644 --- a/gpjax/kernels/computations/basis_functions.py +++ b/gpjax/kernels/computations/basis_functions.py @@ -1,7 +1,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.linops import DenseLinearOperator diff --git a/gpjax/kernels/computations/constant_diagonal.py b/gpjax/kernels/computations/constant_diagonal.py index f81e6e74..f98c382f 100644 --- a/gpjax/kernels/computations/constant_diagonal.py +++ b/gpjax/kernels/computations/constant_diagonal.py @@ -15,7 +15,8 @@ import jax.numpy as jnp from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.linops import ConstantDiagonalLinearOperator, DiagonalLinearOperator diff --git a/gpjax/kernels/computations/dense.py b/gpjax/kernels/computations/dense.py index bc036248..370280ca 100644 --- a/gpjax/kernels/computations/dense.py +++ b/gpjax/kernels/computations/dense.py @@ -14,7 +14,8 @@ # ============================================================================== from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from .base import AbstractKernelComputation diff --git a/gpjax/kernels/computations/diagonal.py b/gpjax/kernels/computations/diagonal.py index 2f9eaf23..631d6f9a 100644 --- a/gpjax/kernels/computations/diagonal.py +++ b/gpjax/kernels/computations/diagonal.py @@ -14,7 +14,8 @@ # ============================================================================== from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.kernels.computations.base import AbstractKernelComputation from gpjax.linops import DiagonalLinearOperator diff --git a/gpjax/kernels/computations/eigen.py b/gpjax/kernels/computations/eigen.py index 317db195..da48f81c 100644 --- a/gpjax/kernels/computations/eigen.py +++ b/gpjax/kernels/computations/eigen.py @@ -17,7 +17,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from .base import AbstractKernelComputation diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index 49a4443e..4c23bd48 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -18,7 +18,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax as tfp -from jaxtyping import Array, Float, Int +from gpjax.typing import Array +from jaxtyping import Float, Int from simple_pytree import static_field from gpjax.typing import ScalarFloat diff --git a/gpjax/kernels/non_euclidean/utils.py b/gpjax/kernels/non_euclidean/utils.py index c247b3d4..3fedcfa0 100644 --- a/gpjax/kernels/non_euclidean/utils.py +++ b/gpjax/kernels/non_euclidean/utils.py @@ -13,7 +13,8 @@ # limitations under the License. # ============================================================================== -from jaxtyping import Array, Int, Num +from gpjax.typing import Array +from jaxtyping import Int, Num def jax_gather_nd( diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index c9bd1f57..de3aa5df 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -17,7 +17,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from ...base import param_field diff --git a/gpjax/kernels/nonstationary/polynomial.py b/gpjax/kernels/nonstationary/polynomial.py index 1d3d2e9c..0c250043 100644 --- a/gpjax/kernels/nonstationary/polynomial.py +++ b/gpjax/kernels/nonstationary/polynomial.py @@ -17,7 +17,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from gpjax.typing import ScalarFloat, ScalarInt diff --git a/gpjax/kernels/stationary/matern12.py b/gpjax/kernels/stationary/matern12.py index f867e8ff..0e7a25ec 100644 --- a/gpjax/kernels/stationary/matern12.py +++ b/gpjax/kernels/stationary/matern12.py @@ -18,7 +18,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from beartype.typing import Union from gpjax.typing import ScalarFloat diff --git a/gpjax/kernels/stationary/matern32.py b/gpjax/kernels/stationary/matern32.py index 064bc989..e5ba3561 100644 --- a/gpjax/kernels/stationary/matern32.py +++ b/gpjax/kernels/stationary/matern32.py @@ -18,7 +18,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from beartype.typing import Union from gpjax.typing import ScalarFloat diff --git a/gpjax/kernels/stationary/matern52.py b/gpjax/kernels/stationary/matern52.py index 794a55d6..d810c082 100644 --- a/gpjax/kernels/stationary/matern52.py +++ b/gpjax/kernels/stationary/matern52.py @@ -18,7 +18,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from beartype.typing import Union from gpjax.typing import ScalarFloat diff --git a/gpjax/kernels/stationary/periodic.py b/gpjax/kernels/stationary/periodic.py index 70b95ee3..650f8247 100644 --- a/gpjax/kernels/stationary/periodic.py +++ b/gpjax/kernels/stationary/periodic.py @@ -19,7 +19,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from ...base import param_field diff --git a/gpjax/kernels/stationary/powered_exponential.py b/gpjax/kernels/stationary/powered_exponential.py index 5a427778..b6474dfe 100644 --- a/gpjax/kernels/stationary/powered_exponential.py +++ b/gpjax/kernels/stationary/powered_exponential.py @@ -19,7 +19,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from ...base import param_field diff --git a/gpjax/kernels/stationary/rational_quadratic.py b/gpjax/kernels/stationary/rational_quadratic.py index c0533d49..44217e53 100644 --- a/gpjax/kernels/stationary/rational_quadratic.py +++ b/gpjax/kernels/stationary/rational_quadratic.py @@ -19,7 +19,8 @@ import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd from beartype.typing import Union -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from ...base import param_field diff --git a/gpjax/kernels/stationary/rbf.py b/gpjax/kernels/stationary/rbf.py index 182ce230..6ce74cde 100644 --- a/gpjax/kernels/stationary/rbf.py +++ b/gpjax/kernels/stationary/rbf.py @@ -19,7 +19,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from ...base import param_field diff --git a/gpjax/kernels/stationary/utils.py b/gpjax/kernels/stationary/utils.py index 118a5b37..68b842b4 100644 --- a/gpjax/kernels/stationary/utils.py +++ b/gpjax/kernels/stationary/utils.py @@ -15,7 +15,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax as tfp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat tfd = tfp.distributions diff --git a/gpjax/kernels/stationary/white.py b/gpjax/kernels/stationary/white.py index bdb83a92..4da424d8 100644 --- a/gpjax/kernels/stationary/white.py +++ b/gpjax/kernels/stationary/white.py @@ -18,7 +18,8 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax.bijectors as tfb import tensorflow_probability.substrates.jax.distributions as tfd -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from gpjax.typing import ScalarFloat diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index 0294826c..1a00b258 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -20,7 +20,8 @@ import jax.numpy as jnp import jax.scipy as jsp import tensorflow_probability.substrates.jax as tfp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from .base import Module, param_field diff --git a/gpjax/linops/constant_diagonal_linear_operator.py b/gpjax/linops/constant_diagonal_linear_operator.py index 6bd63053..458233ae 100644 --- a/gpjax/linops/constant_diagonal_linear_operator.py +++ b/gpjax/linops/constant_diagonal_linear_operator.py @@ -18,7 +18,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from gpjax.typing import ScalarFloat diff --git a/gpjax/linops/dense_linear_operator.py b/gpjax/linops/dense_linear_operator.py index 2af2f4a5..d985f3d6 100644 --- a/gpjax/linops/dense_linear_operator.py +++ b/gpjax/linops/dense_linear_operator.py @@ -19,7 +19,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.linops.linear_operator import LinearOperator from gpjax.linops.utils import to_linear_operator diff --git a/gpjax/linops/diagonal_linear_operator.py b/gpjax/linops/diagonal_linear_operator.py index 7651ee7c..bc0a3136 100644 --- a/gpjax/linops/diagonal_linear_operator.py +++ b/gpjax/linops/diagonal_linear_operator.py @@ -18,7 +18,8 @@ from beartype.typing import Any, Union import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from .dense_linear_operator import DenseLinearOperator from .linear_operator import LinearOperator diff --git a/gpjax/linops/identity_linear_operator.py b/gpjax/linops/identity_linear_operator.py index f26bc0a8..c2ea16e7 100644 --- a/gpjax/linops/identity_linear_operator.py +++ b/gpjax/linops/identity_linear_operator.py @@ -18,7 +18,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from gpjax.linops.constant_diagonal_linear_operator import \ diff --git a/gpjax/linops/linear_operator.py b/gpjax/linops/linear_operator.py index 716ed057..0abe1320 100644 --- a/gpjax/linops/linear_operator.py +++ b/gpjax/linops/linear_operator.py @@ -19,7 +19,8 @@ from beartype.typing import Any, Generic, Iterable, Mapping, Tuple, Type, TypeVar, Union import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import Pytree, static_field from gpjax.typing import ScalarFloat diff --git a/gpjax/linops/triangular_linear_operator.py b/gpjax/linops/triangular_linear_operator.py index 4961dcd6..000ee3c9 100644 --- a/gpjax/linops/triangular_linear_operator.py +++ b/gpjax/linops/triangular_linear_operator.py @@ -16,7 +16,8 @@ import jax.numpy as jnp import jax.scipy as jsp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from .dense_linear_operator import DenseLinearOperator from .linear_operator import LinearOperator diff --git a/gpjax/linops/utils.py b/gpjax/linops/utils.py index 37b9e051..b3c0d816 100644 --- a/gpjax/linops/utils.py +++ b/gpjax/linops/utils.py @@ -18,7 +18,8 @@ import jax import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.linops.linear_operator import LinearOperator diff --git a/gpjax/linops/zero_linear_operator.py b/gpjax/linops/zero_linear_operator.py index e98e5e3d..d998704c 100644 --- a/gpjax/linops/zero_linear_operator.py +++ b/gpjax/linops/zero_linear_operator.py @@ -18,7 +18,8 @@ from dataclasses import dataclass import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from gpjax.typing import ScalarFloat from .diagonal_linear_operator import DiagonalLinearOperator diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index c2fc860e..2cf50dc0 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -20,7 +20,8 @@ from beartype.typing import Callable, List, Union import jax.numpy as jnp -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from .base import Module, param_field diff --git a/gpjax/objectives.py b/gpjax/objectives.py index e722aae2..0537d9c6 100644 --- a/gpjax/objectives.py +++ b/gpjax/objectives.py @@ -6,7 +6,8 @@ import jax.scipy as jsp import jax.tree_util as jtu from jax import vmap -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field import tensorflow_probability.substrates.jax as tfp diff --git a/gpjax/progress_bar.py b/gpjax/progress_bar.py index eec6ad78..19c84ff4 100644 --- a/gpjax/progress_bar.py +++ b/gpjax/progress_bar.py @@ -17,7 +17,8 @@ from jax import lax from jax.experimental import host_callback -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from tqdm.auto import tqdm diff --git a/gpjax/quadrature.py b/gpjax/quadrature.py index 208cf9a7..acd81c6d 100644 --- a/gpjax/quadrature.py +++ b/gpjax/quadrature.py @@ -17,7 +17,8 @@ import jax.numpy as jnp import numpy as np -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float """The number of Gauss-Hermite points to use for quadrature""" DEFAULT_NUM_GAUSS_HERMITE_POINTS = 20 diff --git a/gpjax/typing.py b/gpjax/typing.py index 64f12b4b..08d56808 100644 --- a/gpjax/typing.py +++ b/gpjax/typing.py @@ -14,12 +14,16 @@ # ============================================================================== from beartype.typing import Union -from jaxtyping import Bool, UInt32, Int, Float, Array +from jaxtyping import Bool, UInt32, Int, Float +from numpy import ndarray as NumpyArray +from jaxtyping import Array as JAXArray from jax.random import KeyArray as JAXKeyArray -OldKeyArray = UInt32[Array, "2"] +OldKeyArray = UInt32[JAXArray, "2"] KeyArray = Union[OldKeyArray, JAXKeyArray] # for compatibility regardless of enable_custom_prng setting +Array = Union[JAXArray, NumpyArray] + ScalarBool = Union[bool, Bool[Array, ""]] ScalarInt = Union[int, Int[Array, ""]] ScalarFloat = Union[float, Float[Array, ""]] diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index 96ad0630..f31a038d 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -20,7 +20,8 @@ import jax.numpy as jnp import jax.scipy as jsp import tensorflow_probability.substrates.jax.bijectors as tfb -from jaxtyping import Array, Float +from gpjax.typing import Array +from jaxtyping import Float from simple_pytree import static_field from .base import Module, param_field From bb4d51f8106a0aadccc09cc14808108a2e981953 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 18:32:58 +0300 Subject: [PATCH 74/87] some Float -> Num relaxations for graph kernel... --- gpjax/dataset.py | 6 +++--- gpjax/gps.py | 8 ++++---- gpjax/kernels/base.py | 6 +++--- gpjax/kernels/computations/base.py | 8 ++++---- gpjax/kernels/computations/eigen.py | 4 ++-- gpjax/kernels/non_euclidean/graph.py | 2 +- gpjax/mean_functions.py | 14 +++++++------- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index b0ded984..4a4a610e 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -17,7 +17,7 @@ from beartype.typing import Optional, Union import jax.numpy as jnp -from jaxtyping import Float +from jaxtyping import Float, Num from simple_pytree import Pytree from gpjax.typing import Array @@ -30,7 +30,7 @@ class Dataset(Pytree): y (Optional[Float[Array, "N Q"]]): Output data. """ - X: Optional[Union[Float[Array, "N D"], Float[Array, "..."]]] = None + X: Optional[Union[Num[Array, "N D"], Num[Array, "..."]]] = None y: Optional[Union[Float[Array, "N Q"], Float[Array, "..."]]] = None def __post_init__(self) -> None: @@ -83,7 +83,7 @@ def out_dim(self) -> int: return self.y.shape[1] -def _check_shape(X: Optional[Float[Array, "..."]], y: Optional[Float[Array, "..."]]) -> None: +def _check_shape(X: Optional[Num[Array, "..."]], y: Optional[Float[Array, "..."]]) -> None: """Checks that the shapes of X and y are compatible.""" if X is not None and y is not None: if X.shape[0] != y.shape[0]: diff --git a/gpjax/gps.py b/gpjax/gps.py index 8246d985..55f25b8e 100644 --- a/gpjax/gps.py +++ b/gpjax/gps.py @@ -19,7 +19,7 @@ import jax.numpy as jnp from jax.random import PRNGKey, normal -from jaxtyping import Float +from jaxtyping import Float, Num from gpjax.typing import KeyArray, Array from simple_pytree import static_field @@ -158,7 +158,7 @@ def __rmul__(self, other: AbstractLikelihood): """ return self.__mul__(other) - def predict(self, test_inputs: Float[Array, "N D"]) -> GaussianDistribution: + def predict(self, test_inputs: Num[Array, "N D"]) -> GaussianDistribution: """Compute the predictive prior distribution for a given set of parameters. The output of this function is a function that computes a TFP distribution for a given set of inputs. @@ -351,7 +351,7 @@ class ConjugatePosterior(AbstractPosterior): def predict( self, - test_inputs: Float[Array, "N D"], + test_inputs: Num[Array, "N D"], train_data: Dataset, ) -> GaussianDistribution: r"""Conditional on a training data set, compute the GP's posterior @@ -548,7 +548,7 @@ def __post_init__(self): self.latent = normal(self.key, shape=(self.likelihood.num_datapoints, 1)) def predict( - self, test_inputs: Float[Array, "N D"], train_data: Dataset + self, test_inputs: Num[Array, "N D"], train_data: Dataset ) -> GaussianDistribution: """ Conditional on a set of training data, compute the GP's posterior diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index 1136daf4..a7a9f33b 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -25,7 +25,7 @@ from gpjax.typing import KeyArray from gpjax.typing import ScalarFloat from gpjax.typing import Array -from jaxtyping import Float +from jaxtyping import Float, Num from simple_pytree import static_field import tensorflow_probability.substrates.jax.distributions as tfd @@ -46,10 +46,10 @@ class AbstractKernel(Module): def ndims(self): return 1 if not self.active_dims else len(self.active_dims) - def cross_covariance(self, x: Float[Array, "N D"], y: Float[Array, "M D"]): + def cross_covariance(self, x: Num[Array, "N D"], y: Num[Array, "M D"]): return self.compute_engine(self).cross_covariance(x, y) - def gram(self, x: Float[Array, "N D"]): + def gram(self, x: Num[Array, "N D"]): return self.compute_engine(self).gram(x) def slice_input(self, x: Float[Array, "... D"]) -> Float[Array, "... Q"]: diff --git a/gpjax/kernels/computations/base.py b/gpjax/kernels/computations/base.py index e99b7173..227fcbfd 100644 --- a/gpjax/kernels/computations/base.py +++ b/gpjax/kernels/computations/base.py @@ -19,7 +19,7 @@ from jax import vmap from gpjax.typing import Array -from jaxtyping import Float +from jaxtyping import Float, Num from gpjax.linops import (DenseLinearOperator, DiagonalLinearOperator, LinearOperator) @@ -33,7 +33,7 @@ class AbstractKernelComputation: def gram( self, - x: Float[Array, "N D"], + x: Num[Array, "N D"], ) -> LinearOperator: """Compute Gram covariance operator of the kernel function. @@ -48,7 +48,7 @@ def gram( @abc.abstractmethod def cross_covariance( - self, x: Float[Array, "N D"], y: Float[Array, "M D"] + self, x: Num[Array, "N D"], y: Num[Array, "M D"] ) -> Float[Array, "N M"]: """For a given kernel, compute the NxM gram matrix on an a pair of input matrices with shape NxD and MxD. @@ -62,7 +62,7 @@ def cross_covariance( """ raise NotImplementedError - def diagonal(self, inputs: Float[Array, "N D"]) -> DiagonalLinearOperator: + def diagonal(self, inputs: Num[Array, "N D"]) -> DiagonalLinearOperator: """For a given kernel, compute the elementwise diagonal of the NxN gram matrix on an input matrix of shape NxD. diff --git a/gpjax/kernels/computations/eigen.py b/gpjax/kernels/computations/eigen.py index da48f81c..9b32ea57 100644 --- a/gpjax/kernels/computations/eigen.py +++ b/gpjax/kernels/computations/eigen.py @@ -18,7 +18,7 @@ import jax.numpy as jnp from gpjax.typing import Array -from jaxtyping import Float +from jaxtyping import Float, Num from .base import AbstractKernelComputation @@ -26,7 +26,7 @@ @dataclass class EigenKernelComputation(AbstractKernelComputation): def cross_covariance( - self, x: Float[Array, "N D"], y: Float[Array, "M D"] + self, x: Num[Array, "N D"], y: Num[Array, "M D"] ) -> Float[Array, "N M"]: # Transform the eigenvalues of the graph Laplacian according to the # RBF kernel's SPDE form. diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index 4c23bd48..0a4bbfd5 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -19,7 +19,7 @@ import jax.numpy as jnp import tensorflow_probability.substrates.jax as tfp from gpjax.typing import Array -from jaxtyping import Float, Int +from jaxtyping import Float, Num, Int from simple_pytree import static_field from gpjax.typing import ScalarFloat diff --git a/gpjax/mean_functions.py b/gpjax/mean_functions.py index 2cf50dc0..e4f1a188 100644 --- a/gpjax/mean_functions.py +++ b/gpjax/mean_functions.py @@ -21,7 +21,7 @@ import jax.numpy as jnp from gpjax.typing import Array -from jaxtyping import Float +from jaxtyping import Float, Num from simple_pytree import static_field from .base import Module, param_field @@ -32,7 +32,7 @@ class AbstractMeanFunction(Module): """Mean function that is used to parameterise the Gaussian process.""" @abc.abstractmethod - def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: + def __call__(self, x: Num[Array, "N D"]) -> Float[Array, "N 1"]: """Evaluate the mean function at the given points. This method is required for all subclasses. Args: @@ -61,7 +61,7 @@ def __add__( return SumMeanFunction([self, Constant(other)]) def __radd__( - self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] # TODO should this be ScalarFloat? or Num? ) -> "AbstractMeanFunction": """Add two mean functions. @@ -74,7 +74,7 @@ def __radd__( return self.__add__(other) def __mul__( - self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] # TODO should this be ScalarFloat? or Num? ) -> "AbstractMeanFunction": """Multiply two mean functions. @@ -90,7 +90,7 @@ def __mul__( return ProductMeanFunction([self, Constant(other)]) def __rmul__( - self, other: Union["AbstractMeanFunction", Float[Array, "1"]] + self, other: Union["AbstractMeanFunction", Float[Array, "1"]] # TODO should this be ScalarFloat? or Num? ) -> "AbstractMeanFunction": """Multiply two mean functions. @@ -113,7 +113,7 @@ class Constant(AbstractMeanFunction): constant: Float[Array, "1"] = param_field(jnp.array([0.0])) - def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: + def __call__(self, x: Num[Array, "N D"]) -> Float[Array, "N 1"]: """Evaluate the mean function at the given points. Args: @@ -157,7 +157,7 @@ def __init__( self.means = items_list self.operator = operator - def __call__(self, x: Float[Array, "N D"]) -> Float[Array, "N 1"]: + def __call__(self, x: Num[Array, "N D"]) -> Float[Array, "N 1"]: """Evaluate combination kernel on a pair of inputs. Args: From ea1537d5602b9cb0cf20195de9ff8dac0d781d98 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 18:36:14 +0300 Subject: [PATCH 75/87] ScalarFloat for GraphKernel hyperparams --- examples/graph_kernels.pct.py | 6 +++--- gpjax/kernels/non_euclidean/graph.py | 10 +++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/examples/graph_kernels.pct.py b/examples/graph_kernels.pct.py index daf8444f..ba2eba79 100644 --- a/examples/graph_kernels.pct.py +++ b/examples/graph_kernels.pct.py @@ -85,9 +85,9 @@ true_kernel = gpx.GraphKernel( laplacian=L, - lengthscale=jnp.array([2.3]), - variance=jnp.array([3.2]), - smoothness=jnp.array([6.1]), + lengthscale=jnp.array(2.3), + variance=jnp.array(3.2), + smoothness=jnp.array(6.1), ) prior = gpx.Prior(mean_function=gpx.Zero(), kernel=true_kernel) diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index 0a4bbfd5..301b9a11 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -44,13 +44,9 @@ class GraphKernel(AbstractKernel): """ laplacian: Float[Array, "N N"] = static_field(None) - lengthscale: Float[Array, "D"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() - ) - variance: Float[Array, "1"] = param_field(jnp.array([1.0]), bijector=tfb.Softplus()) - smoothness: Float[Array, "1"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() - ) + lengthscale: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) + smoothness: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) eigenvalues: Float[Array, "N"] = static_field(None) eigenvectors: Float[Array, "N N"] = static_field(None) num_vertex: Int[Array, "1"] = static_field(None) From 495c649960647e1a744c6403ef9c4a6ebe7cf138 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 18:40:48 +0300 Subject: [PATCH 76/87] fix type hints to what happens (even if it seems wrong) --- gpjax/kernels/non_euclidean/graph.py | 17 +++++++++-------- gpjax/kernels/non_euclidean/utils.py | 4 ++-- tests/test_kernels/test_non_euclidean.py | 1 - 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index 301b9a11..ff114bbf 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -43,7 +43,7 @@ class GraphKernel(AbstractKernel): compute_engine """ - laplacian: Float[Array, "N N"] = static_field(None) + laplacian: Num[Array, "N N"] = static_field(None) lengthscale: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) variance: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) smoothness: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) @@ -62,22 +62,23 @@ def __post_init__(self): if self.num_vertex is None: self.num_vertex = self.eigenvalues.shape[0] - def __call__( + def __call__( # TODO not consistent with general kernel interface self, - x: Float[Array, "D"], - y: Float[Array, "D"], + x: Int[Array, "N 1"], + y: Int[Array, "N 1"], + *, + S, **kwargs, - ) -> ScalarFloat: + ): """Evaluate the graph kernel on a pair of vertices :math:`v_i, v_j`. Args: - x (Float[Array, "D"]): Index of the ith vertex. - y (Float[Array, "D"]): Index of the jth vertex. + x (Float[Array, "N 1"]): Index of the ith vertex. + y (Float[Array, "N 1"]): Index of the jth vertex. Returns: ScalarFloat: The value of :math:`k(v_i, v_j)`. """ - S = kwargs["S"] Kxx = (jax_gather_nd(self.eigenvectors, x) * S.squeeze()) @ jnp.transpose( jax_gather_nd(self.eigenvectors, y) ) # shape (n,n) diff --git a/gpjax/kernels/non_euclidean/utils.py b/gpjax/kernels/non_euclidean/utils.py index 3fedcfa0..24efbc18 100644 --- a/gpjax/kernels/non_euclidean/utils.py +++ b/gpjax/kernels/non_euclidean/utils.py @@ -18,8 +18,8 @@ def jax_gather_nd( - params: Num[Array, "N ..."], indices: Int[Array, "M"] -) -> Num[Array, "M ..."]: + params: Num[Array, "N *rest"], indices: Int[Array, "M 1"] +) -> Num[Array, "M *rest"]: """Slice a `params` array at a set of `indices`. Args: diff --git a/tests/test_kernels/test_non_euclidean.py b/tests/test_kernels/test_non_euclidean.py index cab1c9b9..f90f2329 100644 --- a/tests/test_kernels/test_non_euclidean.py +++ b/tests/test_kernels/test_non_euclidean.py @@ -26,7 +26,6 @@ config.update("jax_enable_x64", True) -@pytest.mark.skip("Graph kernel is broken") def test_graph_kernel(): # Create a random graph, G, and verice labels, x, n_verticies = 20 From dca67994c6da58f4b88e4f08358a529ba86b91dd Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 18:45:07 +0300 Subject: [PATCH 77/87] type relaxation for deep_kernels.pct.py --- gpjax/base/module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/base/module.py b/gpjax/base/module.py index 7cc82aa7..90af2a86 100644 --- a/gpjax/base/module.py +++ b/gpjax/base/module.py @@ -199,7 +199,7 @@ def meta_leaves( pytree: Module, *, is_leaf: Optional[Callable[[Any], bool]] = None, -) -> List[Tuple[Dict[str, Any], Any]]: +) -> List[Tuple[Optional[Dict[str, Any]], Any]]: """ Returns the meta of the leaves of the pytree. From f26d52e8d443fb36f365ed305d0ffd4fd759f320 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 19:18:01 +0300 Subject: [PATCH 78/87] some more minor consistency fixes --- gpjax/kernels/base.py | 4 ++-- gpjax/kernels/non_euclidean/graph.py | 4 ++-- gpjax/kernels/nonstationary/linear.py | 2 +- gpjax/likelihoods.py | 4 ++-- gpjax/variational_families.py | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gpjax/kernels/base.py b/gpjax/kernels/base.py index a7a9f33b..a0e2834b 100644 --- a/gpjax/kernels/base.py +++ b/gpjax/kernels/base.py @@ -131,11 +131,11 @@ def spectral_density(self) -> Optional[tfd.Distribution]: @dataclass class Constant(AbstractKernel): """ - A constant mean function. This function returns a repeated scalar value for all inputs. + A constant kernel. This kernel evaluates to a constant for all inputs. The scalar value itself can be treated as a model hyperparameter and learned during training. """ - constant: Float[Array, "1"] = param_field(jnp.array(0.0)) + constant: ScalarFloat = param_field(jnp.array(0.0)) def __call__(self, x: Float[Array, "D"], y: Float[Array, "D"]) -> ScalarFloat: """Evaluate the kernel on a pair of inputs. diff --git a/gpjax/kernels/non_euclidean/graph.py b/gpjax/kernels/non_euclidean/graph.py index ff114bbf..ce8cb0ca 100644 --- a/gpjax/kernels/non_euclidean/graph.py +++ b/gpjax/kernels/non_euclidean/graph.py @@ -21,7 +21,7 @@ from gpjax.typing import Array from jaxtyping import Float, Num, Int from simple_pytree import static_field -from gpjax.typing import ScalarFloat +from gpjax.typing import ScalarFloat, ScalarInt from ...base import param_field from ..base import AbstractKernel @@ -49,7 +49,7 @@ class GraphKernel(AbstractKernel): smoothness: ScalarFloat = param_field(jnp.array(1.0), bijector=tfb.Softplus()) eigenvalues: Float[Array, "N"] = static_field(None) eigenvectors: Float[Array, "N N"] = static_field(None) - num_vertex: Int[Array, "1"] = static_field(None) + num_vertex: ScalarInt = static_field(None) compute_engine: AbstractKernelComputation = static_field(EigenKernelComputation) name: str = "Graph Matérn" diff --git a/gpjax/kernels/nonstationary/linear.py b/gpjax/kernels/nonstationary/linear.py index de3aa5df..0dad23d7 100644 --- a/gpjax/kernels/nonstationary/linear.py +++ b/gpjax/kernels/nonstationary/linear.py @@ -47,7 +47,7 @@ def __call__( y (Float[Array, "D"]): The right hand input of the kernel function. Returns: - Float[Array, "1"]: The evaluated kernel function :math:`k(x, y)` at the supplied inputs. + ScalarFloat: The evaluated kernel function :math:`k(x, y)` at the supplied inputs. """ x = self.slice_input(x) y = self.slice_input(y) diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index 1a00b258..c958a30b 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -78,8 +78,8 @@ def link_function(self, f: Float[Array, "..."]) -> tfd.Distribution: class Gaussian(AbstractLikelihood): """Gaussian likelihood object.""" - obs_noise: Float[Array, "1"] = param_field( - jnp.array([1.0]), bijector=tfb.Softplus() + obs_noise: Union[ScalarFloat, Float[Array, "#N"]] = param_field( + jnp.array(1.0), bijector=tfb.Softplus() ) def link_function(self, f: Float[Array, "..."]) -> tfd.Normal: diff --git a/gpjax/variational_families.py b/gpjax/variational_families.py index f31a038d..bfdc1750 100644 --- a/gpjax/variational_families.py +++ b/gpjax/variational_families.py @@ -20,7 +20,7 @@ import jax.numpy as jnp import jax.scipy as jsp import tensorflow_probability.substrates.jax.bijectors as tfb -from gpjax.typing import Array +from gpjax.typing import Array, ScalarFloat from jaxtyping import Float from simple_pytree import static_field @@ -78,7 +78,7 @@ class AbstractVariationalGaussian(AbstractVariationalFamily): """The variational Gaussian family of probability distributions.""" inducing_inputs: Float[Array, "N D"] - jitter: Float[Array, "1"] = static_field(1e-6) + jitter: ScalarFloat = static_field(1e-6) @property def num_inducing(self) -> int: From 23efd0378ddd3a5fcf28aa8b9783bf2325be52d2 Mon Sep 17 00:00:00 2001 From: ST John Date: Tue, 25 Apr 2023 22:35:36 +0300 Subject: [PATCH 79/87] bugfix --- gpjax/likelihoods.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/likelihoods.py b/gpjax/likelihoods.py index c958a30b..42977948 100644 --- a/gpjax/likelihoods.py +++ b/gpjax/likelihoods.py @@ -20,7 +20,7 @@ import jax.numpy as jnp import jax.scipy as jsp import tensorflow_probability.substrates.jax as tfp -from gpjax.typing import Array +from gpjax.typing import Array, ScalarFloat from jaxtyping import Float from simple_pytree import static_field From 1077efa86ad275d875b0e54cce258f804413ea84 Mon Sep 17 00:00:00 2001 From: Thomas Pinder Date: Tue, 25 Apr 2023 20:38:04 +0100 Subject: [PATCH 80/87] Update examples/graph_kernels.pct.py Co-authored-by: st-- Signed-off-by: Thomas Pinder --- examples/graph_kernels.pct.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/graph_kernels.pct.py b/examples/graph_kernels.pct.py index ba2eba79..a2dde104 100644 --- a/examples/graph_kernels.pct.py +++ b/examples/graph_kernels.pct.py @@ -85,9 +85,9 @@ true_kernel = gpx.GraphKernel( laplacian=L, - lengthscale=jnp.array(2.3), - variance=jnp.array(3.2), - smoothness=jnp.array(6.1), + lengthscale=2.3, + variance=3.2, + smoothness=6.1, ) prior = gpx.Prior(mean_function=gpx.Zero(), kernel=true_kernel) From c292c7e1334ff8006c145ce522b99118433c80be Mon Sep 17 00:00:00 2001 From: Thomas Pinder Date: Tue, 25 Apr 2023 20:51:42 +0100 Subject: [PATCH 81/87] Update gpjax/dataset.py Allow for integer responses Co-authored-by: st-- Signed-off-by: Thomas Pinder --- gpjax/dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index 4a4a610e..bcf91d31 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -31,7 +31,7 @@ class Dataset(Pytree): """ X: Optional[Union[Num[Array, "N D"], Num[Array, "..."]]] = None - y: Optional[Union[Float[Array, "N Q"], Float[Array, "..."]]] = None + y: Optional[Union[Num[Array, "N Q"], Num[Array, "..."]]] = None def __post_init__(self) -> None: """Checks that the shapes of X and y are compatible.""" From 7e16487d270aa54aef9b6b071c3f6b8654fcafaa Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 26 Apr 2023 16:34:09 +0300 Subject: [PATCH 82/87] jaxtyping import hook for notebooks --- examples/barycentres.pct.py | 4 +++- examples/classification.pct.py | 4 +++- examples/collapsed_vi.pct.py | 4 +++- examples/deep_kernels.pct.py | 17 +++++++++-------- examples/graph_kernels.pct.py | 4 +++- examples/kernels.pct.py | 6 ++++-- examples/regression.pct.py | 4 +++- examples/uncollapsed_vi.pct.py | 6 ++++-- examples/yacht.pct.py | 4 +++- 9 files changed, 35 insertions(+), 18 deletions(-) diff --git a/examples/barycentres.pct.py b/examples/barycentres.pct.py index 45a78d0c..d996e9a2 100644 --- a/examples/barycentres.pct.py +++ b/examples/barycentres.pct.py @@ -24,7 +24,9 @@ import tensorflow_probability.substrates.jax.distributions as tfd from jax.config import config -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/classification.pct.py b/examples/classification.pct.py index 96f7f02e..7c136910 100644 --- a/examples/classification.pct.py +++ b/examples/classification.pct.py @@ -19,7 +19,9 @@ from jax.config import config from jaxtyping import Array, Float -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/collapsed_vi.pct.py b/examples/collapsed_vi.pct.py index 4d3677c4..493a1a7a 100644 --- a/examples/collapsed_vi.pct.py +++ b/examples/collapsed_vi.pct.py @@ -17,7 +17,9 @@ from jax import jit from jax.config import config -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/deep_kernels.pct.py b/examples/deep_kernels.pct.py index 86e09574..7b811b6a 100644 --- a/examples/deep_kernels.pct.py +++ b/examples/deep_kernels.pct.py @@ -9,9 +9,8 @@ # Gaussian process model's kernel through a neural network can offer a solution to this. # %% -import typing as tp from dataclasses import dataclass, field -from typing import Dict, Any +from typing import Any import jax import jax.numpy as jnp @@ -25,12 +24,14 @@ from simple_pytree import static_field import flax -import gpjax as gpx -import gpjax.kernels as jk -from gpjax.kernels import DenseKernelComputation -from gpjax.kernels.base import AbstractKernel -from gpjax.kernels.computations import AbstractKernelComputation -from gpjax.base import param_field +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx + import gpjax.kernels as jk + from gpjax.kernels import DenseKernelComputation + from gpjax.kernels.base import AbstractKernel + from gpjax.kernels.computations import AbstractKernelComputation + from gpjax.base import param_field # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/graph_kernels.pct.py b/examples/graph_kernels.pct.py index a2dde104..a358b36c 100644 --- a/examples/graph_kernels.pct.py +++ b/examples/graph_kernels.pct.py @@ -18,7 +18,9 @@ from jax import jit from jax.config import config -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/kernels.pct.py b/examples/kernels.pct.py index b0867210..4daa866d 100644 --- a/examples/kernels.pct.py +++ b/examples/kernels.pct.py @@ -19,8 +19,10 @@ from simple_pytree import static_field import numpy as np -import gpjax as gpx -from gpjax.base.param import param_field +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx + from gpjax.base.param import param_field # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/regression.pct.py b/examples/regression.pct.py index 03e713b5..e96bb82a 100644 --- a/examples/regression.pct.py +++ b/examples/regression.pct.py @@ -13,7 +13,9 @@ from jax import jit from jax.config import config -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/uncollapsed_vi.pct.py b/examples/uncollapsed_vi.pct.py index e2cf2340..3961a933 100644 --- a/examples/uncollapsed_vi.pct.py +++ b/examples/uncollapsed_vi.pct.py @@ -21,8 +21,10 @@ from jax import jit from jax.config import config -import gpjax as gpx -import gpjax.kernels as jk +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx + import gpjax.kernels as jk # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) diff --git a/examples/yacht.pct.py b/examples/yacht.pct.py index 6aa2f093..d323a2b3 100644 --- a/examples/yacht.pct.py +++ b/examples/yacht.pct.py @@ -10,7 +10,9 @@ from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler -import gpjax as gpx +from jaxtyping import install_import_hook +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax as gpx # Enable Float64 for more stable matrix inversions. config.update("jax_enable_x64", True) From 6620802c25eaca81439fdae64d49ad2f1e5ec183 Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 26 Apr 2023 16:39:20 +0300 Subject: [PATCH 83/87] conftest.py to apply jaxtyping import hook before loading tests --- tests/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..3be32572 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,5 @@ +from jaxtyping import install_import_hook + +# import gpjax within import hook to apply beartype everywhere, before running tests +with install_import_hook("gpjax", "beartype.beartype"): + import gpjax From bc70fdfa9510ff162eac7f953ae99e2390f86027 Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 26 Apr 2023 16:39:50 +0300 Subject: [PATCH 84/87] remove import hook from gpjax/__init__ --- gpjax/__init__.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/gpjax/__init__.py b/gpjax/__init__.py index 7bdd0ad2..f1523c7f 100644 --- a/gpjax/__init__.py +++ b/gpjax/__init__.py @@ -13,21 +13,19 @@ # limitations under the License. # ============================================================================== -from jaxtyping import install_import_hook -with install_import_hook("gpjax", "beartype.beartype"): - from .dataset import Dataset - from .fit import fit - from .gps import Prior, construct_posterior - from .kernels import * - from .likelihoods import Bernoulli, Gaussian - from .mean_functions import Constant, Zero - from .objectives import (ELBO, CollapsedELBO, ConjugateMLL, - LogPosteriorDensity, NonConjugateMLL) - from .variational_families import (CollapsedVariationalGaussian, - ExpectationVariationalGaussian, - NaturalVariationalGaussian, - VariationalGaussian, - WhitenedVariationalGaussian) +from .dataset import Dataset +from .fit import fit +from .gps import Prior, construct_posterior +from .kernels import * +from .likelihoods import Bernoulli, Gaussian +from .mean_functions import Constant, Zero +from .objectives import (ELBO, CollapsedELBO, ConjugateMLL, + LogPosteriorDensity, NonConjugateMLL) +from .variational_families import (CollapsedVariationalGaussian, + ExpectationVariationalGaussian, + NaturalVariationalGaussian, + VariationalGaussian, + WhitenedVariationalGaussian) __license__ = "MIT" __description__ = "Didactic Gaussian processes in JAX" From c4a8af88d3b64a8543a2e79156200e3b9f25adb4 Mon Sep 17 00:00:00 2001 From: st-- Date: Wed, 26 Apr 2023 17:00:08 +0300 Subject: [PATCH 85/87] Update gpjax/dataset.py Signed-off-by: st-- --- gpjax/dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index bcf91d31..0accff07 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -83,7 +83,7 @@ def out_dim(self) -> int: return self.y.shape[1] -def _check_shape(X: Optional[Num[Array, "..."]], y: Optional[Float[Array, "..."]]) -> None: +def _check_shape(X: Optional[Num[Array, "..."]], y: Optional[Num[Array, "..."]]) -> None: """Checks that the shapes of X and y are compatible.""" if X is not None and y is not None: if X.shape[0] != y.shape[0]: From 62abd1a9baaabb9989028bc5def8677f1c6a48a6 Mon Sep 17 00:00:00 2001 From: Thomas Pinder Date: Wed, 26 Apr 2023 18:12:09 +0100 Subject: [PATCH 86/87] Update gpjax/dataset.py Co-authored-by: st-- Signed-off-by: Thomas Pinder --- gpjax/dataset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gpjax/dataset.py b/gpjax/dataset.py index 0accff07..96dfc6c9 100644 --- a/gpjax/dataset.py +++ b/gpjax/dataset.py @@ -30,8 +30,8 @@ class Dataset(Pytree): y (Optional[Float[Array, "N Q"]]): Output data. """ - X: Optional[Union[Num[Array, "N D"], Num[Array, "..."]]] = None - y: Optional[Union[Num[Array, "N Q"], Num[Array, "..."]]] = None + X: Optional[Num[Array, "N D"]] = None + y: Optional[Num[Array, "N Q"]] = None def __post_init__(self) -> None: """Checks that the shapes of X and y are compatible.""" From 42e21fb973a7441c9d259a5225ba07cd60442a25 Mon Sep 17 00:00:00 2001 From: ST John Date: Wed, 26 Apr 2023 22:03:58 +0300 Subject: [PATCH 87/87] fix tests of shape checks now that we have beartype --- tests/test_dataset.py | 12 +++++++++--- tests/test_gps.py | 16 ++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/tests/test_dataset.py b/tests/test_dataset.py index 46e06b0c..6d685b24 100644 --- a/tests/test_dataset.py +++ b/tests/test_dataset.py @@ -15,6 +15,12 @@ from dataclasses import is_dataclass +try: + import beartype + ValidationErrors = (ValueError, beartype.roar.BeartypeCallHintParamViolation) +except ImportError: + ValidationErrors = ValueError + import jax.numpy as jnp import jax.tree_util as jtu import pytest @@ -107,7 +113,7 @@ def test_dataset_incorrect_lengths(nx: int, ny: int, out_dim: int, in_dim: int) y = jnp.ones((ny, out_dim)) # Ensure error is raised upon dataset creation - with pytest.raises(ValueError): + with pytest.raises(ValidationErrors): Dataset(X=x, y=y) @@ -120,7 +126,7 @@ def test_2d_inputs(n: int, out_dim: int, in_dim: int) -> None: y = jnp.ones((n,)) # Ensure error is raised upon dataset creation - with pytest.raises(ValueError): + with pytest.raises(ValidationErrors): Dataset(X=x, y=y) # Create dataset where input dimension is incorrectly not 2D @@ -128,7 +134,7 @@ def test_2d_inputs(n: int, out_dim: int, in_dim: int) -> None: y = jnp.ones((n, out_dim)) # Ensure error is raised upon dataset creation - with pytest.raises(ValueError): + with pytest.raises(ValidationErrors): Dataset(X=x, y=y) diff --git a/tests/test_gps.py b/tests/test_gps.py index cb783bb7..61f687e6 100644 --- a/tests/test_gps.py +++ b/tests/test_gps.py @@ -13,6 +13,12 @@ # limitations under the License. # ============================================================================== +try: + import beartype + ValidationErrors = (ValueError, beartype.roar.BeartypeCallHintParamViolation) +except ImportError: + ValidationErrors = ValueError + import jax.numpy as jnp import jax.random as jr import pytest @@ -22,8 +28,6 @@ import jax.tree_util as jtu import shutil -import beartype - #from gpjax.dataset import Dataset from gpjax.dataset import Dataset from gpjax.gps import (AbstractPosterior, AbstractPrior, ConjugatePosterior, @@ -231,13 +235,13 @@ def test_prior_sample_approx(num_datapoints, kernel, mean_function): p.sample_approx(-1, key) with pytest.raises(ValueError): p.sample_approx(0, key) - with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): + with pytest.raises(ValidationErrors): p.sample_approx(0.5, key) with pytest.raises(ValueError): p.sample_approx(1, key, -10) with pytest.raises(ValueError): p.sample_approx(1, key, 0) - with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): + with pytest.raises(ValidationErrors): p.sample_approx(1, key, 0.5) sampled_fn = p.sample_approx(1, key, 100) @@ -292,13 +296,13 @@ def test_conjugate_posterior_sample_approx(num_datapoints, kernel, mean_function p.sample_approx(-1, D, key) with pytest.raises(ValueError): p.sample_approx(0, D, key) - with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): + with pytest.raises(ValidationErrors): p.sample_approx(0.5, D, key) with pytest.raises(ValueError): p.sample_approx(1, D, key, -10) with pytest.raises(ValueError): p.sample_approx(1, D, key, 0) - with pytest.raises((ValueError, beartype.roar.BeartypeCallHintParamViolation)): + with pytest.raises(ValidationErrors): p.sample_approx(1, D, key, 0.5) sampled_fn = p.sample_approx(1, D, key, 100)